Intereting Posts

Множественное определение игнорируется для нулевого количества

Я использую множественные числа для компиляции строки количества для приложения для Android. Я точно следую тому, что можно найти в учебниках:

res.getQuantityString( R.plurals.number_of_comments, commentsCount, commentsCount); 

Вот определение множественного числа:

 <?xml version="1.0" encoding="utf-8"?> <resources> <plurals name="number_of_comments"> <item quantity="zero">No comments</item> <item quantity="one">One comment</item> <item quantity="other">%d comments</item> </plurals> </resources> 

Интересно, что строка вывода нечетна для того, что я определил:

 commentsCount = 0 => "0 comments" commentsCount = 1 => "One comment" commentsCount = 2 => "2 comments" 

Я предполагаю, что это связано с тем, что в документах When the language requires special treatment of the number 0 (as in Arabic). Для zero количества. Есть ли способ заставить мое определение?

Solutions Collecting From Web of "Множественное определение игнорируется для нулевого количества"

Согласно документации :

Выбор используемой строки производится исключительно на основе грамматической необходимости. На английском языке строка для нуля будет проигнорирована, даже если количество равно 0, поскольку 0 не является грамматически отличным от 2 или любым другим числом, кроме 1 («нулевые книги», «одна книга», «две книги» и скоро).

Если вы все еще хотите использовать произвольную строку для нуля, вы можете загрузить другую строку, когда количество равно нулю:

 if (commentsCount == 0) str = res.getString(R.string.number_of_comments_zero); else str = res.getQuantityString(R.plurals.number_of_comments, commentsCount, commentsCount); 

Плюсы – это форма Юникода. Здесь все значение множественного числа. На английском языке множественное число для нуля равно 2, 3,4, поэтому вы должны, если еще это значение использовать другие строки для этого.