Расширение вашего приложения Flutter с помощью локализации: руководство для начинающих

Вы хотите сделать свое приложение Flutter более доступным для пользователей из разных регионов мира? Локализация – это ключ! В этой статье блога мы погрузимся в мир локализации Flutter и рассмотрим различные методы создания локализаций в веселой и разговорной форме. Давайте начнем!

Метод 1: Традиционный способ – ручная локализация

Этот метод предполагает добавление поддержки локализации в ваше приложение Flutter вручную. Вы начинаете с создания отдельных файлов перевода для каждого языка, который вы хотите поддерживать. Эти файлы содержат пары «ключ-значение», где ключи представляют собой исходный текст вашего приложения, а значения содержат переведенные версии. Например:

Map<String, String> localizedStrings = {
  'title': 'My App',
  'hello': 'Hello, World!',
};

Затем вы загружаете соответствующий файл перевода на основе языкового стандарта пользователя и получаете доступ к локализованным строкам с помощью ключей. Хотя этот метод дает вам полный контроль, в крупных проектах он может занять много времени.

Метод 2: автоматизация с помощью flutter_localizations

Чтобы упростить процесс локализации, Flutter предоставляет пакет flutter_localizations. Этот пакет предлагает предопределенную поддержку локализации для различных языков. Вы можете использовать этот пакет, добавив его в свой файл pubspec.yaml:

dependencies:
  flutter_localizations:
    sdk: flutter

После этого вы можете использовать виджет MaterialAppсо свойством localizationsDelegates, чтобы включить автоматическую локализацию:

import 'package:flutter_localizations/flutter_localizations.dart';
void main() {
  runApp(MaterialApp(
    localizationsDelegates: [
      GlobalMaterialLocalizations.delegate,
      GlobalWidgetsLocalizations.delegate,
    ],
    supportedLocales: [
      const Locale('en', 'US'), // English
      const Locale('fr', 'FR'), // French
      // Add more locales as needed
    ],
    // ...
  ));
}

Метод 3: генерация кода с помощью flutter_gen

Если вы предпочитаете более эффективный подход, вы можете использовать пакет flutter_gen. Этот пакет генерирует код Dart для ваших локализаций на основе файла JSON или ARB. Это сокращает количество ручных усилий, необходимых для поддержки файлов перевода, и обеспечивает типобезопасный доступ к локализованным строкам.

Чтобы использовать flutter_gen, выполните следующие действия:

  1. Добавьте пакет в файл pubspec.yaml:
dev_dependencies:
  flutter_gen:
  1. Создайте папку l10nв каталоге вашего проекта и поместите в нее файлы локализации.

  2. Настройте пакет в файле pubspec.yaml:

flutter_gen:
  outputs:
    - lib/l10n/localizations.dart
  1. Запустите команду генерации кода:
flutter gen
  1. Доступ к локализованным строкам с помощью сгенерированного кода:
import 'package:your_project_name/l10n/localizations.dart';
String title = Localizations.of<YourLocalizations>(context, YourLocalizations).title;

Если у вас большое приложение с обширными потребностями в локализации, вы можете рассмотреть возможность использования служб онлайн-перевода, таких как Google Cloud Translation API или Microsoft Azure Translator Text API. Эти службы обеспечивают автоматический перевод содержимого вашего приложения на указанные целевые языки. Вы можете интегрировать их API в свое приложение Flutter для динамического получения переводов.