Налаштування плюралізації рядків у мобільному додатку

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
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Налаштування плюралізації рядків у мобільних додатках

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

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

Android. Файл res/values-uk/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: 'uk',
);

Або через ARB-файли з flutter gen-l10n — тоді плюралізація описується в app_uk.arb через ICU синтаксис: {count, plural, one{# товар} few{# товари} many{# товарів} other{# товари}}. Генератор створює типобезопасні методи.

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

Нестандартні випадки

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

Дробові числа: 1,5 години — яка форма? За правилами CLDR для української дробові числа беруть форму other. Intl.PluralRules це знає, ручна логіка через % 10 — ні.

Термін: від 4 годин (аудит + заміна хардкода) до 2 днів (якщо плюралізація в кількох мовах та кастомні компоненти). Вартість розраховується за результатами аудиту.