2010-06-14 2 views
3

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

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

+0

хотя это хороший вопрос, я думаю, что ввод переведенных строк в БД будет вызывать проблемы с производительностью. – Gogol

ответ

2

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

Вы можете иметь стол работает как каталог для ваших строк, с двумя столбцами, как

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') 
Смежные вопросы