Вы хотите сделать свое приложение 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, выполните следующие действия:
- Добавьте пакет в файл
pubspec.yaml:
dev_dependencies:
flutter_gen:
-
Создайте папку
l10nв каталоге вашего проекта и поместите в нее файлы локализации. -
Настройте пакет в файле
pubspec.yaml:
flutter_gen:
outputs:
- lib/l10n/localizations.dart
- Запустите команду генерации кода:
flutter gen
- Доступ к локализованным строкам с помощью сгенерированного кода:
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 для динамического получения переводов.