Настройка плюрализации строк в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Настройка плюрализации строк в мобильном приложении
Простая
от 4 часов до 2 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Настройка плюрализации строк в мобильном приложении

«1 товар», «2 товара», «5 товаров» — в английском два варианта: one/other. В русском, украинском и польском шесть: zero/one/two/few/many/other. Жёстко написанный код if (count == 1) "товар" else "товаров" — гарантированный баг при локализации на любой язык с нетривиальной плюрализацией.

Правильный механизм на каждой платформе

Android. Файл res/values-ru/plurals.xml:

<plurals name="items_count">
    <item quantity="one">%d товар</item>
    <item quantity="few">%d товара</item>
    <item quantity="many">%d товаров</item>
    <item quantity="other">%d товара</item>
</plurals>

Вызов: resources.getQuantityString(R.plurals.items_count, count, count). Первый count — для выбора формы, второй count — подстановка в %d. Частая ошибка: передать только один аргумент — тогда число в строку не подставляется.

iOS. Localizable.stringsdict вместо Localizable.strings для плюральных форм. Структура — plist с ключом, вложенным NSStringLocalizedFormatKey и правилами по CLDR. String(format: NSLocalizedString("items_count", comment: ""), count) — автоматически выберет нужную форму. Для Swift-пакетов с String Catalog (Xcode 15+) — визуальный редактор plural forms прямо в IDE.

Flutter. Пакет intl, Intl.plural():

Intl.plural(
  count,
  zero: 'нет товаров',
  one: '$count товар',
  few: '$count товара',
  many: '$count товаров',
  other: '$count товара',
  locale: 'ru',
);

Или через ARB-файлы с flutter gen-l10n — тогда плюрализация описывается в app_ru.arb через ICU syntax: {count, plural, one{# товар} few{# товара} many{# товаров} other{# товара}}. Генератор создаёт типобезопасные методы.

React Native. i18next + i18next-icu плагин для ICU-синтаксиса. Или react-i18next с Intl.PluralRules нативно — доступно на RN 0.70+. Вручную через new Intl.PluralRules('ru').select(count) — возвращает строку 'one'/'few'/'many'/'other', по которой выбираем форму из объекта переводов.

Нестандартные случаи

Арабский — шесть форм включая dual (2 товара — отдельная форма). Китайский и японский — одна форма, но счётные суффиксы зависят от существительного (三本の本 — три книги). Это уже не плюрализация, а classifier-система, которую Intl.plural не покрывает.

Дробные числа: 1.5 часа — какая форма? По правилам CLDR для русского дробные числа берут форму other. Intl.PluralRules это знает, ручная логика через % 10 — нет.

Срок: от 4 часов (аудит + замена хардкода) до 2 дней (если плюрализация в нескольких языках и кастомные компоненты). Стоимость рассчитывается по результатам аудита.