Эта тема на forum.dklab.ru


Gapter: Создание многоязычных версий приоложений
Просёрчил весь форум - не нашёл... и не только

Интересный вопрос появился. Надо, чтобы приложение (скрипт) было многоязычным, т.е. поддерживало множество языков. Работать всё должно параллельно-синхронно. Т.е., если юзер находится на какой-то странице сайта и меняет язык, то нужно, чтобы именно эта страница загружалась на выбранном языеке, а не главная страница выбранной языковой версии.

Идея была такая:

К каждому документу (странице) присваивать ID документа (вручную - т.е. не autoincrement) и языковую версию. При смене языковой версии будет загружаться документ с текущим ID и выбранной языковой версией.

Это чисто интуитивная догадка.

А есть ли более логичные варианты создания многоязыковых версий скриптов? :)
7.3.:
А есть ли более логичные варианты создания многоязыковых версий скриптов?
Посмотрите как это сделано например в phpBB. Помойму там и объяснять нечего.
Gapter:
А есть ли более логичные варианты создания многоязыковых версий скриптов?
Посмотрите как это сделано например в phpBB. Помойму там и объяснять нечего.

Это не то! Там просто есть различные файлы конфигурации с отдельной языковой версией. Мне же подобная штука нужна для скритпа вроде CMS! Чтобы администратор и модератор могли бы создавать документы на разных языках.
7.3.:
страница загружалась на выбранном языеке
Я так понимаю - язык интерфейса?
Gapter:
страница загружалась на выбранном языке
Я так понимаю - язык интерфейса?

Нет! :)

Я, видно, немоного не верно написал! Язык интерфейса можно и в конфиг файлах держать! Ассоциировать с переменными - так в phpBB и сделано!

А мне бы хотелось узнать вот про что:

1) Заходим на сайт
2) Смотрим какой-нибудь документ
3) Возникает желание прочесть/посмотреть эту страницу на, к примеру, английском
4) Нажимаем на ссылку вверху страницы "English version"
5) Загружается этот же самый документ на англиском (естесственно, если такой имеется)

Как такое реализовать?
Дмитрий Котеров:
Ну, например, храните рядом два файла: abc.html.en и abc.html.ru, и показывайте тот, который нужен. Apache сам умеет выбирать нужный в зависимости от значения какой-то куки.

http://httpd.apache.org/docs/mod/mod_negotiation.html
http://httpd.apache.org/docs/content-negotiation.html

Правда, про куки я не помню точно, как это делается, но точно слышал, что можно.
Gapter:
Ну, например, храните рядом два файла: abc.html.en и abc.html.ru, и показывайте тот, который нужен.

Ага! Как я понимаю, моя интуитивная идея сходна! Одно "но" - делаю всё это "счастие" на MySQL! Потому и интересуюсь как лучше...
Дмитрий Котеров:
Т.е. варианты нескольких файлов Вам не подходят?
Gapter:
Т.е. варианты нескольких файлов Вам не подходят?

К сожалению, на пратике - нет! Интересно, как же это хитро реализовать в БД! :)
Дмитрий Котеров:
Ну, тогда храните в БД для каждой записи еще один столбец — язык. И выбирайте по нему. Такое впечатление, что Вы не собираетесь это все реализовывать, а просто теоритезируете.
Анжелика Моисеенкова:
У меня есть папка lang, где лежат файлы типа: en.ini, ru.ini, es.ini и т.д. А скрипт вызывается так: file.php?lang=ru.
В файле храниться массив:

[errors]
v1 = "";
v2 = "";
v3 = "";
[normals]
v1 = "";
v2 = "";
v3 = "";
[messages]
v1 = "";
v2 = "";
v3 = "";
[text]
v1 = "";
v2 = "";
v3 = "";

Затем, в зависимости от выбранного языка, parse_ini_file("язык.ini", true);
Или же не ini, а php. Тогда без массива, просто переменные. Но не parse, а просто include (тут лучше require).
Gapter:
to Profile!:

Спасибо конечно! Но об этом уже говорилось выше и это не то, что я имел в виду! :) Мы говорили о различных языковых версия одного и того же документа, а не интерфейса! :)
Дмитрий Эсс:
Вопрос решен, тему можно закрыть.
Не ошиблись кнопкой? Вроде ещё ничего не решилось. А если сами нашли ответ, то будьте добры - поделитесь им с нами.
Gapter:
Вопрос решен, тему можно закрыть.
Не ошиблись кнопкой? Вроде ещё ничего не решилось. А если сами нашли ответ, то будьте добры - поделитесь им с нами.

Ошибся! Поправился! :)

Эта тема на forum.dklab.ru