diff --git a/web/i18n/en/a11y/general.json b/web/i18n/en/a11y/general.json new file mode 100644 index 00000000..30c862e1 --- /dev/null +++ b/web/i18n/en/a11y/general.json @@ -0,0 +1,3 @@ +{ + "back": "go back" +} diff --git a/web/i18n/en/a11y/save.json b/web/i18n/en/a11y/save.json index 93f66bbc..25acced3 100644 --- a/web/i18n/en/a11y/save.json +++ b/web/i18n/en/a11y/save.json @@ -1,3 +1,9 @@ { - "linkArea": "link input area" + "linkArea": "link input area", + "clearInput": "clear input", + "download": "download", + "downloadThink": "processing the link...", + "downloadCheck": "verifying download...", + "downloadDone": "downloading done", + "downloadError": "downloading error" } diff --git a/web/i18n/en/general.json b/web/i18n/en/general.json new file mode 100644 index 00000000..6ea5e8a0 --- /dev/null +++ b/web/i18n/en/general.json @@ -0,0 +1,3 @@ +{ + "cobalt": "cobalt" +} diff --git a/web/i18n/en/save.json b/web/i18n/en/save.json index f3b6e6c5..8e87f514 100644 --- a/web/i18n/en/save.json +++ b/web/i18n/en/save.json @@ -4,5 +4,6 @@ "auto": "auto", "audio": "audio", "mute": "mute", - "inputPlaceholder": "paste the link here" + "inputPlaceholder": "paste the link here", + "termsNote": "by continuing you agree to terms and ethics of use" } diff --git a/web/i18n/en/settings.json b/web/i18n/en/settings.json new file mode 100644 index 00000000..08f31a7e --- /dev/null +++ b/web/i18n/en/settings.json @@ -0,0 +1,82 @@ +{ + "page.appearance": "appearance", + "page.video": "video", + "page.audio": "audio", + "page.metadata": "metadata", + + "section.general": "general", + "section.save": "save", + + "theme": "theme", + "theme.auto": "auto", + "theme.light": "light", + "theme.dark": "dark", + "theme.description": "auto theme automatically switches between light and dark themes depending on your device's current theme.", + + "video.quality": "preferred 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, closest best is picked instead.", + + "video.youtube.codec": "preferred youtube video codec", + "video.youtube.codec.h264": "h264 (mp4)", + "video.youtube.codec.av1": "av1 (mp4)", + "video.youtube.codec.vp9": "vp9 (webm)", + "video.youtube.codec.description": "if preferred codec isn’t available, next best is picked instead. \n\nh264: best support, average detail level. max quality is 1080p. \nav1: best quality, small file size, most detail. supports 8k & HDR. \nvp9: same quality as av1, but file is approximately two times bigger. supports 4k & HDR.", + + "video.twitter.gif": "twitter/x", + "video.twitter.gif.title": "convert looping videos to GIF", + "video.twitter.gif.description": "GIF conversion is very 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 1080p video downloading at cost of compatibility.", + + "audio.format": "preferred 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": "every format but \"best\" is converted, meaning that they're lossy. if preferred format matches best available audio, it won't be converted.", + + "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": "use original sound", + "audio.tiktok.original.description": "downloads original sound used in the post without any additional 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 using which cobalt files will be downloaded. this description is temporary as there's no dynamic preview component yet.", + + "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.method": "saving method", + "saving.ask.title": "ask how to save", + "saving.ask.description": "offer you several ways to save the file instead of opening it in a new tab.", + + "accessibility": "accessibility", + "accessibility.transparency.title": "reduce visual transparency", + "accessibility.transparency.description": "reduces transparency of surfaces and disables blur effects.", + "accessibility.animations.title": "reduce animations", + "accessibility.animations.description": "replaces rapid animations with smooth transitions when possible.", + + "language": "language", + "language.auto.title": "use default browser language", + "language.auto.description": "automatically picks the best language for you. if preferred browser language isn't available, english is used instead." +} diff --git a/web/i18n/ru/a11y/general.json b/web/i18n/ru/a11y/general.json new file mode 100644 index 00000000..64053ece --- /dev/null +++ b/web/i18n/ru/a11y/general.json @@ -0,0 +1,3 @@ +{ + "back": "назад" +} diff --git a/web/i18n/ru/a11y/save.json b/web/i18n/ru/a11y/save.json index 0123401a..387e490a 100644 --- a/web/i18n/ru/a11y/save.json +++ b/web/i18n/ru/a11y/save.json @@ -1,3 +1,9 @@ { - "linkArea": "зона вставки ссылки" + "linkArea": "зона вставки ссылки", + "clearInput": "clear input", + "download": "скачать", + "downloadThink": "обрабатываю ссылку...", + "downloadCheck": "проверяю загрузку...", + "downloadDone": "загрузка завершена!", + "downloadError": "ошибка загрузки" } diff --git a/web/i18n/ru/general.json b/web/i18n/ru/general.json new file mode 100644 index 00000000..75ab3b18 --- /dev/null +++ b/web/i18n/ru/general.json @@ -0,0 +1,3 @@ +{ + "cobalt": "кобальт" +} diff --git a/web/i18n/ru/save.json b/web/i18n/ru/save.json index f751a63d..0093129e 100644 --- a/web/i18n/ru/save.json +++ b/web/i18n/ru/save.json @@ -4,5 +4,6 @@ "auto": "авто", "audio": "аудио", "mute": "без звука", - "inputPlaceholder": "вставь ссылку сюда" + "inputPlaceholder": "вставь ссылку сюда", + "termsNote": "продолжая, ты соглашаешься с условиями и этикой использования" } diff --git a/web/src/components/save/buttons/ClearButton.svelte b/web/src/components/save/buttons/ClearButton.svelte index 76f20d3e..9962aa1b 100644 --- a/web/src/components/save/buttons/ClearButton.svelte +++ b/web/src/components/save/buttons/ClearButton.svelte @@ -1,9 +1,11 @@ - diff --git a/web/src/components/save/buttons/DownloadButton.svelte b/web/src/components/save/buttons/DownloadButton.svelte index da01fe4a..96510462 100644 --- a/web/src/components/save/buttons/DownloadButton.svelte +++ b/web/src/components/save/buttons/DownloadButton.svelte @@ -1,46 +1,53 @@ - @@ -120,7 +132,8 @@ #download-state { font-size: 24px; - font-family: "Noto Sans Mono Variable", "Noto Sans Mono", "IBM Plex Mono", monospace; + font-family: "Noto Sans Mono Variable", "Noto Sans Mono", + "IBM Plex Mono", monospace; font-weight: 400; text-align: center; diff --git a/web/src/components/settings/SettingsSection.svelte b/web/src/components/settings/SettingsSection.svelte index cab74bb0..0ee02d60 100644 --- a/web/src/components/settings/SettingsSection.svelte +++ b/web/src/components/settings/SettingsSection.svelte @@ -1,9 +1,11 @@
-
{sectionTitle}
+
{$t(`settings.section.${sectionTitle}`)}
diff --git a/web/src/components/settings/SettingsTab.svelte b/web/src/components/settings/SettingsTab.svelte index 12ebbb06..b16002d7 100644 --- a/web/src/components/settings/SettingsTab.svelte +++ b/web/src/components/settings/SettingsTab.svelte @@ -1,6 +1,8 @@ - cobalt + {$t("general.cobalt")}
@@ -13,7 +15,7 @@
- by continuing you agree to terms and ethics of use + {$t("save.termsNote")}
diff --git a/web/src/routes/about/+page.svelte b/web/src/routes/about/+page.svelte index 5d70e6dd..1b6783d9 100644 --- a/web/src/routes/about/+page.svelte +++ b/web/src/routes/about/+page.svelte @@ -1,10 +1,12 @@ - cobalt: about + {$t("general.cobalt")}: {$t("tabs.about")} diff --git a/web/src/routes/donate/+page.svelte b/web/src/routes/donate/+page.svelte index 9959ebe0..51d6af81 100644 --- a/web/src/routes/donate/+page.svelte +++ b/web/src/routes/donate/+page.svelte @@ -1,10 +1,12 @@ - cobalt: donate + {$t("general.cobalt")}: {$t("tabs.donate")} diff --git a/web/src/routes/settings/+layout.svelte b/web/src/routes/settings/+layout.svelte index 10e61fbd..819938a6 100644 --- a/web/src/routes/settings/+layout.svelte +++ b/web/src/routes/settings/+layout.svelte @@ -1,6 +1,8 @@ - + {#each themeOptions as value} - - {value} + + {$t(`settings.theme.${value}`)} {/each} - + - + diff --git a/web/src/routes/settings/save/audio/+page.svelte b/web/src/routes/settings/save/audio/+page.svelte index f98fd991..0f87ce25 100644 --- a/web/src/routes/settings/save/audio/+page.svelte +++ b/web/src/routes/settings/save/audio/+page.svelte @@ -1,42 +1,42 @@ {#each audioFormatOptions as value} - {value} + {$t(`settings.audio.format.${value}`)} {/each} - + - + diff --git a/web/src/routes/settings/save/metadata/+page.svelte b/web/src/routes/settings/save/metadata/+page.svelte index 9ac990af..860433f1 100644 --- a/web/src/routes/settings/save/metadata/+page.svelte +++ b/web/src/routes/settings/save/metadata/+page.svelte @@ -1,40 +1,42 @@ {#each filenameStyleOptions as value} - {value} + {$t(`settings.metadata.filename.${value}`)} {/each} - + - + diff --git a/web/src/routes/settings/save/video/+page.svelte b/web/src/routes/settings/save/video/+page.svelte index 8f059255..aa8b9d9b 100644 --- a/web/src/routes/settings/save/video/+page.svelte +++ b/web/src/routes/settings/save/video/+page.svelte @@ -1,24 +1,23 @@ {#each videoQualityOptions as value} - {value} + {$t(`settings.video.quality.${value}`)} {/each} @@ -26,33 +25,33 @@ {#each youtubeVideoCodecOptions as value} - {value} + {$t(`settings.video.youtube.codec.${value}`)} {/each} - + - + diff --git a/web/src/routes/updates/+page.svelte b/web/src/routes/updates/+page.svelte index e3cf1e20..dc9670fa 100644 --- a/web/src/routes/updates/+page.svelte +++ b/web/src/routes/updates/+page.svelte @@ -1,10 +1,12 @@ - cobalt: updates + {$t("general.cobalt")}: {$t("tabs.donate")}