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"]
}