Что использовать для локализации (приложение php / smarty / pear)?

У меня есть приложение php / smarty / pear, которое имеет собственную реализацию локализации, которая включает в себя использование идентификаторов для строк, и строки хранятся в БД. В настоящее время приложение только на английском языке, но я начну добавлять другие языки. Текущая реализация очень плохая, и, в принципе, я не большой поклонник изобретения колеса.

Кто-нибудь может порекомендовать, что использовать для локализации? Я использовал gettext несколько лет назад, это все еще используется или есть что-то более новое и лучшее?

заранее спасибо.

Ответы на вопрос(2)

Решение Вопроса

так как это зрелая система и предоставляет такие функции, как переводы в единственном / множественном числе. Чтобы не зависеть от доступности расширения php, вам следует вернуться кhttp://launchpad.net/php-gettext который обеспечивает чистую реализацию php gettext.

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

 Sherif Buzz08 окт. 2010 г., 00:41
cheers.will проверить это.

как другие приложения (Drupal, Joomla, Wordpress) обрабатывают локализацию и реализуют нечто подобное.

У нескольких приложений, в которые я углубился, есть отдельный файл ini для каждого языка, который содержит определения STRING-ID = "String Value", где STRING-ID аналогичен имени PHP CONSTANT. Эти файлы затем загружаются классом локализации, который имеет функции, которые обрабатывают настройку используемого языка (на основании значения конфигурации или пользовательской настройки), загружают файл и обрабатывают перевод STRING-ID в строковое значение. Вы бы в конечном итоге использовать его так:

<?php
// config.php
$lang = "DE";

// languages/de.ini
HELLOWORLD="Hallo Welt"
OTHERSTRING="Anderer String"

// example.php
require_once("classes/localization.class.php");
$localize = localization::getInstance();
echo $localize->translate("HELLOWORLD");
?>

Это должно создать что-то вроде Hallo Welt.

 Sherif Buzz08 окт. 2010 г., 00:38
это то, что я имею сейчас, но я чувствую, что отслеживание изменений между различными INI-файлами может быть кошмаром. У меня приятные воспоминания о редактировании файлов po / gettext с использованием соответствующих инструментов.

Ваш ответ на вопрос