ФорумПрограммированиеPHP для идиотов → i18n

i18n

  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 8 декабря 2009 г. 8:24

    Какие трудности могут возникнуть при интернационализации приложения и как их разруливать?

    Например: как быть с переводом всякого такого: 1 сообщение, 2 сообщения, 5 сообщений?
    Спустя 295 сек.
    plural forms вроде называется. Есть какой-то cldr, вот я надеюсь, что мне кто-то о нем расскажет.
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 8 декабря 2009 г. 9:43, спустя 1 час 19 минут 9 секунд

    php.net/gettext
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 8 декабря 2009 г. 10:20, спустя 36 минут 39 секунд

    *обиженно* бляяа. Так и знал, что мне эту ссылку подсунут.
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 8 декабря 2009 г. 10:31, спустя 11 минут 42 секунды


    *обиженно* бляяа. Так и знал, что мне эту ссылку подсунут.
    а нах тогда спрашивал?

    или там нет чего то того, что тебе надо?
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 8 декабря 2009 г. 11:04, спустя 32 минуты 59 секунд

    ну я как бы сам не знаю чего хочу. Пока ни о какой многоязычности и речи нет, это я на будущее. Я не знаю чего, с геттекстом ни разу не работал, даже доку не читал. Просто он мне не понравился и все (от такой я самодур).

    У меня будет какой-то свой класс, отвечающий за переводы, и у него будут драйвера: геттекст, база, похапэ-массивы, ини-файлы. Вот просто думаю как быть с plural forms? Gettext решает эту проблему что ли? Если да, то зачем тогда Zend_Translate?
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 8 декабря 2009 г. 11:07, спустя 2 минуты 24 секунды

    Абырвалг, потому что зенд хуйню всякую в себя собирает.

    один мудрец написал

    "Prototype.js для тех кто не знает JavaScript, для тех кто не знает JavaScript" .. тут также)
    Спустя 67 сек.
    имхо делать 20 вызовов функций и классов для вывода мультиязычной строки - ебань еще та, ну ее нахуй. геттекст тебе дает прекрасную функцию - _(), так и юзай ее :)

    к тому же можно парсить его строки в автоматическом режиме %)

    тм много интересного
    Сапожник без сапог
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 8 декабря 2009 г. 11:14, спустя 6 минут 43 секунды

    "Prototype.js для тех кто не знает JavaScript, для тех кто не знает JavaScript" .. тут также)
    немного не так..

    Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript
    adw/0
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 8 декабря 2009 г. 11:17, спустя 3 минуты 26 секунд

    У меня на работе по такому принципу сделано как я описал, только без ини-файлов. Да и все равно, когда через админку переводы рекламируются, они в БД будут складироваться. А у gettext'а вроде какой-то свой особый формат переводов-бинарные файлы.

    Ну я не знаю, в Zend_* есть много интересных вещей, они довольно грамотно построены. Хоть я ни разу им и не пользовался, чтение документации по нему доставляет.

    зы: прототайп-хуйня, тут не поспоришь. То ли дело jQuery
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 8 декабря 2009 г. 11:21, спустя 4 минуты 25 секунд


    "Prototype.js для тех кто не знает JavaScript, для тех кто не знает JavaScript" .. тут также)
    немного не так..

    Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript

    ах да, прошу прощения)
    Спустя 82 сек.
    Абырвалг, на зенде игра "мафия" вконтакте, так там часто видно 502 :D
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 8 декабря 2009 г. 11:28, спустя 6 минут 53 секунды

    ну блин, покажите мне как нормально делается такой перевод на чистом gettext'е, что б я там не сильно зачитывался документацией по нему))

    1 dog->1 собака
    2 dogs->2 собаки
    10 gogs->10 собак

    dear %username% -> дорогой %юзернейм% или дорогая %юзернейм% (если юзернейм - девушка). Ясное дело, что наш транслятор не в состоянии определять пол по нику, как бы это сделать тогда?
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 8 декабря 2009 г. 11:49, спустя 20 минут 41 секунду

    http://ru2.php.net/manual/en/function.ngettext.php

    Example for russian lang:
    file.po:

    "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"

    msgid "File"
    msgid_plural "Files"
    msgstr[0] "Файл"
    msgstr[1] "Файла"
    msgstr[2] "Файлов"


    file.php

    echo ngettext("File", "Files", $number);


    ну вот блядь вечно вы как дети)) дали ссылку, почитайте :)
    Спустя 27 сек.
    пол конечно не определит, даже человек не всегда может, "дорогая/ой Саша"
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 8 декабря 2009 г. 11:53, спустя 3 минуты 55 секунд

    спасибо, я совсем разленился че-то. Сказал же, что не люблю gettext. А пол - так у пользователя будет графа в профиле: мадам она или жентельмен.
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 8 декабря 2009 г. 11:55, спустя 2 минуты 25 секунд


    спасибо, я совсем разленился че-то. Сказал же, что не люблю gettext. А пол - так у пользователя будет графа в профиле: мадам она или жентельмен.
    ну вот и классно что графа :))

    а любить надо встроенные средства, и не писать свои велосипеды трехколесные типа Зенд_Хуйня
    Сапожник без сапог
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 9 декабря 2009 г. 1:29, спустя 13 часов 33 минуты 53 секунды

    Мне что-то тоже геттекст не понравился по-первой встрече.
    Сейчас вот смотрю на доки, становится более ясно про него. Но все равно нет такого, чтоб аж тянуло к нему.

    Думаю, что иногда таки нужно заюзать свой велосипедик… хотя бы для гордости за самого себя :)

    п.с. По вопросу различия полов, кол-ва и т.д.: если вы пишете русский проект, но с возможностью отображения на других ленгах, то почему бы не сделать именно русский "стартовым", а инглиш и прочии производными языками? Хотя и тут есть свои проблемы, но "в семье не без уродов" :)
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 9 декабря 2009 г. 4:39, спустя 3 часа 9 минут 36 секунд

    обычно primary language является инглиш

Пожалуйста, авторизуйтесь, чтобы написать комментарий!