Java набрал i18n (Java) - PullRequest
       31

Java набрал i18n (Java)

0 голосов
/ 28 августа 2018

Я хотел бы знать, возможно ли (и с помощью какого инструментария) сделать i18n типов безопасным в Java. Может быть, это не ясно, поэтому вот некоторые детали, при условии, что мы используем что-то на основе MessageFormat

1) Перевести с использованием типов безопасных параметров

Я бы хотел избежать использования интерфейса типа String translate(Object key,Object... values), где значения не введены. Должен быть невозможен вызов с неверным типом параметра.

Заметьте, я в порядке, определяя набор всех клавиш. Решение, которое я ищу, должно быть масштабируемым и не должно значительно увеличивать время запуска бэкэнда.

2) Во время компиляции должно быть известно, какие ключи еще используются

Я не хочу, чтобы моя база ключей перевода была похожа на CSS многих веб-сайтов, она растет и растет вечно, и все боятся удалять ключи, потому что мы не можем легко понять, полезны ли они до сих пор или нет.

В JS / React land существует babel-plugin-реагировать-intl , который позволяет извлекать во время компиляции ключи перевода, которые все еще находятся в коде. Затем мы можем различить эти ключи с помощью нашего бэкэнда перевода / SaaS и автоматически удалить неиспользуемые ключи. Есть ли что-нибудь похожее на этот опыт на земле Java?


Я ищу:

  • любой трюк, который может сделать i18n более управляемым в Java в отношении этих 2 проблем, которые у меня есть
  • текущие инструменты, которые могут помочь мне решить проблему
  • подсказки о том, как реализовать что-то нестандартное, если инструментарий не существует

Кроме того, подходит ли Enum для хранения огромного фиксированного списка ключей перевода?

1 Ответ

0 голосов
/ 28 августа 2018

Ключи перевода являются оконченным открытым доменом. Для закрытого домена перечисление enum подойдет.

Наличие чего-то вроде перечислений или константных списков, вероятно, вызывает рост различных перечислений, классов констант.

И тут есть очень важная перспектива переводческого бизнеса: Вы хотели бы по крайней мере один глоссарий (не нуждающийся в переводе), сгруппированные по структуре фразы комментарии могут быть по двойственным терминам и использованиям (кнопка / меню). Это может уменьшить время стоит и улучшается качество. Также есть такие вещи, как онлайн-справка.

До сих пор для этого было достаточно XML, такого как простая книга / память переводов (tmx / xliff / ...). И оснастка В том числе различные формы оценки были сделаны сами.

Я надеюсь, что будет дан более профессиональный ответ, но мой ответ может пролить свет на желаемую функциональность:

  • Ориентация на перевод: , так как это требует больше всего работы.
  • контроль версий: задействованы некоторые текстовые списки.
  • инструменты проверки: то, что вы упомянули, целостность, отсутствует, почти равны.
...