Lingo.dev + .ts (TypeScript)
Lingo.dev CLI übersetzt TypeScript-Lokalisierungsdateien unter Beibehaltung von Typdefinitionen, Objektstrukturen und TypeScript-spezifischer Syntax. Die CLI erhält TypeScript-Typprüfung und -Inferenz, unterstützt alle TypeScript-Syntax und -Funktionen, arbeitet mit Standard- und benannten Exporten, behandelt Template-Strings und Interpolation korrekt und integriert sich nahtlos in TypeScript-Kompilierungsprozesse.
Schnelle Einrichtung
Konfiguration für TypeScript-Lokalisierungsdateien:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"typescript": {
"include": ["src/locales/[locale].ts"]
}
}
}
Erinnerung: [locale]
ist ein Platzhalter, der wörtlich in der Konfiguration verbleiben sollte, da er während der CLI-Ausführung durch die tatsächliche Locale ersetzt wird.
TypeScript-Dateien übersetzen
npx lingo.dev@latest i18n
Bewahrt TypeScript-Syntax, Typannotationen und Modulexporte bei der Übersetzung von Stringinhalten.
TypeScript-Strukturunterstützung
Objekt-Export-Muster
export const messages = {
common: {
save: "Speichern",
cancel: "Abbrechen",
delete: "Löschen",
},
auth: {
login: "Anmelden",
register: "Konto erstellen",
},
} as const;
Interface-basierter Ansatz
interface Messages {
welcome: string;
itemCount: (count: number) => string;
}
export const en: Messages = {
welcome: "Willkommen auf unserer Plattform",
itemCount: (count: number) => `Sie haben ${count} Elemente`,
};
Template-Literal-Unterstützung
export const messages = {
greeting: (name: string) => `Hallo, ${name}!`,
notification: `Sie haben ${count} neue Nachrichten`,
path: `/users/${userId}/profile`,
};
Bewahrung der Typsicherheit
Const-Assertions
export const locale = {
buttons: {
submit: "Formular absenden",
reset: "Zurücksetzen",
},
} as const;
type LocaleKeys = typeof locale;
Typinformationen und Const-Assertions bleiben intakt.
Funktionsdefinitionen
export const t = {
welcome: (name: string): string => `Welcome, ${name}!`,
pluralize: (count: number): string =>
count === 1 ? "1 item" : `${count} items`,
};
Funktionssignaturen und Rückgabetypen bleiben erhalten.
Erweiterte Konfiguration
Mehrere TypeScript-Dateien
"typescript": {
"include": [
"src/locales/[locale].ts",
"src/translations/[locale]/*.ts"
]
}
Typ-Definitionen sperren
"typescript": {
"include": ["src/locales/[locale].ts"],
"lockedKeys": ["__type", "metadata"]
}