Lingo.dev + .ts (TypeScript)
CLI Lingo.dev переводит файлы локализации TypeScript, сохраняя определения типов, структуры объектов и синтаксис, специфичный для TypeScript. CLI поддерживает проверку типов и вывод типов TypeScript, работает со всем синтаксисом и функциями TypeScript, поддерживает как стандартные, так и именованные экспорты, корректно обрабатывает шаблонные строки и интерполяцию, а также бесшовно интегрируется с процессами компиляции TypeScript.
Быстрая настройка
Настройка для файлов локализации TypeScript:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"typescript": {
"include": ["src/locales/[locale].ts"]
}
}
}
Напоминание: [locale]
— это плейсхолдер, который должен оставаться в конфигурации буквально, так как он заменяется на фактический язык во время выполнения CLI.
Перевод файлов TypeScript
npx lingo.dev@latest i18n
Сохраняет синтаксис TypeScript, аннотации типов и экспорты модулей при переводе строкового содержимого.
Поддержка структуры TypeScript
Шаблон экспорта объекта
export const messages = {
common: {
save: "Сохранить",
cancel: "Отменить",
delete: "Удалить",
},
auth: {
login: "Войти",
register: "Создать аккаунт",
},
} as const;
Подход на основе интерфейсов
interface Messages {
welcome: string;
itemCount: (count: number) => string;
}
export const en: Messages = {
welcome: "Добро пожаловать на нашу платформу",
itemCount: (count: number) => `У вас ${count} элементов`,
};
Поддержка шаблонных литералов
export const messages = {
greeting: (name: string) => `Привет, ${name}!`,
notification: `У вас ${count} новых сообщений`,
path: `/users/${userId}/profile`,
};
Сохранение безопасности типов
Утверждения const
export const locale = {
buttons: {
submit: "Отправить форму",
reset: "Сбросить",
},
} as const;
type LocaleKeys = typeof locale;
Информация о типах и утверждения const остаются неизменными.
Определения функций
export const t = {
welcome: (name: string): string => `Добро пожаловать, ${name}!`,
pluralize: (count: number): string =>
count === 1 ? "1 элемент" : `${count} элементов`,
};
Сигнатуры функций и возвращаемые типы сохраняются.
Расширенная конфигурация
Несколько файлов TypeScript
"typescript": {
"include": [
"src/locales/[locale].ts",
"src/translations/[locale]/*.ts"
]
}
Зафиксировать определения типов
"typescript": {
"include": ["src/locales/[locale].ts"],
"lockedKeys": ["__type", "metadata"]
}