1. Я тут в связи с грядущим релизом 1.2 обновил перевод джанги на русский

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

  2. Хорошее дело.

    строка 1656: в переводе в примере нет расширения ('flatpages/contact_page'), в оригинале есть ('flatpages/contact_page.html')

    строка 4433: Это поле не может быть нулевым.

    Может так и написать, null? А то нулевым( == 0) поле ведь может быть.

  3. Редактору вряд ли будет понятно, что значит NULL. Лучше наверное перевести так же, как и blank: "Поле не может быть пустым". По-хорошему редактор вообще никогда эту надпись не должен видеть.

    И да, эти строки относятся к тому переводу, что уже есть, я в нём ничего не менял, т.е. переводил только вновь появившиеся строки.

  4. Там в переводе и про внешние ключи есть. Все-таки там не все для редакторов, и Вы правильно заметили, что редактор надпись про null видеть и не должен. Мне кажется, неправильно переводить 2 разные строки одинаково, это усложнит отладку. Раз редактор строку не увидит, то она для программиста, и тут уже важна точность.

    И да, эти строки относятся к тому переводу, что уже есть, я в нём ничего не менял, т.е. переводил только вновь появившиеся строки.

    Да, я так и понял (это видно по diff'у), ни коим образом это не критикую Вашу работу, а совсем даже наоборот. Если есть что уточнить (втч в старом переводе), то сейчас самое время сделать это.

  5. Поправил

    Но, видимо, у гитхаба какие-то проблемы с отображением юникода.

  6. Ivan Sagalaev

    26.02.2010

    2 ↑
    0 ↓

    По-хорошему редактор вообще никогда эту надпись не должен видеть.

    Именно поэтому я бы тоже проголосовал за терминологический перевод: "Это поле не может содержать NULL". Это строчка не для редактора, а для девелопера, и ему важно это различие.

  7. dc

    26.02.2010

    3 ↑
    0 ↓
    Опередили, только хотел тему аналогичную тему создать :-)

    msgid "Serbian Latin"
    msgstr "Сербский – Гаевица"
    Это "Сербский (латиница)".

    msgid_plural "flagged"
    msgid_plural "approved"
    msgid_plural "removed"
    Смотрите как в исходнике сообщение собирается по частям. Множественные формы здесь не будут работать. Откуда вы их вообще взяли? makemessages их для перевода в этом месте даже не генерирует.

    msgid "Enter a valid Kuwaiti Civil ID number"
    msgstr "Введите правильный идентификационный номер Кувейта"
    Это "Введите правильный номер удостоверения личности"

    msgid "lazy message"
    msgstr "ленивое сообщение"
    Более правильно "сообщение с отложенным переводом"

    msgid "This URL appears to be a broken link."
    msgstr "Похоже, что это нерабочая ссылка."
    Лучше заменить на "неработающая"

    msgid "One-to-one relationship"
    msgstr "Связь один-к-одному"
    однако:
    msgid "Many-to-many relationship"
    msgstr "Связь «многие ко многим»"


    Я бы вообще исключил длинные тире и "елочки" из перевода. В них нет особой необходимости и смотрятся они на сайте совсем инородно.


    Особо хочу отметить эти моменты:

    msgstr "Выбрано <span class=\"_acnt\">0</span> из %(total_count)s %(module_name)s"
    Будет "Выбрано 0 из 1 комментарий" и "Выбрано 0 из 5 комментарии"

    msgstr "Выбраны все %(total_count)s %(module_name)s"
    Будет "Выбраны все 5 комментарии"

    formats.py вы проигнорировали? Держите: http://paste2.org/p/691168
  8. Спасибо за исправления. Отвечу по пунктам -)

    • Serbian latin – это способ записи сербского, хорватского, боснийского и словенского на латинице, он же Gaj's Latin Alphabet, он же, в переводе на русский, гаевица. Кириллический вариант называется "вуковица". Поэтому перевод неоднозначен.

    • Относительно flagged/removed комментариев: да, в этом месте нужны разные формы для единственного и множественного числа. Иначе получается совсем не по-русски (и я думаю в других языках есть такая же проблема). В связи с этим я пару дней назад создал тикет и написал патч: http://code.djangoproject.com/ticket/12940 Вот, жду, когда же его применят =)

    • Введите правильный номер удостоверения личности" — да, правда, мой перевод неправилен. Мне кажется, надо как-то отразить то, что это кувейтского удостоверение личности... Может, "Введите правильный номер удостоверения личности Кувейта"? или "Введите правильный номер удостоверения личности гражданина Кувейта"?

    • lazy message – да, правда, ваш вариант лучше.

    • broken link – может, "Кажется, эта ссылка не работает" ?

    • 1:M и M:M – да, подловили на противоречии. Я искал, как правильно — с дефисом или с пробелами в кавычках, кто как пишет, где посмотреть правильный вариант — неясно.

    • Тире и ёлочки — это обычная типографика... У меня привычка их расставлять, вот и тут тоже расставил. Не знаю, ёлочки могут быть излишеством, а вот нормальное тире всё же жалко заменять на минус. Если сообщество скажет убрать ёлочки — уберу =)

    formats.py я не игнорировал) Мне просто показалось, что уже имеющийся вполне правильный. Спасибо за ссылку. Скажите, а почему в списке форматов '%Y-%m-%d'? По-моему он у нас не используется.

    Относительно последних двух строк я тоже думал... Тут, к сожалению, всё плохо лечится из-за отсутствия поддержки падежей в джанге и gettext-е. Можно перестроить фразы примерно таким образом: "Выбраны все комментарии: 5" и "Выбраны комментарии: 2 из 15". Наверное, так и следует поступить, но это как-то всё не по-русски выглядит и звучит.

  9. как вариант - писать в скобках:

    • Выбраны все комментарии (5 шт.)
    • Выбраны комментарии (2 из 15)

    хотя второе тоже не по-русски немного.

  10. Fulcrum

    27.02.2010

    0 ↑
    0 ↓
    Проблемы с падежами возникают при многих переводах на русский, и полностью их не избежать.

    Елочки и тире должны использоваться при оформлении русского текста, если это возможно, это правила типографики.
  11. Кстати, ещё вот такая проблема есть, тоже хотел обсудить. В django.contrib.humanize.templatetags.humanize.py есть такой код:

    def ordinal(value):
        """
        Converts an integer to its ordinal as a string. 1 is '1st', 2 is '2nd',
        3 is '3rd', etc. Works for any integer.
        """
        try:
            value = int(value)
        except (TypeError, ValueError):
            return value
        t = (_('th'), _('st'), _('nd'), _('rd'), _('th'), _('th'), _('th'), _('th'), _('th'), _('th'))
        if value % 100 in (11, 12, 13): # special case
            return u"%d%s" % (value, t[0])
        return u'%d%s' % (value, t[value % 10])
    ordinal.is_safe = True
    register.filter(ordinal)
    

    Причём вот эти th, st, nd, rd даже переведены на многие языки. Но в русском (и многих других) языках действует другая схема, и вообще окончание числительных зависит от рода. Что с этим делать?)

  12. dc

    27.02.2010

    1 ↑
    1 ↓

    он же Gaj's Latin Alphabet, он же, в переводе на русский, гаевица.

    Не знал этого, спасибо за разъяснение. Подозреваю, что этого не знает большинство людей.

    В связи с этим я пару дней назад создал тикет и написал патч

    Замечательно.

    Мне кажется, надо как-то отразить то, что это кувейтского удостоверение личности...

    "Введите правильный номер кувейтского удостоверения личности"?

    "Кажется, эта ссылка не работает"

    Все таки слово "кажется" лично я бы не стал использовать. "Похоже" не имеет такой сильной личностной окраски и больше подходит компьютерной системе.

    с дефисом или с пробелами в кавычках, кто как пишет, где посмотреть правильный вариант — неясно

    Я бы писал с "пробелами в кавычках". Написание-через-тире для русского языка очень нехарактерно.

    Тире и ёлочки — это обычная типографика...

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

    Скажите, а почему в списке форматов '%Y-%m-%d'?

    Я оставил как fallback вариант. У нас он не используется, но в Интернете очень распространен (ISO 8601 же). Плюс он соответствует текущему поведению DateField без L10n (обратная совместимость).

    Выбраны все комментарии: 5

    Голосую за "Выбраны/Выбрать все комментарии (5)".

    Выбраны комментарии (2 из 15)

    И получится: "Выбраны комментарии (0 из 15)" "Выбраны комментарий (1 из 15)"

  13. dc

    27.02.2010

    1 ↑
    1 ↓

    Что с этим делать?

    Я не думаю, что можно подогнать ее под русский язык.

    Да и надо ли это делать? Текущее поведение функции точно соответствует документации.

  14. Fulcrum

    27.02.2010

    1 ↑
    0 ↓
    Неразрывные пробелы перед тире, чтобы оно не переносилось на другую строку тоже ставить будете?
    Я не перевожу, просто даю совет. Но если бы переводил — обязательно бы ставил.
  15. Ivan Sagalaev

    27.02.2010

    1 ↑
    0 ↓

    broken link – может, "Кажется, эта ссылка не работает" ?

    Вообще, то слово "apparently" в оригинале, относится не к тому, что автор не до конца уверен в том, что ссылка не работает, а к тому, что она была реально протестирована и физически выходит, что не работает. То есть точнее было бы сказать что-то в духе "Оказывается, ссылка не работает" или "Выходит, что ссылка не работает". Но и то и другое по-русски звучит странно, поэтому я бы тут вообще отбросил это и оставил "Ссылка не работает". М?

    Елочки и тире должны использоваться при оформлении русского текста, если это возможно, это правила типографики.

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

  16. Артём Сапегин

    27.02.2010

    1 ↑
    0 ↓

    Если сообщество скажет убрать ёлочки — уберу =)

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

    Неразрывные пробелы перед тире, чтобы оно не переносилось на другую строку тоже ставить будете?

    Собственно, почему бы и нет?

  17. Артём Сапегин

    27.02.2010

    2 ↑
    1 ↓

    потому что это чисто субъективный выбор

    Отсутствие типографики — лень, а не субъективность :)

  18. ei-grad

    27.02.2010

    0 ↑
    0 ↓

    293 строка "комменарии" вместо "комментарии" 294 - "последнии" вместо "последние"

  19. ei-grad

    27.02.2010

    0 ↑
    0 ↓

    459 строка... а gender там не надо перевести?

  20. ei-grad

    27.02.2010

    0 ↑
    0 ↓

    Кстати было бы гораздо удобнее проверять перевод если бы географические названия в отдельный .po вынести. Это реально?

  21. ei-grad

    27.02.2010

    1 ↑
    0 ↓

    Исправил слова с буквой ё - http://github.com/ei-grad/django-translation-ru/tree/yo

  22. dc

    27.02.2010

    2 ↑
    2 ↓
    Зачем букву "ё" пихать во все слова? Есть сложившиеся нормы употребления (откройте любую печатную книгу). Букву "ё" ставят только когда возможны разночтения.

    В соответствии с Письмом Министерства образования и науки РФ от 03.05.2007 г. № АФ-159/03 «О решениях Межведомственной комиссии по русскому языку» предписывается обязательно писать букву «ё» в случаях, когда возможно неправильное прочтение слова, например, в именах собственных.

    http://ru.wikipedia.org/wiki/Ё_%28кириллица%29#.D0.98.D0.B7.D0.B2.D0.B5.D1.81.D1.82.D0.BD.D1.8B.D0.B5_.D0.BF.D1.80.D0.BE.D1.82.D0.B8.D0.B2.D0.BD.D0.B8.D0.BA.D0.B8

    Лично мне не очень нравится, что вы начинаете городить с переводом (ё с типографикой). На мой взгляд стоило только новые фразы перевести. Не надо чинить то, что не сломано.
  23. Ivan Sagalaev

    27.02.2010

    1 ↑
    1 ↓

    Лично мне не очень нравится, что вы начинаете городить с переводом (ё с типографикой). На мой взгляд стоило только новые фразы перевести. Не надо чинить то, что не сломано.

    Вот +1. Ребят, у всех в рунете слишком религиозное отношение к "ё" и типографике. Что ни выбирай, будет много недовольных. Поэтому единожды принятый стиль стоит оставить, как есть. В джанговском переводе не было ни "ё", ни ёлочек.

  24. Артём Сапегин

    01.03.2010

    0 ↑
    0 ↓

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

  25. Спасибо всем, кто помогал в этом топике с переводом. Надеюсь, я нигде не налажал и учёл все пожелания. http://code.djangoproject.com/changeset/13237

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.