diff --git a/web/i18n/en/settings.json b/web/i18n/en/settings.json index fba788e2..545bdeb0 100644 --- a/web/i18n/en/settings.json +++ b/web/i18n/en/settings.json @@ -1,121 +1,121 @@ { - "page.appearance": "appearance", - "page.privacy": "privacy", - "page.video": "video", - "page.audio": "audio", - "page.download": "downloading", - "page.advanced": "advanced", - "page.debug": "debug information", - "page.instances": "instances", + "page.appearance": "appearance", + "page.privacy": "privacy", + "page.video": "video", + "page.audio": "audio", + "page.download": "downloading", + "page.advanced": "advanced", + "page.debug": "debug information", + "page.instances": "instances", - "section.general": "general", - "section.save": "save", + "section.general": "general", + "section.save": "save", - "theme": "theme", - "theme.auto": "auto", - "theme.light": "light", - "theme.dark": "dark", - "theme.description": "auto theme switches between light and dark themes depending on your device's display mode.", + "theme": "theme", + "theme.auto": "auto", + "theme.light": "light", + "theme.dark": "dark", + "theme.description": "auto theme switches between light and dark themes depending on your device's display mode.", - "video.quality": "video quality", - "video.quality.max": "8k+", - "video.quality.2160": "4k", - "video.quality.1440": "1440p", - "video.quality.1080": "1080p", - "video.quality.720": "720p", - "video.quality.480": "480p", - "video.quality.360": "360p", - "video.quality.240": "240p", - "video.quality.144": "144p", - "video.quality.description": "if preferred video quality isn't available, next best is picked instead.", + "video.quality": "video quality", + "video.quality.max": "8k+", + "video.quality.2160": "4k", + "video.quality.1440": "1440p", + "video.quality.1080": "1080p", + "video.quality.720": "720p", + "video.quality.480": "480p", + "video.quality.360": "360p", + "video.quality.240": "240p", + "video.quality.144": "144p", + "video.quality.description": "if preferred video quality isn't available, next best is picked instead.", - "video.youtube.codec": "youtube video codec and container", - "video.youtube.codec.description": "h264: best compatibility, average bitrate. max quality is 1080p. \nav1: best quality, efficiency, and bitrate. supports 8k & HDR. \nvp9: same quality & bitrate as av1, but file is approximately two times bigger. supports 4k & HDR.\n\nav1 and vp9 aren't as widely supported as h264.", + "video.youtube.codec": "youtube video codec and container", + "video.youtube.codec.description": "h264: best compatibility, average bitrate. max quality is 1080p. \nav1: best quality, efficiency, and bitrate. supports 8k & HDR. \nvp9: same quality & bitrate as av1, but file is approximately two times bigger. supports 4k & HDR.\n\nav1 and vp9 aren't as widely supported as h264.", - "video.twitter.gif": "twitter/x", - "video.twitter.gif.title": "convert looping videos to GIF", - "video.twitter.gif.description": "GIF conversion is inefficient, converted file may be obnoxiously big and low quality.", + "video.twitter.gif": "twitter/x", + "video.twitter.gif.title": "convert looping videos to GIF", + "video.twitter.gif.description": "GIF conversion is inefficient, converted file may be obnoxiously big and low quality.", - "video.tiktok.h265": "tiktok", - "video.tiktok.h265.title": "prefer HEVC/H265 format", - "video.tiktok.h265.description": "allows downloading videos in 1080p at cost of compatibility.", + "video.tiktok.h265": "tiktok", + "video.tiktok.h265.title": "prefer HEVC/H265 format", + "video.tiktok.h265.description": "allows downloading videos in 1080p at cost of compatibility.", - "audio.format": "audio format", - "audio.format.best": "best", - "audio.format.mp3": "mp3", - "audio.format.ogg": "ogg", - "audio.format.wav": "wav", - "audio.format.opus": "opus", - "audio.format.description": "all formats but \"best\" are converted, meaning that there'll be some quality loss. audio is not reencoded only when \"best\" format is selected.", + "audio.format": "audio format", + "audio.format.best": "best", + "audio.format.mp3": "mp3", + "audio.format.ogg": "ogg", + "audio.format.wav": "wav", + "audio.format.opus": "opus", + "audio.format.description": "all formats but \"best\" are converted, meaning that there'll be some quality loss. audio is not reencoded only when \"best\" format is selected.", - "audio.bitrate": "audio bitrate", - "audio.bitrate.kbps": "kb/s", - "audio.bitrate.description": "bitrate applies only to audio conversion. cobalt can't improve the source audio quality, so choosing a bitrate over 128kbps may inflate the file size with no audible difference. perceived quality may vary by format.", + "audio.bitrate": "audio bitrate", + "audio.bitrate.kbps": "kb/s", + "audio.bitrate.description": "bitrate only applies to audio conversion into lossy audio formats. cobalt can't improve the source audio quality, so choosing a bitrate over 128kbps may inflate the file size with no audible difference. perceived quality may vary by format.", - "audio.youtube.dub": "youtube", - "audio.youtube.dub.title": "use browser language for dubbed videos", - "audio.youtube.dub.description": "works even if cobalt isn't translated to your language.", + "audio.youtube.dub": "youtube", + "audio.youtube.dub.title": "use browser language for dubbed videos", + "audio.youtube.dub.description": "works even if cobalt isn't translated to your language.", - "audio.tiktok.original": "tiktok", - "audio.tiktok.original.title": "download original sound", - "audio.tiktok.original.description": "cobalt will download the sound from the video without any changes by the post's author.", + "audio.tiktok.original": "tiktok", + "audio.tiktok.original.title": "download original sound", + "audio.tiktok.original.description": "cobalt will download the sound from the video without any changes by the post's author.", - "metadata.filename": "filename style", - "metadata.filename.classic": "classic", - "metadata.filename.basic": "basic", - "metadata.filename.pretty": "pretty", - "metadata.filename.nerdy": "nerdy", - "metadata.filename.description": "filename style will only be used for files tunneled by cobalt. some services don't support filename styles other than classic.", + "metadata.filename": "filename style", + "metadata.filename.classic": "classic", + "metadata.filename.basic": "basic", + "metadata.filename.pretty": "pretty", + "metadata.filename.nerdy": "nerdy", + "metadata.filename.description": "filename style will only be used for files tunneled by cobalt. some services don't support filename styles other than classic.", - "metadata.filename.preview.video": "Video Title", - "metadata.filename.preview.audio": "Audio Title - Audio Author", + "metadata.filename.preview.video": "Video Title", + "metadata.filename.preview.audio": "Audio Title - Audio Author", - "metadata.file": "file metadata", - "metadata.disable.title": "disable file metadata", - "metadata.disable.description": "title, artist, and other info will not be added to the file.", + "metadata.file": "file metadata", + "metadata.disable.title": "disable file metadata", + "metadata.disable.description": "title, artist, and other info will not be added to the file.", - "saving.title": "saving method", - "saving.ask": "ask", - "saving.download": "download", - "saving.share": "share", - "saving.copy": "copy", - "saving.description": "preferred way of saving the file or link from cobalt. if preferred method is unavailable or something goes wrong, cobalt will ask you what to do next.", + "saving.title": "saving method", + "saving.ask": "ask", + "saving.download": "download", + "saving.share": "share", + "saving.copy": "copy", + "saving.description": "preferred way of saving the file or link from cobalt. if preferred method is unavailable or something goes wrong, cobalt will ask you what to do next.", - "accessibility": "accessibility", - "accessibility.transparency.title": "reduce visual transparency", - "accessibility.transparency.description": "reduces transparency of surfaces and disables blur effects.", - "accessibility.motion.title": "reduce motion", - "accessibility.motion.description": "disables animations and transitions whenever possible.", + "accessibility": "accessibility", + "accessibility.transparency.title": "reduce visual transparency", + "accessibility.transparency.description": "reduces transparency of surfaces and disables blur effects.", + "accessibility.motion.title": "reduce motion", + "accessibility.motion.description": "disables animations and transitions whenever possible.", - "language": "language", - "language.auto.title": "automatic selection", - "language.auto.description": "cobalt will use your browser's default language if translation is available. if not, english will be used instead.", - "language.preferred.title": "preferred language", - "language.preferred.description": "this language will be used when automatic selection is disabled. any text that isn't translated will be displayed in english.\n\nwe use community-sourced translations for languages other than english, russian, and czech. they may be inaccurate or incomplete.", + "language": "language", + "language.auto.title": "automatic selection", + "language.auto.description": "cobalt will use your browser's default language if translation is available. if not, english will be used instead.", + "language.preferred.title": "preferred language", + "language.preferred.description": "this language will be used when automatic selection is disabled. any text that isn't translated will be displayed in english.\n\nwe use community-sourced translations for languages other than english, russian, and czech. they may be inaccurate or incomplete.", - "privacy.analytics": "anonymous traffic analytics", - "privacy.analytics.title": "don't contribute to analytics", - "privacy.analytics.description": "anonymous traffic analytics are needed to get an approximate number of active cobalt users. no identifiable information about you is ever stored. all processed data is anonymized and aggregated.\n\nwe use a self-hosted plausible instance that doesn't use cookies and is fully compliant with GDPR, CCPA, and PECR.", - "privacy.analytics.learnmore": "learn more about plausible's dedication to privacy.", + "privacy.analytics": "anonymous traffic analytics", + "privacy.analytics.title": "don't contribute to analytics", + "privacy.analytics.description": "anonymous traffic analytics are needed to get an approximate number of active cobalt users. no identifiable information about you is ever stored. all processed data is anonymized and aggregated.\n\nwe use a self-hosted plausible instance that doesn't use cookies and is fully compliant with GDPR, CCPA, and PECR.", + "privacy.analytics.learnmore": "learn more about plausible's dedication to privacy.", - "privacy.tunnel": "tunneling", - "privacy.tunnel.title": "always tunnel files", - "privacy.tunnel.description": "cobalt will hide your ip address, browser info, and bypass local network restrictions. when enabled, files will also have readable filenames that otherwise would be gibberish.", + "privacy.tunnel": "tunneling", + "privacy.tunnel.title": "always tunnel files", + "privacy.tunnel.description": "cobalt will hide your ip address, browser info, and bypass local network restrictions. when enabled, files will also have readable filenames that otherwise would be gibberish.", - "advanced.debug": "debug", - "advanced.debug.title": "enable debug features", - "advanced.debug.description": "gives you access to a page with various info that can be useful for debugging.", + "advanced.debug": "debug", + "advanced.debug.title": "enable debug features", + "advanced.debug.description": "gives you access to a page with various info that can be useful for debugging.", - "advanced.data": "settings data", + "advanced.data": "settings data", - "processing.override": "default instance override", - "processing.override.title": "use the instance-provided processing server", - "processing.override.description": "if web instance provides its own default processing server, you can choose to use it over the main processing server. make sure it's a server by someone you trust.", + "processing.override": "default instance override", + "processing.override.title": "use the instance-provided processing server", + "processing.override.description": "if web instance provides its own default processing server, you can choose to use it over the main processing server. make sure it's a server by someone you trust.", - "processing.community": "community instances", + "processing.community": "community instances", - "processing.enable_custom.title": "use a custom processing server", - "processing.enable_custom.description": "cobalt will use a custom processing server if you choose to. even though cobalt has some security measures in place, we are not responsible for any damages done via a community instance, as we have no control over them.\n\nplease be mindful of what instances you use and make sure they're hosted by people you trust.", + "processing.enable_custom.title": "use a custom processing server", + "processing.enable_custom.description": "cobalt will use a custom processing server if you choose to. even though cobalt has some security measures in place, we are not responsible for any damages done via a community instance, as we have no control over them.\n\nplease be mindful of what instances you use and make sure they're hosted by people you trust.", - "processing.custom.placeholder": "custom instance domain" + "processing.custom.placeholder": "custom instance domain" } diff --git a/web/src/routes/settings/audio/+page.svelte b/web/src/routes/settings/audio/+page.svelte index 8ea9f34a..cb6bca26 100644 --- a/web/src/routes/settings/audio/+page.svelte +++ b/web/src/routes/settings/audio/+page.svelte @@ -7,6 +7,7 @@ import Switcher from "$components/buttons/Switcher.svelte"; import SettingsButton from "$components/buttons/SettingsButton.svelte"; import SettingsToggle from "$components/buttons/SettingsToggle.svelte"; + import settings from "$lib/state/settings"; @@ -23,7 +24,7 @@ - + {#each audioBitrateOptions as value}