Інструкції

Застосунок знає 21 мову. Лістинг  одну

ПР

Павло Рубановський

July 17, 2026 · 6 хв читання

Застосунок знає 21 мову. Лістинг — одну

Ми знайшли це у власному портфелі

Cosmo Sudoku виходить із 21 файлом локалізації. Кожен рядок у застосунку перекладено. У лістингу App Store заявлена одна мова.

Ніхто такого не вирішував. Інженерну частину зробили як слід, а сторову тихо ні — і так буває майже скрізь: переклад застосунку відчувається як задача, а лістинг — як паперова робота. Насправді навпаки. Переклад застосунку служить тим, хто вже встановив. Переклад лістингу — це те, як вас узагалі знаходять.

Свій ми виправляємо. Ось як виглядає проблема.

Дві локалізації, дві різні задачі

У застосунку Flutter дає flutter_localizations і ARB-файли. Шлях протоптаний: витягнути рядки, перекласти, підключити делегат — вибір мови фреймворк бере на себе. Цікаве починається там, де таблиця перекладу нічого не показує:

  • Множина й рід — це граматика, а не підстановка рядка. В українській три форми множини, у польській три з іншими правилами. "$count items" — баг в обох.
  • Дати, числа, валюта беруться з intl, ніколи зі склеювання рядків. Захардкоджений dd/MM/yyyy ламається для половини користувачів.
  • Розширення тексту. Німецька довша за англійську приблизно на 30%, українська трохи менше. Кнопка, яка вміщується англійською, обрізається в Мюнхені. Тестуйте найдовшу локаль, а не найкоротшу.

У сторі нічого з цього не діє. Кожна локалізація — окремий лістинг зі своєю назвою, підзаголовком, полем ключових слів, описом і скриншотами. І зі своїм байтовим бюджетом. Додавання мови в застосунок не змінює нічого у видимості, поки не підтягнеться лістинг.

Чому сторову частину пропускають

Бо вона живе в іншому інструменті, належить іншій людині й не має компілятора, який поскаржиться.

Коли в лістингу бракує мови, нічого не падає. Застосунок просто не показується в пошуку на тому ринку — і це непомітно, поки не підеш шукати спеціально. Немає ні помилки, ні звіту про збій, ні тесту. Лише відсутність.

Які мови і в якому порядку

Не за інтуїцією і не «всі». Вирішують два сигнали:

1. Звідки вже йдуть встановлення. Консоль стору показує території. Ринок, який дає встановлення при англомовному лістингу, дасть більше при локалізованому — це найдешевша перемога з доступних. 2. Де конкуренція тонка. Забите англійське ключове слово може бути вільним польською чи українською. Саме на менших ринках невелика студія реально може ранжуватись.

Далі локалізуйте лістинг як слід: назва, підзаголовок, ключові слова, опис і скриншоти з перекладеними підписами. Перекладений опис над англійськими скриншотами читається як машинний і конвертує відповідно.

Не забувайте про байтовий бюджет

Кожне локалізоване поле ключових слів обмежене 100 байтами, а не символами — і кирилиця коштує два байти на символ, тож український лістинг має приблизно вдвічі менше місця, ніж англійський. Про цю пастку ми писали окремо; це найпоширеніший спосіб тихо втратити половину ключових слів у локалізованому лістингу.

Це той самий урок, що й 21 ARB-файл: робота не закінчується, коли зданий переклад. Вона закінчується, коли лістинг тією мовою настільки ж продуманий, як англійський.

Розпочати проєкт

Сподобалося?
Давайте будувати разом.

Відповідь протягом 24 годин · NDA готові · Повна власність на код