Локализуйте данные таблицы - PullRequest
0 голосов
/ 09 августа 2011

Например: у меня есть таблица с некоторыми кодами:

1, Blue, This is blue color
2, Red, This is red color - any text...
3, Green, This is green color
  • Количество языков неизвестно.
  • Таблица может иметь более одного локализованного поля.
  • Я использую JPA с hibernate для доступа к этим таблицам.

Как локализовать эти коды и описания?

Ответы [ 2 ]

0 голосов
/ 09 августа 2011

В противоположность другому ответу:

Я думаю, вам следует создать таблицу, включающую локаль в качестве дополнительного поля. Это позволит вам создать индекс по идентификатору сообщения и локали для ускорения поиска. Это также облегчит создание административного интерфейса (я предполагаю, что он у вас есть, поскольку в противном случае вы будете использовать файлы свойств), поскольку вам нужно работать только с одной таблицей и одним объектом на стороне JPA.

Таблица будет выглядеть так:

table messages
   id number,
   message_code number,
   locale string, // or number, depending on your app
   message1 string
   message2 string
   message3 string // or more/less

message_code не является строго необходимым, но помогает повторно использовать эту таблицу для различных контекстов.

0 голосов
/ 09 августа 2011

считают, что локализации следует добавлять по вертикали, а не по горизонтали.

Это означает, что нет нового столбца для каждого языка, а есть отдельная таблица для имени и идентификатора языка и другая таблица с локализованными значениями на всех возможных языках.

таблица, которую вы показали выше, является основной таблицей с нейтральным языком, в вашем случае английским, тогда вторая упомянутая выше таблица будет иметь те же идентификаторы (1,2,3 ...) для идентификатора строкизатем столбец LanguageId и LanguageText с определенным локализованным значением для этого LanguageId.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...