Мультиязычность как лучше сделать

Статус
В этой теме нельзя размещать новые ответы.

muzshura

Постоялец
Регистрация
27 Фев 2008
Сообщения
74
Реакции
3
Мультиязычность интерфейса как лучше сделать:

какой вид должен иметь ленг-файл? например ini, csv или класс или массив или дефинед константы?
в самом коде страниц что писать? <?php echo $g['txt']; ?> или {tpl_lng_txt} или что-то другое?

помогите отсеять заранее плохие варианты.
 
ТС, с такими краткими вводными ничего толкового сказать невозможно.
Как минимум, опишите проект, с какой целью создавался, кем поддерживается и будет поддерживаться, планируется ли расширение, в сколько этапов планируется перевод и кем, и т.д.?
 
Zogr, не флуди, ладно?
 
как по мне, так лучше всего с помощью define делать в отдельных lang-файлах. А в код вставлять эти переменные. То, что в скобках "{}" это SMARTY. Юзать, конечно, желательно. Но немного больше гемора возникнет с настройкой вывода переменных.
Кстати, немаловажный вопрос: Как будет проходить переключение между языками для юзеров. И как ты собираешься реализовывать перевод материалов из админки (если вообще таковая планируется).
Что-то мне кажется, что ТС взвалил на себя неподъемную задачу. Сделать локализацию просто. Гораздо сложнее всё спроектировать так, чтобы это было удобно для посетителя :)
 
Zogr, не флуди, ладно?
Ничего себе не флуди.
Если интерфейс будет переводить сам программер - это одно решение, если интерфейс будет переводить сторонний переводчик - это совершенно другое решение, если требуется производительность - третье, если будет подключаться со временем другие языки - четвертое и ещё полно тонкостей. Везде свои нюансы, а в том виде, что вы спрашиваете - это теория сферического коня в вакууме, "сделайте мне красиво" (с).
Ну, успеха.
 
Если интерфейс будет переводить сам программер - это одно решение, если интерфейс будет переводить сторонний переводчик - это совершенно другое решение, если требуется производительность - третье, если будет подключаться со временем другие языки - четвертое и ещё полно тонкостей.
Плохо себе представляю, что на каждый из вышеописанных вариантов нужен свой вариант реализации многоязычности.
Можно примером показать реализацию на каждый из вышеописанных условий?
 
Самый простой вариант автоматически инклюдящие по структуре файлы с define константами или перемеными. Пример можно глянуть в битриксе.

Либо юзать все тот же .po. Пример в вордпрессе. Тут сложнее.
 
Вариантов масса. Тут ведь все зависит не только от интерфейса. Его можно в отдельные языковые файлы покидать и подключать соответственно, а там определить массивы переменных, вывод же делать функцией, которая по текущему выбранному языку выводит нужное значение, либо просто инключить сразу нужный файл, если язык известен.
Можно хранить все в базе. С интерфейсом будет непросто, придется создать нечто вроде словаря. Все зависит от того, насколько богат словарь на страницах. т.к. на производительность будет сильно влиять.
А что планируете делать с контентом? Его как переводить? Где хранить? откуда выводить? Вот тут много вопросов...
 
Остановился на файлах с define объявлением констант
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху