Как лучше хранить и производить локализацию справочных значений?
Проект разрабатывается на платформе Java, но вопрос в целом общий.
Под справочниками подразумеваются какие-то общие атрибуты модели, которые редко меняются (страна, город, язык и т.д.)
Сталкивался с двумя вариантами (допустим нужны локали EN и RU):
1. Хранить локализованные значения прямо в базе
| id | country_ru | country_en |
| 1 | Россия | Russia |
2. Хранить в базе код справочного значения, а значения в файлах локализации
| id | code |
| 1 | dic.country.russia |
файл dictionary_ru.properties:
dic.country.russia = Россия
файл dictionary_en.properties:
dic.country.russia = Russia
Какие плюсы и минусы у каждого подхода в реальной практике? Какие подходы еще существуют?
Под справочниками подразумеваются какие-то общие атрибуты модели, которые редко меняются (страна, город, язык и т.д.)
Сталкивался с двумя вариантами (допустим нужны локали EN и RU):
1. Хранить локализованные значения прямо в базе
| id | country_ru | country_en |
| 1 | Россия | Russia |
2. Хранить в базе код справочного значения, а значения в файлах локализации
| id | code |
| 1 | dic.country.russia |
файл dictionary_ru.properties:
dic.country.russia = Россия
файл dictionary_en.properties:
dic.country.russia = Russia
Какие плюсы и минусы у каждого подхода в реальной практике? Какие подходы еще существуют?
1 ответов
Если я правильно понял суть вашего вопроса, то вероятно вам нужен GNU gettext (или любая схожая реализация).
http://www.gnu.org/software/gettext/
И возможно - хороший Java API для CLDR (Common Locale Data Repository)
http://cldr.unicode.org/
Подобный интерфейс на Python позволяет выполнять следующие операции:
http://babel.edgewall.org/wiki/Documentation/0.9/display.html