1. Python / Говнокод #8626

    −85

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    TEMPLATES = ( # {'s': 0, 'm': 1, 'l': 2, 'xl': 3, 'xxl': 4}
                    ((1, 0), _("1-z")),      ((1, 1), _("1-z-a")),
                    ((1, 2), _("1-z-a-p1")), ((2, 0), _("2-z")),
                    ((2, 1), _("2-z-a")),    ((2, 2), _("2-z-a-p2")),
                    ((2, 3), _("2-z-a-p3")), ((3, 0), _("3-z")),
                    ((3, 1), _("3-z-a")),    ((3, 2), _("3-z-a-p1")),
                    ((4, 0), _("4-z")),      ((4, 1), _("4-z-a")),
                    ((4, 2), _("4-z-a-p3")), ((4, 3), _("4-z-p3")),
                    ((4, 4), _("4-p3")),)

    это константа из описания класса формы, если кто-то еще не догадался

    Запостил: nelson, 23 Ноября 2011

    Комментарии (23) RSS

    • а што должни были?
      Ответить
    • Это какой layout manager и в какой библиотеке gui?
      Ответить
    • _(param) - что делает этот пафос?
      Ответить
      • Видимо функция (хотя за такое название нужно что-нибудь отрывать), например, возвращает полный uri.
        Ответить
        • Скорее всего — псевдоним gettext.gettext. Отрывать не нужно, это известный приём.
          Ответить
          • не понятно, зачем название класса переводить, но в целом, да - обычно используется _, _t или t, но просто подчерк - гораздо чаще.
            Ответить
            • Какого класса?
              Ответить
              • я понял, это школокод, это объясняет классы:
                > 1-z
                первый зэ
                > 4-z
                четвёртый зэ
                >4-z-p3
                четвёртый зэ третья смена
                Ответить
          • > Отрывать не нужно,
            Если там действительно gettext. Но смущает приведенное использование в классе: как оно поможет с локализацией?
            И переводчикам таки предлагается знать что такое "2-z-a-p3"?
            Ответить
            • Предполагаю, что это данные для какого-то grid-подобного layout manager-а. Координаты ячейки и строка, в которой зашифрованы выравнивания, привязка, отступы и т.п. А это имеет смысл локализировать (по крайней мере для арабов и евреев будет иначе).

              Может быть, конечно, я ошибаюсь, и это бессмысленные наборы символов или в _() заключены по ошибке.
              Ответить
              • > А это имеет смысл локализировать (по крайней мере для арабов и евреев будет иначе).

                Если так копнуть, то лично я ожидал бы увидеть дополнительный слой абстракции (отдельный модуль, например), а не строки напрямую... И нормальный коммент (чтоб передать в шаблон локализации и было яснее как трактовать).
                Ответить
                • В Питоне, конечно, кодировать это строкой нет надобности (есть именованные параметры и компактная инициализация списков/словарей). Потому я и спросил детали.
                  Ответить
          • Прикол в том, что аргументом gettext является вариант текста на английском языке (в отличие от java, где для локализации используются ключи). А аргумент _ на английский текст мало похож, что навевает мысли.
            Ответить
            • Аргументом gettext может являться текст на любом языке.
              Ответить
              • Честно говоря, первый раз слышу. Читая мануал по gettext, всегда считал, что аргументом gettext должен быть именно английский вариант. Да и использовать в сишных исходниках "текст на любом языке" - далеко не самая лучшая идея (да, я изучал gettext в контексте C, а в Python используется лишь обёртка).
                Wiki:
                > Основным отличием от других подобных инструментов является то, что в gettext для обозначения переводимых строк в тексте программы используются их английские оригиналы, а не специальные идентификаторы.

                Не поделитесь пруфом?
                Ответить
                • Хм, возможно, я поторопился сделать утверждение, хотя нужно было сделать предположение. Я руководствовался документацией gettext, которая только рекомендует, но нигде не запрещает использование не-US-ASCII:

                  http://www.gnu.org/software/gettext/manual/gettext.html#Charset-conversion
                  > Also, when gettext does not find a translation for msgid, it returns msgid unchanged – independently of the current output character set. It is therefore recommended that all msgids be US-ASCII strings

                  А вообще я самостоятельно не пытался использовать русский, например, но тем не менее всегда считал, что gettext может работать с чем угодно.
                  Ответить
              • А вот попробовал вогнать не ascii - не завелось. Плюсую к пруфу.
                Ответить
                • Ответил выше. Сейчас нет возможности проверить, но обязательно попробую, наверное, вы правы, раз не завелось.
                  Ответить
            • Не обязательно текст на человеческом языке. Главное, что языкозависимая строка. И это может иметь смысл (см. выше).
              Ответить
              • > Не обязательно текст на человеческом языке. Главное, что языкозависимая строка.

                Если включить pedantic-mode, то /0 =). Скорее, ограничение на набор символов (а точнее, вроде ascii).
                Ответить
                • ?
                  Ответить
                  • Просто придираюсь)... Не суть: имелось ввиду, что латиница не жестко связана с языком.
                    Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий