diff --git a/packages/fakeyou/src/_i18n/FakeYouTranslations.ts b/packages/fakeyou/src/_i18n/FakeYouTranslations.ts
index ca67f48197..784aa29fdd 100644
--- a/packages/fakeyou/src/_i18n/FakeYouTranslations.ts
+++ b/packages/fakeyou/src/_i18n/FakeYouTranslations.ts
@@ -4,12 +4,38 @@ import { COMMON_TRANSLATIONS, DebugPrefixLeaves, MergeDeepDictionary } from '@st
// NB: This is the new translation system design. Multiple, per-page or per-module files are easier
// to navigate and maintain than singular monolithic files. We'll gradually phase out the old system.
+import * as de from './locales/de';
import * as en from './locales/en';
import * as es from './locales/es';
+import * as fr from './locales/fr';
+import * as hi from './locales/hi';
+import * as id from './locales/id';
+import * as it from './locales/it';
+import * as ja from './locales/ja';
+import * as ko from './locales/ko';
+import * as nl from './locales/nl';
+import * as pl from './locales/pl';
+import * as pt from './locales/pt';
+import * as tr from './locales/tr';
+import * as vi from './locales/vi';
+import * as zh from './locales/zh';
let NEW_TRANSLATIONS: any = {
+ de: { translation: de },
en: { translation: en },
es: { translation: es },
+ fr: { translation: fr },
+ hi: { translation: hi },
+ id: { translation: id },
+ it: { translation: it },
+ ja: { translation: ja },
+ ko: { translation: ko },
+ nl: { translation: nl },
+ pl: { translation: pl },
+ pt: { translation: pt },
+ tr: { translation: tr },
+ vi: { translation: vi },
+ zh: { translation: zh },
}
// Make it easy to "see" new translations. Comment out when not developing.
diff --git a/packages/fakeyou/src/_i18n/locales/de/index.ts b/packages/fakeyou/src/_i18n/locales/de/index.ts
new file mode 100644
index 0000000000..70e9174e19
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/de/index.ts
@@ -0,0 +1,8 @@
+// "de" - German
+// 1.1 billion speakers (worldwide #1)
+// Twitch #4 (150k concurrent viewers, 4.5k concurrent streamers)
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/de/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/de/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/de/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/de/tts/index.ts b/packages/fakeyou/src/_i18n/locales/de/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/de/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/en/LoginPage.json b/packages/fakeyou/src/_i18n/locales/en/LoginPage.json
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/packages/fakeyou/src/_i18n/locales/en/index.ts b/packages/fakeyou/src/_i18n/locales/en/index.ts
index b3f711d5fe..51d5d4cf2e 100644
--- a/packages/fakeyou/src/_i18n/locales/en/index.ts
+++ b/packages/fakeyou/src/_i18n/locales/en/index.ts
@@ -1,3 +1,6 @@
+// "en" - English
+// 1.1 billion speakers (worldwide #1)
+// Twitch #1 (1.1m concurrent viewers, 52k concurrent streamers)
import * as tts from './tts';
export {
diff --git a/packages/fakeyou/src/_i18n/locales/es/LoginPage.json b/packages/fakeyou/src/_i18n/locales/es/LoginPage.json
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/packages/fakeyou/src/_i18n/locales/es/index.ts b/packages/fakeyou/src/_i18n/locales/es/index.ts
index b3f711d5fe..18be444478 100644
--- a/packages/fakeyou/src/_i18n/locales/es/index.ts
+++ b/packages/fakeyou/src/_i18n/locales/es/index.ts
@@ -1,3 +1,6 @@
+// "es" - Spanish
+// 534 million speakers (worldwide #4)
+// Twitch #2 (288k concurrent viewers, 10k concurrent streamers)
import * as tts from './tts';
export {
diff --git a/packages/fakeyou/src/_i18n/locales/fr/index.ts b/packages/fakeyou/src/_i18n/locales/fr/index.ts
new file mode 100644
index 0000000000..73e010c3b6
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/fr/index.ts
@@ -0,0 +1,8 @@
+// "fr" - French
+// 280 million speakers (worldwide #5)
+// Twitch #5 (140k concurrent viewers, 4.4k concurrent streamers)
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/fr/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/fr/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/fr/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/fr/tts/index.ts b/packages/fakeyou/src/_i18n/locales/fr/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/fr/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/hi/index.ts b/packages/fakeyou/src/_i18n/locales/hi/index.ts
new file mode 100644
index 0000000000..e5c3ac3ab2
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/hi/index.ts
@@ -0,0 +1,8 @@
+// "hi" - Hindi
+// 615 million speakers (worldwide #3)
+// Twitch negligable (<50 streamers)
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/hi/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/hi/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/hi/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/hi/tts/index.ts b/packages/fakeyou/src/_i18n/locales/hi/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/hi/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/id/index.ts b/packages/fakeyou/src/_i18n/locales/id/index.ts
new file mode 100644
index 0000000000..0220776994
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/id/index.ts
@@ -0,0 +1,8 @@
+// "id" - Indonesian
+// 200 million speakers (worldwide #10)
+// Twitch #23 (600 concurrent viewers, 97 concurrent streamers)
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/id/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/id/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/id/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/id/tts/index.ts b/packages/fakeyou/src/_i18n/locales/id/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/id/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/it/index.ts b/packages/fakeyou/src/_i18n/locales/it/index.ts
new file mode 100644
index 0000000000..f7b9b2435f
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/it/index.ts
@@ -0,0 +1,8 @@
+// "it" - Italian
+// 67 million speakers (worldwide #?)
+// Twitch #10 (41k concurrent viewers, 1.2k concurrent viewers)
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/it/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/it/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/it/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/it/tts/index.ts b/packages/fakeyou/src/_i18n/locales/it/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/it/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/ja/index.ts b/packages/fakeyou/src/_i18n/locales/ja/index.ts
new file mode 100644
index 0000000000..1670ed0389
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/ja/index.ts
@@ -0,0 +1,8 @@
+// "ja" - Japanese
+// 128 million speakers (worldwide #13)
+// Twitch #7 (87k concurrent viewers, 2.6k concurrent streams)
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/ja/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/ja/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/ja/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/ja/tts/index.ts b/packages/fakeyou/src/_i18n/locales/ja/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/ja/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/ko/index.ts b/packages/fakeyou/src/_i18n/locales/ko/index.ts
new file mode 100644
index 0000000000..b497003986
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/ko/index.ts
@@ -0,0 +1,8 @@
+// "ko" - Korean
+// 75 million speakers (worldwide #?)
+// Twitch #8 (144k concurrent viewers, 2.5k concurrent streamers)
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/ko/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/ko/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/ko/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/ko/tts/index.ts b/packages/fakeyou/src/_i18n/locales/ko/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/ko/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/nl/index.ts b/packages/fakeyou/src/_i18n/locales/nl/index.ts
new file mode 100644
index 0000000000..f3c7a77890
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/nl/index.ts
@@ -0,0 +1,8 @@
+// "nl" - Dutch
+// 25 million speakers (worldwide #low)
+// Twitch #17 (3.5k concurrent viewers, 300 concurrent streamers)
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/nl/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/nl/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/nl/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/nl/tts/index.ts b/packages/fakeyou/src/_i18n/locales/nl/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/nl/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/pl/index.ts b/packages/fakeyou/src/_i18n/locales/pl/index.ts
new file mode 100644
index 0000000000..5bd4cccace
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/pl/index.ts
@@ -0,0 +1,8 @@
+// "pl" - Polish
+// 50 million speakers (worldwide #23)
+// Twitch #12 (40k concurrent viewers, 800 concurrent streamers)
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/pl/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/pl/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/pl/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/pl/tts/index.ts b/packages/fakeyou/src/_i18n/locales/pl/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/pl/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/pt/index.ts b/packages/fakeyou/src/_i18n/locales/pt/index.ts
new file mode 100644
index 0000000000..49c48a1135
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/pt/index.ts
@@ -0,0 +1,8 @@
+// "pt" - Portuguese
+// 200 million speakers (worldwide #9)
+// Twitch #3 (200k concurrent viewers!, 5.5k concurrent streams)
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/pt/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/pt/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/pt/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/pt/tts/index.ts b/packages/fakeyou/src/_i18n/locales/pt/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/pt/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/tr/index.ts b/packages/fakeyou/src/_i18n/locales/tr/index.ts
new file mode 100644
index 0000000000..68badb1c8b
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/tr/index.ts
@@ -0,0 +1,8 @@
+// "tr" - Turkish
+// 90 million speakers (worldwide #20)
+// Twitch #11
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/tr/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/tr/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/tr/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/tr/tts/index.ts b/packages/fakeyou/src/_i18n/locales/tr/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/tr/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/vi/index.ts b/packages/fakeyou/src/_i18n/locales/vi/index.ts
new file mode 100644
index 0000000000..267ae26089
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/vi/index.ts
@@ -0,0 +1,8 @@
+// "vi" - Vietnamese
+// 87 million speakers (worldwide #21)
+// Twitch #30 (a paltry 170 concurrent viewers, 70 concurrent channels)
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/vi/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/vi/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/vi/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/vi/tts/index.ts b/packages/fakeyou/src/_i18n/locales/vi/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/vi/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/zh/index.ts b/packages/fakeyou/src/_i18n/locales/zh/index.ts
new file mode 100644
index 0000000000..1661684147
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/zh/index.ts
@@ -0,0 +1,8 @@
+// "zh" - Mandarin
+// 1.1 billion speakers (worldwide #2)
+// Twitch #9
+import * as tts from './tts';
+
+export {
+ tts,
+}
diff --git a/packages/fakeyou/src/_i18n/locales/zh/tts/TtsModelListPage.json b/packages/fakeyou/src/_i18n/locales/zh/tts/TtsModelListPage.json
new file mode 100644
index 0000000000..8013513910
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/zh/tts/TtsModelListPage.json
@@ -0,0 +1,25 @@
+{
+ "form": {
+ "asyncLoadingDropdownValue": "Loading...",
+ "buttons": {
+ "clear": "Clear",
+ "speak": "Speak"
+ },
+ "by": "by",
+ "categoryFiltersLabel": "Category / Langauge",
+ "modelSeeMoreLink": "See more details about the \"<1>{{modelName}}1>\" model by <3>{{userName}}3>",
+ "searchHint": "Search Term",
+ "searchLabel": "Search",
+ "textInputHint": "Textual shenanigans go here...",
+ "voicesLabel": "Voice ({{count}} to choose from)"
+ },
+ "formTitle": "Create TTS",
+ "heroSection": {
+ "buttons": {
+ "cloneVoice": "Clone My Voice!",
+ "signUp": "Sign Up"
+ },
+ "subtitle": "Use FakeYou deep fake tech to say stuff with your favorite characters",
+ "title": "Text to Speech"
+ }
+}
\ No newline at end of file
diff --git a/packages/fakeyou/src/_i18n/locales/zh/tts/index.ts b/packages/fakeyou/src/_i18n/locales/zh/tts/index.ts
new file mode 100644
index 0000000000..5f4d5774f0
--- /dev/null
+++ b/packages/fakeyou/src/_i18n/locales/zh/tts/index.ts
@@ -0,0 +1,5 @@
+import * as TtsModelListPage from './TtsModelListPage.json';
+
+export {
+ TtsModelListPage,
+}