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

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

muzshura

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

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

помогите отсеять заранее плохие варианты.
 

Zogr

Постоялец
Регистрация
6 Июн 2008
Сообщения
96
Реакции
9
ТС, с такими краткими вводными ничего толкового сказать невозможно.
Как минимум, опишите проект, с какой целью создавался, кем поддерживается и будет поддерживаться, планируется ли расширение, в сколько этапов планируется перевод и кем, и т.д.?
 

muzshura

Постоялец
Регистрация
27 Фев 2008
Сообщения
74
Реакции
3
Zogr, не флуди, ладно?
 

MrScruff

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

Zogr

Постоялец
Регистрация
6 Июн 2008
Сообщения
96
Реакции
9
Zogr, не флуди, ладно?
Ничего себе не флуди.
Если интерфейс будет переводить сам программер - это одно решение, если интерфейс будет переводить сторонний переводчик - это совершенно другое решение, если требуется производительность - третье, если будет подключаться со временем другие языки - четвертое и ещё полно тонкостей. Везде свои нюансы, а в том виде, что вы спрашиваете - это теория сферического коня в вакууме, "сделайте мне красиво" (с).
Ну, успеха.
 

waldicom

Создатель
Регистрация
15 Мар 2009
Сообщения
41
Реакции
3
Если интерфейс будет переводить сам программер - это одно решение, если интерфейс будет переводить сторонний переводчик - это совершенно другое решение, если требуется производительность - третье, если будет подключаться со временем другие языки - четвертое и ещё полно тонкостей.
Плохо себе представляю, что на каждый из вышеописанных вариантов нужен свой вариант реализации многоязычности.
Можно примером показать реализацию на каждый из вышеописанных условий?
 

Alexitdv

Гуру форума
Регистрация
4 Янв 2008
Сообщения
161
Реакции
73
Самый простой вариант автоматически инклюдящие по структуре файлы с define константами или перемеными. Пример можно глянуть в битриксе.

Либо юзать все тот же .po. Пример в вордпрессе. Тут сложнее.
 

Kloster

Старатель
Регистрация
22 Июн 2009
Сообщения
220
Реакции
12
Вариантов масса. Тут ведь все зависит не только от интерфейса. Его можно в отдельные языковые файлы покидать и подключать соответственно, а там определить массивы переменных, вывод же делать функцией, которая по текущему выбранному языку выводит нужное значение, либо просто инключить сразу нужный файл, если язык известен.
Можно хранить все в базе. С интерфейсом будет непросто, придется создать нечто вроде словаря. Все зависит от того, насколько богат словарь на страницах. т.к. на производительность будет сильно влиять.
А что планируете делать с контентом? Его как переводить? Где хранить? откуда выводить? Вот тут много вопросов...
 

muzshura

Постоялец
Регистрация
27 Фев 2008
Сообщения
74
Реакции
3
Остановился на файлах с define объявлением констант
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху