Lingo.dev + .properties (Java)
Lingo.dev CLI переводит файлы Java .properties, сохраняя структуру ключ-значение, escape-последовательности и соглашения локализации Java. CLI бесшовно работает с системой ResourceBundle Java, точно сохраняет формат файла properties, корректно обрабатывает Unicode и экранирование специальных символов, сохраняет заполнители {0}
, {1}
для MessageFormat и интегрируется с процессами сборки Maven и Gradle.
Быстрая настройка
Настройка для файлов Java properties:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"properties": {
"include": ["src/main/resources/messages_[locale].properties"]
}
}
}
Напоминание: [locale]
— это заполнитель, который должен оставаться в конфигурации буквально, так как он заменяется на фактический локаль во время выполнения CLI.
Перевод файлов properties
npx lingo.dev@latest i18n
Сохраняет формат файла properties, escape-последовательности и специфические для Java соглашения при переводе значений.
Структура файла properties
Основные пары ключ-значение
welcome.message=Добро пожаловать в наше приложение
login.button=Войти
logout.button=Выйти
error.invalid.credentials=Неверное имя пользователя или пароль
Организация по пространствам имен
# Сообщения аутентификации
auth.login.title=Вход
auth.login.subtitle=Введите свои учетные данные
auth.register.title=Создать аккаунт
auth.forgot.password=Забыли пароль?
# Элементы навигации
nav.home=Главная
nav.dashboard=Панель управления
nav.settings=Настройки
Заполнители MessageFormat
welcome.user=С возвращением, {0}!
items.count=У вас {0} товаров в корзине
validation.min.length=Поле должно содержать не менее {0} символов
date.format=Сегодня {0,date,short}
Особенности Java
Unicode escape-последовательности
japanese.greeting=\u3053\u3093\u306b\u3061\u306f
euro.symbol=Цена: 100\u20ac
Unicode escape-последовательности сохраняются при переводе.
Продолжение строки
long.message=Это очень длинное сообщение, которое \
разделено на несколько строк для лучшей \
читаемости в исходном файле
Экранирование специальных символов
file.path=C:\\Users\\Documents\\file.txt
key.with.spaces=key\ with\ spaces=value with spaces
special.chars=Содержит \= знак равно и \: двоеточия
Расширенная конфигурация
Несколько файлов свойств
"properties": {
"include": [
"src/main/resources/messages_[locale].properties",
"src/main/resources/validation_[locale].properties"
]
}
Блокировка ключей конфигурации
"properties": {
"include": ["src/main/resources/messages_[locale].properties"],
"lockedKeys": ["app.version", "build.timestamp", "api.endpoint"]
}