двуязычное приложение на Agile Toolkit? с селектором языка для пользователя?

Я планирую разработать двуязычное PHP-приложение с помощью Agile Toolkit, с селектором языка на каждой странице (французский и английский). Может ли ATK4 приспособиться к этому? Я думаю, да ... но ... как бы новичку вроде меня сделать это с ATK4 ?? любые подсказки были бы очень признательны ... Я хочу создать один-единственный файл (какой-то файл базы данных, содержащий переводы) и получить доступ ко всему через переменные для различных просмотров страниц (даже пунктов меню). Мы будем благодарны за любую помощь или подсказки по этому поводу. Спасибо

Дон


person user1204626    schedule 12.02.2012    source источник
comment
Вот правильный ответ: stackoverflow.com/questions/13295286/agile-toolkit-localization   -  person romaninsh    schedule 20.11.2012


Ответы (1)


В PHP уже есть функция локализации, и все, что вам нужно сделать, это убедиться, что все внутренние сообщения Agile Toolkit направляются через функцию локализации. API Agile Toolkit также содержит метод _ () . Вам необходимо переопределить его внутри вашего «lib / Frontend.php» и направить его либо через текст get, либо через SQL, в зависимости от того, как вы хотите.

Другая большая часть перевода, которую вам нужно будет выполнить, - это перевод шаблона. Шаблоны обычно содержат графику и текст, которые могут отличаться в зависимости от языка. «PathFinder» идеально подходит для этого. Веб-сайт Agile Toolkit фактически использует эту технику для перевода на польский язык:

когда вы передаете конструктору 3-й аргумент, он указывает PathFinder искать локализованные файлы шаблонов в другом каталоге. Если он не находит их там, по умолчанию используется обычное местоположение.

person romaninsh    schedule 13.02.2012
comment
Спасибо, Романиньш. Подводя итог: я изменю функцию, на которую вы мне указали, как на эту функцию _ ($ str) {return gettext ($ str); } для перевода всего текста, который будет отображаться в приложении. Но для перевода шаблона Pathfinder был бы идеальным решением! Если у меня возникнут проблемы с методом Pathfinder, я вам скажу! .. как я все еще пытаюсь разобраться! .. еще раз спасибо .. ты настоящий принц. - person user1204626; 23.02.2012
comment
Спасибо, Романинш. Подводя итог: помимо английского у меня должен быть французский (французский канадский обязывающий), поэтому я изменю функцию, которую вы мне указали, как эту функцию _ ($ str) {putenv ('LC_ALL = fr_CA '); setlocale (LC_ALL, 'fr_CA'); bindtextdomain (my_App_mo_file, ./locale); текстовый домен (my_App_mo_file); вернуть gettext ($ str); } для перевода всего текста, который будет отображаться в приложении. Это кажется правильным? еще раз спасибо - person user1204626; 23.02.2012
comment
Прошло много времени с тех пор, как я делал многоязычные приложения, но, похоже, все в порядке. Если у вас возникнут какие-либо предложения или проблемы, свяжитесь со мной через список рассылки разработчика. - person romaninsh; 23.02.2012