Перевести PHP-сайт через БД или локальные файлы?

У меня есть веб-сайт, управляемый php db, который использует много флэш-памяти для взаимодействия с пользователем. Мне нужно сделать его многоязычным, например, более 20 языков. Сайт довольно большой и каждый день на него заходит множество пользователей.

Другой разработчик, с которым я работаю, говорит, что мы должны хранить перевод в локальных файлах, например. /lang/english.php /lang/german.php и т. д.

Я подумал, поскольку база данных находится на том же выделенном сервере, не должно быть замедления, какой способ, по вашему мнению, будет работать быстрее?


person JohnA    schedule 07.12.2011    source источник
comment
Как сказано ниже, я бы, вероятно, использовал какую-то систему с адаптерами, которые могут использовать несколько источников. После этого все становится просто вопросом, как вам удобно управлять файлами. Нет никаких причин, по которым содержимое БД нельзя кэшировать на диск.   -  person Corbin    schedule 08.12.2011


Ответы (2)


Я не знаю, можно ли это сделать, но вы также можете использовать gettext().

Таким образом, ваши переводы хранятся в локальных файлах (быстрее, чем в базе данных), и у вас есть преимущество в том, что существуют такие программы, как poedit (требует некоторого привыкания...), который вы или переводчик можете использовать для автоматического создания файлов перевода, поэтому поддерживать его немного проще, чем файлы php.

person jeroen    schedule 07.12.2011

Локальные файлы НАМНОГО быстрее, чем содержимое БД (хотя вы можете сохранить вывод БД в локальном кеше, таком как файлы или даже memcache или APC), возможно, это не так просто перевести, но это также поможет вам с базовой скоростью реализации. , Вы должны взглянуть на:

http://framework.zend.com/manual/en/zend.translate.html

Вы можете использовать только эту часть фреймворка, и это даст вам ОГРОМНЫЙ импульс, он поддерживает перевод на основе БД или локальные файлы (множество адаптеров).

ОБНОВЛЕНИЕ: спасибо, Корбин, вы правы, лучше иметь прямую ссылку.

person camilo_u    schedule 07.12.2011
comment
framework.zend.com/manual/en/zend.translate.html может быть более подходящей ссылкой. - person Corbin; 08.12.2011