Застосунок знає 21 мову. Лістинг — одну
Павло Рубановський
July 17, 2026 · 6 хв читання
Ми знайшли це у власному портфелі
Cosmo Sudoku виходить із 21 файлом локалізації. Кожен рядок у застосунку перекладено. У лістингу App Store заявлена одна мова.
Ніхто такого не вирішував. Інженерну частину зробили як слід, а сторову тихо ні — і так буває майже скрізь: переклад застосунку відчувається як задача, а лістинг — як паперова робота. Насправді навпаки. Переклад застосунку служить тим, хто вже встановив. Переклад лістингу — це те, як вас узагалі знаходять.
Свій ми виправляємо. Ось як виглядає проблема.
Дві локалізації, дві різні задачі
У застосунку Flutter дає flutter_localizations і ARB-файли. Шлях протоптаний: витягнути рядки, перекласти, підключити делегат — вибір мови фреймворк бере на себе. Цікаве починається там, де таблиця перекладу нічого не показує:
- Множина й рід — це граматика, а не підстановка рядка. В українській три форми множини, у польській три з іншими правилами.
"$count items"— баг в обох. - Дати, числа, валюта беруться з
intl, ніколи зі склеювання рядків. Захардкодженийdd/MM/yyyyламається для половини користувачів. - Розширення тексту. Німецька довша за англійську приблизно на 30%, українська трохи менше. Кнопка, яка вміщується англійською, обрізається в Мюнхені. Тестуйте найдовшу локаль, а не найкоротшу.
У сторі нічого з цього не діє. Кожна локалізація — окремий лістинг зі своєю назвою, підзаголовком, полем ключових слів, описом і скриншотами. І зі своїм байтовим бюджетом. Додавання мови в застосунок не змінює нічого у видимості, поки не підтягнеться лістинг.
Чому сторову частину пропускають
Бо вона живе в іншому інструменті, належить іншій людині й не має компілятора, який поскаржиться.
Коли в лістингу бракує мови, нічого не падає. Застосунок просто не показується в пошуку на тому ринку — і це непомітно, поки не підеш шукати спеціально. Немає ні помилки, ні звіту про збій, ні тесту. Лише відсутність.
Які мови і в якому порядку
Не за інтуїцією і не «всі». Вирішують два сигнали:
1. Звідки вже йдуть встановлення. Консоль стору показує території. Ринок, який дає встановлення при англомовному лістингу, дасть більше при локалізованому — це найдешевша перемога з доступних. 2. Де конкуренція тонка. Забите англійське ключове слово може бути вільним польською чи українською. Саме на менших ринках невелика студія реально може ранжуватись.
Далі локалізуйте лістинг як слід: назва, підзаголовок, ключові слова, опис і скриншоти з перекладеними підписами. Перекладений опис над англійськими скриншотами читається як машинний і конвертує відповідно.
Не забувайте про байтовий бюджет
Кожне локалізоване поле ключових слів обмежене 100 байтами, а не символами — і кирилиця коштує два байти на символ, тож український лістинг має приблизно вдвічі менше місця, ніж англійський. Про цю пастку ми писали окремо; це найпоширеніший спосіб тихо втратити половину ключових слів у локалізованому лістингу.
Це той самий урок, що й 21 ARB-файл: робота не закінчується, коли зданий переклад. Вона закінчується, коли лістинг тією мовою настільки ж продуманий, як англійський.