TGViewer
Юрий Петров | ai engineering Юрий Петров | ai engineering @mobile_developing · 1.57K subscribers
Post #938 771

Forwarded from Flutter Friendly

ARB-формат во всей красе

Привет, это Роза, Flutter Dev Friflex. В последнее время я много работаю с локализацией и заметила интересную вещь: ARB-файл часто недооценен. Сейчас расскажу, что это и как работает.

Что это
ARB (Application Resource Bundle) — это, по сути, файл JSON, улучшенный для локализации, с расширением .arb. Проще говоря, там хранятся переводы текста, которые вы видите в приложении. Помимо ключей и строк, ARB поддерживает:
🔴описания контекста
🔴примеры использования
🔴типы данных
🔴форматирование

Например:
{
"@@locale": "ru",
"topicTitle": "Arb-формат во всей красе",
"@topicTitle": {
"description": "Заголовок для статьи про Arb-формат"
}
}


Здесь ключ topicTitle хранит строку, а под @topicTitle — метаданные. При помощи метадаты вы можете указывать для ключей локализации:
🔸context: пояснения для переводчиков и разработчиков
🔸type: указание типа строки или ее назначения
🔸comment: подсказки к строкам

Например:
{
"welcome": "Добро пожаловать, {name}!",
"@welcome": {
"description": "Сообщение для приветствия",
"context": "Для нового пользователя",
"type": "Information",
"comment": "Имя {name} нельзя переводить."
}
}


Где используется
Во Flutter ARB-файлы тесно интегрированы с библиотекой intl, которая отвечает за локализацию.

Как это работает
1️⃣ Создаете отдельные ARB-файлы для всех языков, которые хотите поддерживать.
2️⃣ С помощью команды flutter gen-l10n генерируете Dart-код, который автоматически подтягивает правильные переводы для языка пользователя.
3️⃣ В коде просто обращаетесь к строкам по их ключам, а перевод подставляется автоматически.

❗️В реальных приложениях часто требуется использовать динамические значения внутри строк.

Например, вместо «Привет, Роза!» в строке может быть «Привет, {name}!»

Для этого в ARB-файлах применяются плейсхолдеры. О них я расскажу в следующем посте.
  • 👍 11
  • 🔥 3
More from @mobile_developing
  1. Sep 26, 2026Ну погнали ☺️
  2. Sep 24, 2026Я давно в мобильной разработке и быстро замечаю баги в приложениях. Причём не в каких-то п…
  3. Sep 23, 2026Благодарю ребят за такие тёплые слова, модули про Hugging Face добавлю, я думаю будет очен…
  4. Sep 23, 2026Вышла Claude Opus 5.5 Anthropic вчера выкатила Opus 5.5. При выходе новой модели обычно вс…
  5. Sep 21, 2026Сейчас все хайпуют на мозге мухи дрозофилы) Для тех, кто не в курсе: 3 сентября Google Res…
  6. Sep 17, 2026GitHub переписал рантайм Copilot с TypeScript на Rust руками агентов 832 тысячи строк прод…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →