Sobes.tech
Middle

Flutter колдонмосуна жергиликтөштүрүүнү кантип кошуу керек?

sobes.tech AI

AIден жооп

  1. Тәуелділіктерді қосу:

    pubspec.yaml файлына локализация үшін тәуелділіктерді қосу керек:

    dependencies:
      flutter:
        sdk: flutter
    
      flutter_localizations:
        sdk: flutter
      intl: ^0.18.0 # Мисал версия, айырмашылығы болушу мүмкүн
    

    Андан кийин flutter pub get командасын иштетүү.

  2. Локализация файлдарын түзүү:

    Ресурс үчүн каталогдорду түзүңүз, мисалы ./lib/l10n/. Ичине ар бир колдоого алынган тил үчүн .arb файлдарын түзүңүз. Мисалы, англис жана орус тилдери үчүн:

    app_en.arb:

    {
      "helloWorld": "Hello World!",
      "@@locale": "en"
    }
    

    app_ru.arb:

    {
      "helloWorld": "Привет мир!",
      "@@locale": "ru"
    }
    
  3. Кодту генерациялоо жөндөөлөрү:

    pubspec.yaml файлына локализация файлдарына жолду көрсөтүңүз жана .arb генерациясын конфигурациялаңыз:

    flutter:
      generate: true # Генерацияны активдештирүү
    
      assets:
        - assets/... # Башка активдериңиз
    
      l10n:
        arb-dir: lib/l10n # `.arb` файлдар жайгашкан каталог
        template-arb-file: app_en.arb # Үлгү `.arb` файлы
        output-localization-file: app_localizations.dart # Генерацияланган файлдын аты
    

    pubspec.yaml файлын сактагандан кийин, Flutter автоматтык түрдө ./lib/generated/l10n.dart файлын (же output-localization-file көрсөтүлгөндөй) түзөт.

  4. Локализацияланган саптарды колдонуу:

    Колдонмоңузда локализацияланган саптарды колдонуу үчүн, генерацияланган файлды импорттоо:

    import 'package:flutter_gen/gen_l10n/app_localizations.dart';
    

    Андан соң, AppLocalizations.of(context)! аркылуу локализацияланган сапка кайрылыңыз:

    Text(AppLocalizations.of(context)!.helloWorld),
    
  5. MaterialApp же CupertinoApp настройкалоо:

    Жогорку деңгээлдеги виджетте (жалпысынан MaterialApp же CupertinoApp) тилдердин колдоосун жана локализация делегаттарын көрсөтүңүз:

    import 'package:flutter_gen/gen_l10n/app_localizations.dart';
    
    MaterialApp(
      // ... башка настройкалар
      localizationsDelegates: const [
        AppLocalizations.delegate, // Генерацияланган файлдан делегат
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: const [
        Locale('en', ''), // Англис тили
        Locale('ru', ''), // Рус тили
        // ... башка колдоого алынган тилдер
      ],
      // ...
    );
    

Эми колдонмо автоматтык түрдө колдонуучу түзмөктүн жөндөөлөрүнө ылайык локализацияны тандайт, эгер ал supportedLocales тизмесинде болсо. Кол менен өзгөртүү үчүн Locale колдонуп, программаны жаңыртыңыз.