Предложенный метод интернационализации в MySQL? - PullRequest
3 голосов
/ 15 июня 2010

У меня есть веб-сайт по Кохане, и я планирую сделать его многоязычным.
Теперь я знаю, как с папкой i18n и внутри каждой языковой папки
есть какой-то файл strings.php ..
Но мне нужен динамический способ (в БД), чтобы я мог изменять значения всякий раз, когдахотите
через веб-сайт.

Существует ли какая-либо общая схема таблиц, которая обычно используется для многоязыкового контента?

1 Ответ

2 голосов
/ 15 июня 2010

Ну, вы, вероятно, можете имитировать файл "ресурсов" в вашей базе данных,

У вас может быть таблица, работающая как каталог для ваших строк, с двумя столбцами, например

Lang_Constants
ID, Constant_Name
1, HELLO_STRING

Другая таблица с поддерживаемыми языками:

Languages
ID, Name
1, English
2, Spanish

и таблица с актуальными данными:

ID, Language, Constant, Value
1,   1, 1, "Hello world!"
10,  2, 1, "Hola mundo!"

И вы могли бы сделать запрос как:

SELECT Value from Lang_Constant_values where 
  Language = (Select ID from Languages where Name = 'English')
and
  Constant = (Select ID from Lang_Constants where Constant_Name = 'HELLO_STRING')
...