Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Для профи > Несколько языков |
Автор: CyClon 24.2.2008, 14:05 | ||
Собственно, интересует описание вариантов организации мультиязычности на сайте (т.е. системные сообщения будут выводиться на выбранноя языке). На данный момент в голове крутиться всего лишь один разумный вариант: инклюдим файл, например /languages/$language.php с подобным содержанием:
И далее просто используем в коде константы. Но что-то мне подсказывает, что есть более разумные варианты организации мультиязычности ![]() ![]() |
Автор: gta4kv 24.2.2008, 14:12 |
Имхо, тоже самое, но только array()'ем надо делать. |
Автор: CyClon 24.2.2008, 14:23 |
Этот вариант не рассматриваю, ибо получиться тормознутее даже чем у меня в первом посте ![]() Добавлено через 1 минуту и 43 секунды Да и смысл от Array нулевой, что писать LANGUAGE_WELCOME, что $language['welcome'] - одно и тоже, только теоретичеси массив должен больше ресурсов жрать. Плюс значения массива можно изменять (что нам абсолютно не нужно). |
Автор: WolfON 24.2.2008, 14:38 |
Эффективно для этого использовать xml, в техногрете было много статей на эту тему А константы для этого дела - бред сумасшедшего |
Автор: gta4kv 24.2.2008, 14:47 |
CyClon, предложил array, т.к уже выше сказано - "А константы для этого дела - бред сумасшедшего". XML тоже интересная идея. Но помойму не очень удобная. |
Автор: skyboy 24.2.2008, 15:25 |
http://ua2.php.net/gettext |
Автор: gta4kv 24.2.2008, 15:32 |
skyboy, ваще не в тему |
Автор: Daevaorn 24.2.2008, 15:48 |
похоже вы не в теме сами ![]() |
Автор: CyClon 24.2.2008, 15:54 |
gta4kv, Ну тогда приведи хотя бы пару фактов в пользу массивов. Я могу привести как минимум один против, причем весомый - константы видны везде, массивы придется объявлять глобальными для видимости в функциях. Вот вы пишите, "бред сумасшедшего". А обосновать? Чем тот же gettext/xml будет лучше такого варианта? |
Автор: awers 24.2.2008, 16:54 |
Функции gettext реализуют NLS (Native Language Support) API, который может использоваться для интернационализации ваших PHP-приложений что не так? |
Автор: CyClon 24.2.2008, 17:07 |
Другими словами - дает возможность юзать несколько языков на сайте. Теперь вчитайся в мой пост. Я просил аргументы в пользу gettext/xml и против использования констант. |
Автор: awers 24.2.2008, 20:55 | ||
Ну мне кажется что приемущество констант не отнять (видимость). Но ИМХО константы это муветон. Представь как будут смотреться 2-3 тысячи констант. Не правильно это. Ассоциативные массивы - в топку сразу. Они намного больше памяти кушают. XML - тут надо искать подход. Если незнать как на данном этапе устроин движок - каких либо плюсов выделить нельзя. |
Автор: solenko 25.2.2008, 02:11 | ||
А xml вы в куда парсить будете? Уж не в асоциативный ли массив ) XML/ini/ваш_вариант хорош только тем, что с ним может работать не программист. Ну и еще один довод есть -- это модно ) А использовал кто-то gettext? Я видел олько один продукт с его использованием -- gallery2. Если использовали, может поделитесь опытом, расскажите о подводных камнях? А то вроде бы и самый логичный способ локализации и, в то же время, мало кто пользует. |
Автор: awers 25.2.2008, 02:16 |
не . геттекст я в живую не видел.. по поводу XML - нефакт что в массивы. надо смотреть что сейчас наработанно, что-бы что-то советовать или решать |
Автор: CyClon 25.2.2008, 09:58 | ||||
Ну, представь xml файл в 3 тысячи строк, что, намного проще чтоли будет? ![]() Опять же с того же XML данные будут гнаться в константы, которые уже будут использоваться в коде. Так что думаю пока на своем варианте остановлюсь, потом если нужно, просто прикручу парсер и особо ничего менять не придется. На счет gettext - недостаточно инфы для его использования, да и пользы пока не вижу ![]()
Ну, представь xml файл в 3 тысячи строк, что, намного проще чтоли будет? ![]() Опять же с того же XML данные будут гнаться в константы, которые уже будут использоваться в коде. Так что думаю пока на своем варианте остановлюсь, потом если нужно, просто прикручу парсер и особо ничего менять не придется. На счет gettext - недостаточно инфы для его использования, да и пользы пока не вижу ![]() |
Автор: lumega 25.2.2008, 11:01 |
я вижу очень большое преимущество в геттексте. Это ж встроенный переводчик. Не нужно задавать тонну непонятных переменных или констант. Пишем на родном языке, а потом достаточно просто обратиться к переводчику (нужной языковой таблице). Думаю мысль понятна. ![]() |
Автор: CyClon 25.2.2008, 11:19 | ||
Поятно ![]() ![]() |
Автор: CyClon 25.2.2008, 15:43 |
Кто использует gettext, плз приведите пример .po файла. ЗЫ: На самом деле очень удобная штука оказывается. Просто хочу на всякий случай реализовать свой парсер файлов, на случай если на сервере не будет gettext. |
Автор: CyClon 25.2.2008, 22:09 | ||
Можно парсить XML файл, загонять все данные в массив и так использовать. Плюс данного подхода - полная совместимость с gettext (использовать только при его отсутствии). |
Автор: Daevaorn 25.2.2008, 22:11 |
gettext позаоляет делать умный pluralization... |