Локализация названий стран

Как часть адресов, которые я храню в своих кодах стран базы данных SQL (например, США, DE,...). Затем у меня есть еще одна таблица (с двумя столбцами) в моей базе данных, которая переводит коды стран в названия соответствующих стран на английском языке.

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

Мне было интересно, есть ли другой метод, который не требует модификации базы данных, например. используя gettext для перевода названий английских стран?


person user1583209    schedule 12.12.2012    source источник


Ответы (1)


Типичный способ справиться с этим — изменить структуру таблицы, чтобы она имела три столбца вместо двух:

  • Язык
  • Код страны
  • Полное имя

Всякий раз, когда вы запрашиваете базу данных, вы должны указать текущий язык.

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

В зависимости от того, как вы собираетесь отслеживать текущий язык, вы также можете использовать представление или пользовательскую функцию.

Вы не хотите использовать автоматический перевод, так как название такой страны, как «Китай», может превратиться в эквивалент «фарфор».

person Gordon Linoff    schedule 12.12.2012
comment
Не уверен, что понимаю. Где тогда появится полное название страны, скажем, на исландском языке? Я думал о трех столбцах, таких как: CountryCode, FullNameEnglish, FullNameIcelandic, а затем извлекал либо 2-й, либо 3-й столбец в зависимости от выбранного языка. - person user1583209; 13.12.2012