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
Требование к экспорту по умолчанию
Для корректной работы с TypeScript ваш файл должен экспортировать объект как экспорт по умолчанию:
// Это работает - объект экспортируется по умолчанию
export default {
common: {
save: "Сохранить",
cancel: "Отмена",
delete: "Удалить",
},
auth: {
login: "Войти",
register: "Создать аккаунт",
},
} as const;
// Это тоже работает - переменная с экспортом по умолчанию
const messages = {
welcome: "Добро пожаловать в наше приложение",
error: "Что-то пошло не так",
};
export default messages;
Сохранение типобезопасности
export const locale = {
buttons: {
submit: "Отправить форму",
reset: "Сбросить",
},
} as const;
type LocaleKeys = typeof locale;
Информация о типах и утверждения const остаются неизменными.
Расширенная конфигурация
Несколько файлов TypeScript
"typescript": {
"include": [
"src/locales/[locale].ts",
"src/translations/[locale]/*.ts"
]
}
Блокировка определений типов
"typescript": {
"include": ["src/locales/[locale].ts"],
"lockedKeys": ["__type", "metadata"]
}