Я работаю над обновлением нашего сайта для работы на разных языках.Самый быстрый способ сохранить и получить переведенный текст - базу данных или плоский файл?
Мой план состоит в том, чтобы хранить абзацы текста на нескольких языках и давать каждому абзацу идентификатор.
Пример
ID => '1'
краток => 'welcome_paragraph'
еп => 'Добро пожаловать на наш сайт!
de => 'Willkommen auf unserer Website!'
Требования
- быстро извлекаемые
- отредактирован с помощью CMS в любое время
- легко добавлять новые языки
Так является лучшим решением для хранения этого в таблице базы данных? И если да, то какие из следующих лучше настройки таблицы:
Одна таблица, столбец для каждого языка и строк для каждого вкратце:
ID, brief, en, de, es
Или две таблицы, одна с breifs, один с переводами :
ID, brief
ID, language, translation
в каждой странице, я намерен сделать ....
эхо $ PAGE-> перевести ($ язык, $ краткое);
несколько раз, чтобы вывести потребуется кусок текста .... это будет медленно держать вызова базы данных с:
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 page Я не рассматриваю возможность использования Zend Перевести на это время ... Я предполагаю, что есть расходы на это?
Почему «генерируется на лету»? Вы не ожидаете, что переводы будут меняться во время выполнения, не так ли? Почему бы не просто включить обычный статический PHP? – bobince
«Я не понимаю, используя Zend Translate в это время ... Я предполагаю, что для этого есть стоимость?» Если вы имеете в виду стоимость, как в долларах, нет, нет никакой платы. Zend Framework является бесплатным и открытым исходным кодом под лицензией BSD. Это примерно так же свободно, как и получается. –
Я изменил «на лету», должен быть на обновлении, спасибо за указание, что из bobince. –