Я начинаю изучать файлы Stringsdict для iOS и нашел некоторый существующий код в проекте, который использовал следующий синтаксис:
<key>zero</key>
<string>You no message.</string>
Согласно CLDR, zero
является недопустимым множественным числом в английском языке, и мы ожидаем использования явных правил множественного числа (=0
при использовании ICU MessageFormat)
Я пытался найти, как использовать явные правила множественного числа в файлах iOS Stringsdict, и не смог найти никакого способа добиться этого. Может кто-нибудь подтвердить, поддерживается ли это или нет?
Пример решений (я не могу их протестировать, но может быть кто-то сможет?)
<key>0</key>
<string>You no message.</string>
Or
<key>=0</key>
<string>You no message.</string>
Дополнительная ссылка на явные множественные правила, часть реализации CLDR ICU MessageFormat:
https://formatjs.io/guides/message-syntax/#plural-format< /а>
=значение Используется для соответствия конкретному значению независимо от множества категорий текущей локали.
one
иother
. С моей точки зрения, файл Stringsdict — это просто пользовательская реализация Apple — ICU MessageFormat с точки зрения правил множественного числа. В MessageFormat есть способ явно перезаписать категории твердыми числами, чтобы повысить беглость (пример в вопросе). См. еще один пример здесь: formatjs.io/guides/message-syntax/#plural-format а>. Я не смог найти, поддерживает ли он также явные правила множественного числа, такие как официальный синтаксис, или он просто поддерживает правила, определенные в CLDR. - person Nicolas Bouvrette   schedule 23.04.2020zero
именно тем, что вы описываете (т. Е. Строка формата, используемая для числа 0)? Чем это отличается от This используется для соответствия определенному значению независимо от категорий множественного числа текущей локали, когда конкретное значение равно нулю? Когда вы говорите, что не можете проверить это, можете ли вы описать, какое поведение вы ожидаете, если тест будет пройден или не пройден? - person Rob Napier   schedule 23.04.2020