Lingo.dev + .json (Vue.js)
Lingo.dev CLI переводит JSON-файлы i18n для Vue.js, сохраняя форматирование сообщений, синтаксис интерполяции и специфические для Vue.js соглашения. CLI работает безупречно с библиотекой vue-i18n, сохраняет все форматирование сообщений Vue, placeholders, такие как {name}
, корректно обрабатывает связывание сообщений с помощью синтаксиса @:
и сохраняет placeholders для интерполяции компонентов.
Быстрая настройка
Настройка для файлов локализации i18n в Vue.js:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"vue-json": {
"include": ["src/locales/[locale].json"]
}
}
}
Напоминание: [locale]
— это placeholder, который должен оставаться в конфигурации буквально, так как он заменяется на фактическую локаль во время выполнения CLI.
Перевод файлов Vue i18n
npx lingo.dev@latest i18n
Сохраняет форматирование сообщений Vue.js, placeholders для интерполяции и специфический синтаксис vue-i18n.
Возможности Vue i18n
Интерполяция сообщений
{
"message": {
"hello": "Привет, {name}!",
"welcome": "Добро пожаловать, {name}, у вас {count} сообщений"
}
}
Правила множественного числа
{
"car": "машина | машины",
"apple": "нет яблок | одно яблоко | {count} яблок"
}
Связанные сообщения
{
"common": {
"name": "Название приложения"
},
"welcome": "Добро пожаловать в @:common.name"
}
Синтаксис связывания сообщений Vue @:
сохраняется.
Расширенные возможности Vue
Поддержка HTML-сообщений
{
"message": {
"title": "Добро пожаловать на <strong>нашу платформу</strong>",
"link": "Посетите наш <a href='/help'>центр помощи</a>"
}
}
Интерполяция компонентов
{
"message": {
"terms": "Я согласен с {0}условиями использования{/0} и {1}политикой конфиденциальности{/1}"
}
}
Синтаксис placeholders для интерполяции компонентов остается неизменным.
Форматирование даты, времени и чисел
{
"datetime": {
"short": "{value}",
"long": "{value}"
},
"number": {
"currency": "{value}"
}
}
Расширенная конфигурация
Несколько директорий для локалей
"vue-json": {
"include": [
"src/locales/[locale].json",
"src/i18n/[locale]/*.json"
]
}
Блокировка ключей, специфичных для Vue
"vue-json": {
"include": ["src/locales/[locale].json"],
"lockedKeys": ["$vuetify", "dateTimeFormats", "numberFormats"]
}