Merge pull request #157 from storytold/bt-i18n-v3

Localize "explore" modal
This commit is contained in:
Brandon Thomas authored and GitHub committed 2023-01-21 06:27:42 -05:00
commit 16111abec0
18 files changed
+158 -9

No files matched your search

@@ -16,6 +16,16 @@
},
"formTitle": "قم بإنشاء TTS",
"languageLabel": "لغة",
"exploreModal": {
"exploreModalOpenButton": "استكشف أصوات",
"exploreModalTitle": "استكشف أصوات",
"languageLabel": "لغة",
"allLanguagesOptionText": "كل اللغات",
"categoryLabel": "فئة",
"selectCategoryText": "اختر الفئة",
"clearCategoryFilterButton": "مسح عوامل التصفية",
"useThisVoiceButton": "استخدم هذا الصوت"
},
"heroSection": {
"buttons": {
"cloneVoice": "استنساخ صوتي!",
@@ -16,6 +16,16 @@
},
"formTitle": "TTS erstellen",
"languageLabel": "Sprache",
"exploreModal": {
"exploreModalOpenButton": "Erforschen Sie Stimmen",
"exploreModalTitle": "Erforschen Sie Stimmen",
"languageLabel": "Sprache",
"allLanguagesOptionText": "Alle Sprachen",
"categoryLabel": "Kategorie",
"selectCategoryText": "Kategorie wählen...",
"clearCategoryFilterButton": "Kategoriefilter löschen",
"useThisVoiceButton": "Verwenden Sie diese Stimme"
},
"heroSection": {
"buttons": {
"cloneVoice": "Klonen Sie meine Stimme!",
@@ -16,6 +16,16 @@
},
"formTitle": "Create TTS",
"languageLabel": "Language",
"exploreModal": {
"exploreModalOpenButton": "Explore Voices",
"exploreModalTitle": "Explore Voices",
"languageLabel": "Language",
"allLanguagesOptionText": "All Languages",
"categoryLabel": "Category",
"selectCategoryText": "Select category...",
"clearCategoryFilterButton": "Clear category filters",
"useThisVoiceButton": "Use this voice"
},
"heroSection": {
"buttons": {
"cloneVoice": "Clone My Voice!",
@@ -16,6 +16,16 @@
},
"formTitle": "Crear mensaje de texto",
"languageLabel": "Idioma",
"exploreModal": {
"exploreModalOpenButton": "Explorar Voces",
"exploreModalTitle": "Explorar Voces",
"languageLabel": "Idioma",
"allLanguagesOptionText": "Todos los idiomas",
"categoryLabel": "Categoría",
"selectCategoryText": "Selecciona una categoría",
"clearCategoryFilterButton": "Restablecer filtros",
"useThisVoiceButton": "Usa esta voz"
},
"heroSection": {
"buttons": {
"cloneVoice": "Clonar mi Voz!",
@@ -16,6 +16,16 @@
},
"formTitle": "Créer une synthèse vocale",
"languageLabel": "Langue",
"exploreModal": {
"exploreModalOpenButton": "Explorer les voix",
"exploreModalTitle": "Explorer les voix",
"languageLabel": "Langue",
"allLanguagesOptionText": "Toutes les langues",
"categoryLabel": "Catégorie",
"selectCategoryText": "Choisir une catégorie",
"clearCategoryFilterButton": "Effacer les filtres de catégorie",
"useThisVoiceButton": "Utilisez cette voix"
},
"heroSection": {
"buttons": {
"cloneVoice": "Clonez ma voix!",
@@ -16,6 +16,16 @@
},
"formTitle": "टीटीएस बनाएं",
"languageLabel": "भाषा",
"exploreModal": {
"exploreModalOpenButton": "Explore Voices",
"exploreModalTitle": "Explore Voices",
"languageLabel": "Language",
"allLanguagesOptionText": "All Languages",
"categoryLabel": "Category",
"selectCategoryText": "Select category...",
"clearCategoryFilterButton": "Clear category filters",
"useThisVoiceButton": "Use this voice"
},
"heroSection": {
"buttons": {
"cloneVoice": "क्लोन माय वॉयस",
@@ -16,6 +16,16 @@
},
"formTitle": "Buat TTS",
"languageLabel": "Bahasa",
"exploreModal": {
"exploreModalOpenButton": "Explore Voices",
"exploreModalTitle": "Explore Voices",
"languageLabel": "Language",
"allLanguagesOptionText": "All Languages",
"categoryLabel": "Category",
"selectCategoryText": "Select category...",
"clearCategoryFilterButton": "Clear category filters",
"useThisVoiceButton": "Use this voice"
},
"heroSection": {
"buttons": {
"cloneVoice": "Klon suara saya",
@@ -15,10 +15,22 @@
"voicesLabel": "Voice ({{count}} to choose from)"
},
"formTitle": "Crea TTS",
"languageLabel": "Lingua",
"exploreModal": {
"exploreModalOpenButton": "Esplora Voci",
"exploreModalTitle": "Esplora Voci",
"languageLabel": "Lingua",
"allLanguagesOptionText": "Tutte le lingue",
"categoryLabel": "Categoria",
"selectCategoryText": "Seleziona categoria...",
"clearCategoryFilterButton": "Cancella i filtri di categoria",
"useThisVoiceButton": "Usa questa voce"
},
"heroSection": {
"buttons": {
"cloneVoice": "Clona la mia Voce!",
"signUp": "Registrarsi"
"signUp": "Registrarsi",
"viewPricing": "Visualizza i prezzi"
},
"subtitle": "Usa la tecnologia deep fake di <strong>FakeYou</strong> per dire cose con i tuoi personaggi preferiti",
"title": "Testo alla Voce"
@@ -16,6 +16,16 @@
},
"formTitle": "TTSを作成する",
"languageLabel": "言語",
"exploreModal": {
"exploreModalOpenButton": "声を探る",
"exploreModalTitle": "声を探る",
"languageLabel": "言語",
"allLanguagesOptionText": "すべての言語",
"categoryLabel": "カテゴリー",
"selectCategoryText": "カテゴリを選択",
"clearCategoryFilterButton": "フィルタをリセット",
"useThisVoiceButton": "この声を使う"
},
"heroSection": {
"buttons": {
"cloneVoice": "私の声を複製する",
@@ -16,6 +16,16 @@
},
"formTitle": "TTS 생성",
"languageLabel": "언어",
"exploreModal": {
"exploreModalOpenButton": "Explore Voices",
"exploreModalTitle": "Explore Voices",
"languageLabel": "Language",
"allLanguagesOptionText": "All Languages",
"categoryLabel": "Category",
"selectCategoryText": "Select category...",
"clearCategoryFilterButton": "Clear category filters",
"useThisVoiceButton": "Use this voice"
},
"heroSection": {
"buttons": {
"cloneVoice": "내 목소리를 복제하십시오!",
@@ -16,6 +16,16 @@
},
"formTitle": "Criar TTS",
"languageLabel": "Linguagem",
"exploreModal": {
"exploreModalOpenButton": "Explore Voices",
"exploreModalTitle": "Explore Voices",
"languageLabel": "Language",
"allLanguagesOptionText": "All Languages",
"categoryLabel": "Category",
"selectCategoryText": "Select category...",
"clearCategoryFilterButton": "Clear category filters",
"useThisVoiceButton": "Use this voice"
},
"heroSection": {
"buttons": {
"cloneVoice": "Clonar minha voz!",
@@ -16,6 +16,16 @@
},
"formTitle": "TTS oluştur",
"languageLabel": "Dil",
"exploreModal": {
"exploreModalOpenButton": "Explore Voices",
"exploreModalTitle": "Explore Voices",
"languageLabel": "Language",
"allLanguagesOptionText": "All Languages",
"categoryLabel": "Category",
"selectCategoryText": "Select category...",
"clearCategoryFilterButton": "Clear category filters",
"useThisVoiceButton": "Use this voice"
},
"heroSection": {
"buttons": {
"cloneVoice": "Sesimi klonla!",
@@ -16,6 +16,16 @@
},
"formTitle": "Tạo TTS",
"languageLabel": "Ngôn ngữ",
"exploreModal": {
"exploreModalOpenButton": "Explore Voices",
"exploreModalTitle": "Explore Voices",
"languageLabel": "Language",
"allLanguagesOptionText": "All Languages",
"categoryLabel": "Category",
"selectCategoryText": "Select category...",
"clearCategoryFilterButton": "Clear category filters",
"useThisVoiceButton": "Use this voice"
},
"heroSection": {
"buttons": {
"cloneVoice": "Sao chép giọng nói của tôi!",
@@ -16,6 +16,16 @@
},
"formTitle": "创建 TTS",
"languageLabel": "语言",
"exploreModal": {
"exploreModalOpenButton": "Explore Voices",
"exploreModalTitle": "Explore Voices",
"languageLabel": "Language",
"allLanguagesOptionText": "All Languages",
"categoryLabel": "Category",
"selectCategoryText": "Select category...",
"clearCategoryFilterButton": "Clear category filters",
"useThisVoiceButton": "Use this voice"
},
"heroSection": {
"buttons": {
"cloneVoice": "克隆我的声音!",
@@ -492,7 +492,7 @@ function TtsModelListPage(props: Props) {
data-bs-target="#exploreModal"
>
<FontAwesomeIcon icon={faCompass} className="me-2" />
Explore Voices
{t("tts.TtsModelListPage.exploreModal.exploreModalOpenButton")}
</button>
</div>
</div>
@@ -10,6 +10,7 @@ import { TtsCategoryType } from "../../../../../../AppWrapper";
import Select from "react-select";
import { SearchFieldClass } from "../search/SearchFieldClass";
import { Analytics } from "../../../../../../common/Analytics";
import { t } from "i18next";
interface Props {
allTtsCategories: TtsCategoryType[];
@@ -177,7 +178,7 @@ function buildDropdowns(
// If I had more time to spend with this library, I might have a better solution than this hack.
selectProps['value'] = {
value: "*",
label: "Select category...",
label: t("tts.TtsModelListPage.exploreModal.selectCategoryText"),
};
} else {
selectProps['value'] = selectedCategoryOption;
@@ -10,6 +10,7 @@ import { TtsCategoryType } from "../../../../../../AppWrapper";
import { TtsModelListItem } from "@storyteller/components/src/api/tts/ListTtsModels";
import { CategoryOptions } from "./CategoryOptions";
import { ScopedVoiceModelOptions } from "./ScopedVoiceModelOptions";
import { t } from "i18next";
interface Props {
allTtsCategories: TtsCategoryType[];
@@ -100,7 +101,7 @@ export function ExploreVoicesModal(props: Props) {
<div className="modal-header p-3">
<h5 className="modal-title fw-semibold" id="ModalLabel">
<FontAwesomeIcon icon={faCompass} className="me-3" />
Explore Voices
{t("tts.TtsModelListPage.exploreModal.exploreModalTitle")}
</h5>
<button
type="button"
@@ -113,7 +114,9 @@ export function ExploreVoicesModal(props: Props) {
<div className="modal-body p-3 p-lg-4">
<div className="row gx-3 gy-3">
<div className="col-12 col-lg-3 input-icon-search">
<label className="sub-title">Language</label>
<label className="sub-title">
{t("tts.TtsModelListPage.exploreModal.languageLabel")}
</label>
<LanguageOptions
selectedTtsLanguageScope={props.selectedTtsLanguageScope}
setSelectedTtsLanguageScope={
@@ -124,7 +127,9 @@ export function ExploreVoicesModal(props: Props) {
<div className="col-12 col-md-12 col-lg-9 input-icon-search">
<div className="d-flex align-items-start">
<label className="sub-title flex-grow-1">Category</label>
<label className="sub-title flex-grow-1">
{t("tts.TtsModelListPage.exploreModal.categoryLabel")}
</label>
<button
className="ms-3 fw-medium btn-link"
onClick={() => {
@@ -132,7 +137,7 @@ export function ExploreVoicesModal(props: Props) {
}}
>
<FontAwesomeIcon icon={faEraser} className="me-2" />
Clear category filters
{t("tts.TtsModelListPage.exploreModal.clearCategoryFilterButton")}
</button>
</div>
@@ -181,7 +186,7 @@ export function ExploreVoicesModal(props: Props) {
data-bs-dismiss="modal"
aria-label="Close"
>
Use this voice
{t("tts.TtsModelListPage.exploreModal.useThisVoiceButton")}
<FontAwesomeIcon icon={faArrowRight} className="ms-2" />
</button>
</div>
@@ -5,6 +5,7 @@ import Select from "react-select";
import { SearchFieldClass } from "../search/SearchFieldClass";
import { AVAILABLE_TTS_LANGUAGE_CATEGORY_MAP } from "../../../../../../_i18n/AvailableLanguageMap";
import { Analytics } from "../../../../../../common/Analytics";
import { t } from "i18next";
interface Props {
selectedTtsLanguageScope: string,
@@ -36,7 +37,7 @@ export function LanguageOptions(props: Props) {
languageOptions = [
{
label: 'All Languages 🌐',
label: `${t("tts.TtsModelListPage.exploreModal.allLanguagesOptionText")} 🌐`,
value: '*',
},
...languageOptions,