Понимание множественного числа Gettext: как работать со сложной плюрализацией в WordPress
В английском языке множественное число устроено просто. У вас есть одно "Яблоко" (Apple) и два или более "Яблок" (Apples).
Но если вы переводите свой сайт WordPress на польский, русский или арабский, вы ступаете на лингвистическое минное поле.
Знаете ли вы, что в русском языке слово "файл" меняется в зависимости от того, сколько у вас файлов: 1, 2-4 или 5+?
- 1 файл
- 3 файла
- 5 файлов
Если ваш инструмент перевода слепо предполагает, что каждый язык работает как английский (единственное число против множественного), ваши пользователи увидят грамматически неверные предложения, из-за чего ваш бренд будет выглядеть непрофессионально.
В этом руководстве объясняется, как WordPress и Gettext обрабатывают эти сложные правила и как правильно их автоматизировать.
Техническая анатомия строки множественного числа
В стандартном файле .po строка множественного числа выглядит так:
msgid "You have %d new message"
msgid_plural "You have %d new messages"
msgstr[0] ""
msgstr[1] ""
msgid: Единственное число (используется для count = 1).msgid_plural: Множественное число (используется для count != 1).msgstr[N]: Переводы.
Для английского языка вам нужны только msgstr[0] (единственное) и msgstr[1] (множественное). Но для других языков вам могут понадобиться msgstr[2], msgstr[3] или даже msgstr[5].
Заголовок Plural-Forms
Как WordPress узнает, какой msgstr использовать? Он смотрит на заголовок вашего файла .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);"
Эта пугающая математическая формула говорит WordPress:
- Есть 3 возможные формы (
nplurals=3). - Используйте Форму 0, если число заканчивается на 1 (но не 11).
- Используйте Форму 1, если число заканчивается на 2-4 (но не 12-14).
- Используйте Форму 2 для всего остального.
Почему большинство переводчиков терпят неудачу здесь
Когда вы используете общую оболочку ИИ или базовый автоматизированный инструмент, он часто игнорирует заголовок Plural-Forms.
Он видит английский ввод (2 формы) и пытается навязать его целевому языку.
- Ошибка: Он может заполнить
msgstr[0]иmsgstr[1], но оставитьmsgstr[2]пустым. - Результат: Когда у русского пользователя 5 сообщений, WordPress ищет Форму 2. Если она пуста или отсутствует, WordPress обычно возвращается к исходной английской строке.
Внезапно ваш полностью локализованный сайт отображает "You have 5 new messages" на английском прямо посреди русского предложения. Это разрушает погружение и доверие пользователя.
Решение: ИИ с учетом контекста и поддержкой множественного числа
Правильная обработка множественного числа требует двух вещей:
- Строгое соблюдение стандартов Gettext: Инструмент должен уважать количество
npluralsв заголовке. - Лингвистический интеллект: ИИ должен знать, как спрягать слова для этих конкретных числовых диапазонов.
Это встроенная функция SimplePoTranslate.
Как мы обрабатываем сложные формы множественного числа
Мы не просто переводим текст; мы читаем математику в вашем заголовке .po.
Когда вы загружаете файл для перевода на польский (где 3 формы множественного числа):
- Анализ заголовка: Мы обнаруживаем
nplurals=3. - Инженерный промпт: Наша система дает указание ИИ с учетом контекста: "Переведи эту строку на польский. Предоставь ровно 3 формы: одну для единственного числа, одну для чисел, оканчивающихся на 2-4, и одну для остальных."
- Валидация: Мы проверяем, что вывод содержит ровно
msgstr[0],msgstr[1]иmsgstr[2]перед компиляцией файла.
Мы делаем это автоматически. Вам не нужно знать грамматические правила целевого языка. Вы загружаете файл, и мы правильно заполняем каждую требуемую форму множественного числа.
Лучше, чем ручной перевод?
Если вы не владеете целевым языком свободно, вы не сможете вручную заполнить эти формы множественного числа. Вы будете гадать. SimplePoTranslate использует передовые LLM, обученные именно этим грамматическим правилам, обеспечивая точность на уровне носителя языка.
Сделайте множественное число правильным
Не позволяйте "1 Яблоко, 5 Яблок" испортить профессиональный вид вашего сайта. Используйте инструмент, который понимает сложность глобальной грамматики.
SimplePoTranslate позволяет вам бесплатно протестировать наш движок плюрализации.
Готовы переводить без головной боли? Начните бесплатно на SimplePoTranslate.com