#apache #htaccess #php
Стало интересно как можно реализовать многоязычность Интернет страницы/сайта, "погуглил" некоторое время, но на толковое разъяснение что да как не наткнулся... Не могли бы Вы товарищи ткнуть носом в строну куда надо копать?
Ответы
Примерно как то так, способов реализаций очень много, в большинстве случаях можно обойтись и без базы данных и использовать файлы. Весь смысл создания сайта на разных языках - это знать нужный для посетителя язык и выводить вариант страницы на этом языке. А если нужно перевести надписи на кнопках, заголовки и т.д., то можно создать файл с массивами, и подключать его в начале страницы функцией require, именно ей и именно вначале, т.к. она не замедляет работу программы, как это делает include();. пример : '; ?> Сразу извиняюсь за возможные ошибки, т.к. пишу без возможности проверить.Ответ 1
Нужно сделать файл, содержащий объявление констант, в которых будут строки для вывода в разных местах сайта. Например (приводил уже где то)... Главный файл: Файл русского языка: Файл английского языка: Файл шаблона:=LANG_TITLE?> Просто нужно поместить в $language имя файла языка, для удобства без расширения. Следует еще предусмотреть вывод страницы на дефолтном языке, если в $language ничего не присвоено. Вот, такова идея. Если что не ясно, пишите! Удачного дня :)
Ответ 2
Процесс создания мультиязычности обычно делят на две части: интернационализацию и локализацию. Оба этих процесса хорошо описаны в wikipedia. Наиболее популярным и удобным инструментом для интернационализации, как сайтов, так и прикладных программ является gettext. Для PHP так же есть соответствующее расширение. Основная идея этой библиотеки заключается в том, что для обозначения переводимой используется сама оригинальная строка, а не какие-либо специальные идентификаторы. При этом, если перевод данной строки отсутствует, то просто выводится оригинальная строка. Например, тот же шаблон ответа выше будет выглядеть так:= _('Main page') ?> Более подробно про gettext и его возможностях можно прочитать в той-же wikipedia. PS В документации к gettext говорится, что оригинальные строки должны быть на английском, однако, в последних версиях gettext можно использовать и русские строки, при условии повсеместного использования utf-8. В этом случае, возможно, будет некоторая путаница в английской локализации, но это проблема легко решается.
Ответ 3
Хотелось бы дополнить, если использовать базу данных, то в списке страниц сайта, можно добавить вариант текста на нескольких языках пример таблицы : id - идентификатор страницы в базе name - имя на английском как псевдоним t_ru - название на русском t_en - название на английском c_ru - контент на русском c_en - контент на английском и при необходимости грузить только нужную колонку, язык давать на выбор изначально, а сохранять его параметры в cookie, например :
Комментариев нет:
Отправить комментарий