Обсуждение:Gettext

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

.mo файлики[править код]

А для RapidSVN в папке локализации рядом с .po файлом лежит одноимённый бинарный .mo файл. И исправления в .po на интерфейсе не отражаются. Это типичная практика? Есть конвертер? В статье ни слова... :( --Nashev 15:54, 8 июня 2011 (UTC)[ответить]

Не резоннее ли будет иначе нумеровать локализованные русские формы множественного числе?[править код]

сейчас в статье предлагается писать так:

msgstr[0] "%d день назад"
msgstr[1] "%d дня назад"
msgstr[2] "%d дней назад"

а можно так, и можно тогда номера словоформ будут подсказывать саму форму (0 дней, 1 день и 2 дня):

msgstr[0] "%d дней назад"
msgstr[1] "%d день назад"
msgstr[2] "%d дня назад"

чтоб так работало, достаточно поменять номера в предлагаемой строке-условии:

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

Только вот вопрос: почему в статье иначе, и нет ли в этой затее ложной помощи переводу, т.е. каких-нибудь подстав-исключений? --Nashev 17:49, 5 июля 2011 (UTC)[ответить]

В статье все приведено верно. 0 дней - это третья словоформа, соответствующая значению "много". В русском языке три словоформы определения числа - "один" (число заканчивается на 1, кроме 11), "несколько" (число заканчивается на 2, 3, 4, кроме 12, 13, 14), "много" (все остальное). Это и определяет строка nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);. А за самовольную смену nplurals обычно бьют по рукам, как программисты, так и лингвисты. --winterheart 09:35, 27 января 2020 (UTC)[ответить]