Множественное число easy_localization пакета Flutter не работает должным образом

Использование пакета easy_localization для перевода моих приложений. В качестве примера вот файл переводов json:

{"test": {
"zero": "zero",
"one": "one",
"two": "two",
"few": "few",
"many": "many",
"other": "other"},}

Если я затем просто распечатаю их на консоли следующим образом:

print(plural("test", 0));
print(plural("test", 1));
print(plural("test", 2));
print(plural("test", 3));
print(plural("test", 4));

он вернется

zero
one
two
other
other

Так что это работает для «ноля», «один», «два», как и ожидалось. Но затем пропускает «несколько» и «много» и по умолчанию «другое».

Что такое «мало» и «много»? Должен ли я воспринимать «другие» как множественное число и игнорировать «немногие» и «многие»?

Ошибок нет, поэтому я не уверен, что это была предполагаемая функциональность. Мне кажется неправильным.

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете увидеть правила множественного числа в их исходном коде.

Кажется, что большинство языков имеют очень простые правила множественного числа. Как английский, где в основном нет ни того, ни другого: у вас может быть «нет денег», «доллар» или «Х долларов». В английском языке нет специального языка для других сумм.

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

Ах, я думаю, что теперь я понимаю это немного лучше, после просмотра исходного кода. Совсем запутался, почему так много одинаковых вещей. Глядя на арабскую функцию (PluralCase _ar_rule()), например, они могут использоваться для каждого типа (ноль, один, два, несколько, много). В то время как английская функция буквально имеет только «один», по умолчанию используется «другой», который, я полагаю, вы делаете во множественном числе. Я не понимал, что в зависимости от текущей локали функции будут меняться для множественного числа. Спасибо, что направили меня к этому исходному коду :)

Michael Johnston 17.04.2023 15:34

Я думаю, что, возможно, английская функция должна иметь «один» и «многие», а затем по умолчанию «другое», но это мелочь, так как я просто буду использовать «другое» в качестве переменной формы множественного числа, по крайней мере, для английского языка.

Michael Johnston 17.04.2023 15:35

Другие вопросы по теме