У меня есть веб-сайт, который в настоящее время находится на английском языке; Я хочу иметь возможность переключаться на другой язык, когда пользователь нажимает на другой язык (на сайте есть небольшие значки флагов страны). То, как я сейчас пытаюсь, это массивы, например:
$english = array('index', array('h1' => 'this is some h1 text', 'h2' => 'this is some h2 text')); $japanese = array('index', array('h1' => '世界交換への歓迎', 'h2' => 世界交換への')); print $english[index][h1]; print $japanese[index][h2];
Как вы можете видеть, если бы я сделал это для каждой отдельной страницы на отдельном языке, это было бы безумным количеством кода. Какой еще метод я могу попробовать?
Учитывая, что вы ищете полную поддержку i18n, которая в конечном итоге приведет к поддержке l10n, я бы предложил написать вашу страницу в фреймворке, который поддерживает эти вещи из коробки.
Лично я только делал переводы с помощью системы Symfony. Они используют комбинацию расширения таблицы i18n в БД для контента и XLIFF-файлы для перевода интерфейса. Он был достаточно прозрачным после его установки, и использование фреймворка позволяет избежать необходимости писать всю эту поддержку вручную.
Я также знаю, что i18n поддерживается в Zend, CakePHP и Code Igniter.
Я использовал эту систему с пользовательским CMS @ http://www.grandhall.eu . Это особенно интересно, когда вам нужно принимать во внимание такие вещи, как брошюры и другие загрузки.
Я бы предложил подключить ваш сайт к API Windows Live или API Google Translate. Я не знаю о Google, но API Windows Live кажется очень простым в использовании.
http://msdn.microsoft.com/en-us/magazine/dd569750.aspx
Это, или вы можете выписать весь контент на странице на двух языках, сохранить их как в разных таблицах в базе данных «контент», а затем изменить, какая таблица загружается, когда пользователь нажимает кнопку смены языка. Теперь большая часть вашей тяжелой работы будет заключаться в переписывании контента на обоих языках.
Вы можете просто использовать Google translate api:
Он содержит множество документации, и есть примеры того, как использовать его на игровой площадке Google.
Просто перейдите на ajax> translation