Как лучше хранить и производить локализацию справочных значений?

Проект разрабатывается на платформе 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

Какие плюсы и минусы у каждого подхода в реальной практике? Какие подходы еще существуют?

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