Я разрабатываю веб-сайт, который будет доступен на разных языках. Это настройка LAMP (Linux, Apache, MySQL, PHP), и она использует Smarty, главным образом для механизма шаблонов.
Способ, которым мы в настоящее время переводим, - это самозаписываемый плагин smarty, который распознает определенные теги в файлах HTML и найдет соответствующий тег в ранее определенном языковом файле.
HTML, может выглядеть следующим образом:Что является самым эффективным способом создания многоязычного сайта
<p>Hi, welcome to $#gamedesc;!</p>
И языковый файл может выглядеть следующим образом:
gamedesc:Poing 2009$;
welcome:this is another tag$;
Какой бы тогда выход
<p>Hi, welcome to Poing 2009!</p>
Эта система очень но это довольно сложно контролировать, если я хотел бы отслеживать то, что было переведено до сих пор, или предоставить определенным пользователям права переводить только определенные теги.
Я рассматривал некоторые альтернативные способы приблизиться к этому, заменив текстовый файл на файлы XML, которые могут хранить некоторые дополнительные метаданные или, возможно, хранить все тексты в базе данных и извлекать их там.
Вопрос в том, что было бы лучшим способом сделать эту систему пригодной для обслуживания и хорошо работать с высоким пользовательским трафиком? Могут ли быть какие-то (легкие) плагины, на которые я мог бы взглянуть?
Спасибо, мне кажется, что это подход, сопоставимый с моей текущей настройкой, но с достаточными дополнительными функциями, чтобы сделать его более прочным. Мне нравится тот факт, что для этого существуют существующие инструменты. –
Вы также можете сделать снимок Zend_Translate Zend Framework: http://tinyurl.com/yl28xqy – Kjir
Также посмотрите на страницу, где он говорит об адаптерах для Zend_Translate, есть список форматов файлов, которые обычно используются, и это может помочь вам найти решение, которое идеально подходит для ваших нужд. – Kjir