mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 01:18:34 +00:00
Merge pull request #157 from storytold/bt-i18n-v3
Localize "explore" modal
This commit is contained in:
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>
|
||||
|
||||
+2
-1
@@ -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
-5
@@ -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>
|
||||
|
||||
+2
-1
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user