Я работаю над обновлением нашего сайта для работы на разных языках.
Мой план - хранить абзацы текста на нескольких языках и присваивать каждому абзацу идентификатор.
Пример
id => '1'
краткое => 'welcome_paragraph'
ru => 'Добро пожаловать на наш сайт!'
de => 'Сайт Willkommen auf unserer!'
Требования
- быстро получено
- редактируется через CMS в любое время
- легко добавлять новые языки
Так что это лучшее решение для хранения этого в таблице базы данных? И если да, то какая из следующих таблиц является наилучшей настройкой таблицы:
Одна таблица, столбец для каждого языка и строка для каждого резюме:
ID, brief, en, de, es
Или две таблицы, одна с брифами, одна с переводами:
ID, brief
ID, language, translation
На каждой странице я собираюсь сделать ....
echo $ page-> translate ($ language, $rief);
Несколько раз, чтобы вывести требуемый фрагмент текста .... будет ли медленно вызывать базу данных с:
SELECT translation FROM translations
WHERE language = 'es' AND brief = 'welcome_paragraph'
LIMIT 1
Несколько раз на каждой странице? Поэтому есть ли лучший способ сохранить это как flatfile? Или файл PHP, сгенерированный при обновлении , содержащий большой массив переводов?
$english = array(
'message1' => 'message1',
'message2' => 'message2',
'message3' => 'message3');
$german = array(
'message1' => 'Nachricht1',
'message2' => 'Nachricht2',
'message3' => 'Nachricht3');
Очень похоже на пример на странице Zend Translate
В настоящее время я не рассматриваю возможность использования Zend Translate ... Полагаю, что это обходится?