Skip to content

Commit 884deb6

Browse files
refactor(i18n): add ru and tj translations, disassemble all t4 files into tb text blocks
1 parent 17abee9 commit 884deb6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+530
-636
lines changed

lib/i18n/TranslationBlock.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
export type TranslationBlock = {
22
en: string
33
de: string
4+
ru: string
5+
tj: string
46
}

lib/i18n/ct0.ts

Lines changed: 0 additions & 21 deletions
This file was deleted.

lib/i18n/getBrowserUserDefinedLanguage.ts

Lines changed: 0 additions & 23 deletions
This file was deleted.

lib/i18n/language.ts

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,12 @@ export type Language = keyof typeof language
22
export const language = {
33
en: "en",
44
de: "de",
5+
ru: "ru",
6+
tj: "tj",
57
} as const
68

7-
export const defaultLanguage: Language = language.de
8-
// export let defaultLanguage: Language = languages.en
9+
export const languageDefault: Language = language.de
910

10-
export function isDe() {
11-
return defaultLanguage === language.de
11+
export function isEn(l: Language) {
12+
return languageDefault === language.en
1213
}
13-
14-
export function isEn() {
15-
return defaultLanguage === language.en
16-
}
17-
18-
export const knownLanguages = {
19-
en: "English",
20-
de: "Deutsch",
21-
} as const
22-
23-
export const languageFlag = {
24-
en: "🇺🇸",
25-
de: "🇩🇪",
26-
} as const

lib/i18n/languageFromBrowser.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { type Language, language } from "~ui/i18n/language"
2+
3+
export function languageFromBrowser(): Language {
4+
if (!navigator || !navigator.languages) return language.en
5+
for (const l of navigator.languages) {
6+
if (l.startsWith("de")) return language.de
7+
if (l.startsWith("en")) return language.en
8+
}
9+
return language.en
10+
}

lib/i18n/languageSignal.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { getBrowserUserDefinedLanguage } from "~ui/i18n/getBrowserUserDefinedLanguage"
21
import type { Language } from "~ui/i18n/language"
2+
import { languageFromBrowser } from "~ui/i18n/languageFromBrowser"
33
import { createSignalObject } from "~ui/utils/createSignalObject"
44

5-
export const languageSignal = createSignalObject<Language>(getBrowserUserDefinedLanguage())
5+
export const languageSignal = createSignalObject<Language>(languageFromBrowser())

lib/i18n/languageText.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import type { Language } from "~ui/i18n/language"
2+
3+
export const languageText = {
4+
en: "English",
5+
de: "Deutsch",
6+
ru: "Русский",
7+
tj: "Тоҷикӣ",
8+
} as const satisfies Record<Language, string>

lib/i18n/t1.ts

Lines changed: 0 additions & 58 deletions
This file was deleted.

lib/i18n/t4pageName.ts

Lines changed: 0 additions & 110 deletions
This file was deleted.

lib/i18n/ttl.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { languageSignal } from "~ui/i18n/languageSignal"
2+
import type { TranslationBlock } from "~ui/i18n/TranslationBlock"
3+
4+
export function ttl(b: TranslationBlock): string {
5+
return b[languageSignal.get()]
6+
}
7+
8+
export function ttl1(b: TranslationBlock, x: string | number): string {
9+
return (
10+
b[languageSignal.get()]
11+
//
12+
.replace("[X]", x.toString())
13+
)
14+
}
15+
16+
export function ttl2(b: TranslationBlock, x1: string | number, x2: string | number): string {
17+
return (
18+
b[languageSignal.get()]
19+
//
20+
.replace("[X1]", x1.toString())
21+
.replace("[X2]", x2.toString())
22+
)
23+
}
24+
25+
export function ttl3(b: TranslationBlock, x1: string | number, x2: string | number, x3: string | number): string {
26+
return b[languageSignal.get()]
27+
.replace("[X1]", x1.toString())
28+
.replace("[X2]", x2.toString())
29+
.replace("[X3]", x3.toString())
30+
}

0 commit comments

Comments
 (0)