2009-07-20 5 views
0

Каков наилучший способ реализации языкового перевода для сайта mutli -lang. У меня есть два способа, т.е.Как я могу реализовать модуль языкового перевода в php

1) Просто поместите все статические содержание текста на страницах в базе данных т.е. базы данных приводится программирует стиль

$translation('register_form'); 
<form > 
<input name="search" > 
</form> 

своего рода transltion.

2) используется как метод wordpress .mo files.

Я хочу знать больше о том, что вид перевода, как он работает с .mo как файлы ...

или любой другой лучший способ сделать модуль перевода.

ответ

1

Для поддержки файлов .mo ознакомьтесь с функциями gettext и посмотрите оригинал GNU gettext documentation.

В двух словах, в любое время вы используете естественный язык, вы заключаете в вызове _() (псевдоним gettext)

echo _("Hello world"); 

После того, как все ваши источники делают это, запустите инструмент GNU зная искомых к build a .pot file, который формирует «шаблон» для ваших языковых переводов. Для каждого желаемого языка вы должны: merge this .pot file into an individual .po file for each language. Операция слияния, снова предоставляемая xgettext, гарантирует, что вы обновите файл новыми строками, не теряя при этом существующих переводов.

Эти файлы .po отправляются вашим переводчикам, которые могут использовать инструмент, например poedit, для перевода. Когда возвращается файл .po, вы можете сгенерировать бинарный файл .mo, который используется gettext.

Есть также classes in the Zend Framework, которые предоставляют дополнительные возможности помимо этого, например. больше форматов файлов, а также обнаружение и выбор предпочтительного языка пользователя в заголовках HTTP.

0

Посмотрите на gettext - это не идеальное решение проблемы каждого, но это может быть для вас.