Sobes.tech
Middle

Flutter tətbiqinə lokalizasiya necə əlavə edilir?

sobes.tech Süni İntellekt

AI-dan cavab

  1. Asılılıqları əlavə etmək:

    pubspec.yaml faylında lokalizasiya üçün asılılıqları əlavə etməlisiniz:

    dependencies:
      flutter:
        sdk: flutter
    
      flutter_localizations:
        sdk: flutter
      intl: ^0.18.0 # Nümunə versiya, fərqli ola bilər
    

    Sonra flutter pub get əmri ilə yükləyin.

  2. Lokalizasiya fayllarını yaratmaq:

    Lokalizasiya resursları üçün qovluqlar yaradın, məsələn ./lib/l10n/. İçində, hər dəstəklənən dil üçün .arb fayllar yaradın. Məsələn, ingilis və rus dilləri üçün:

    app_en.arb:

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

    app_ru.arb:

    {
      "helloWorld": "Привет мир!",
      "@@locale": "ru"
    }
    
  3. Kod nəsilini konfiqurasiya etmək:

    pubspec.yaml faylında .arb fayllarının yolunu göstərin və nəsil üçün konfiqurasiya edin:

    flutter:
      generate: true # Nəsil aktivləşdirilir
    
      assets:
        - assets/... # Digər aktivləriniz
    
      l10n:
        arb-dir: lib/l10n # `.arb` fayllarının yerləşdiyi qovluq
        template-arb-file: app_en.arb # Nümunə `.arb` faylı
        output-localization-file: app_localizations.dart # Yaranan faylın adı
    

    pubspec.yaml yadda saxlandıqdan sonra, Flutter avtomatik olaraq ./lib/generated/l10n.dart (və ya output-localization-filedə göstərilən) faylı yaradacaq.

  4. Lokalizasiya olunmuş sətirlərin istifadəsi:

    Tətbiqdə, lokalizasiya olunmuş sətirləri istifadə etmək istədiyiniz yerdə, yaradılmış faylı idxal edin:

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

    Sonra, AppLocalizations.of(context)! vasitəsilə lokalizasiya olunmuş sətirə müraciət edin:

    Text(AppLocalizations.of(context)!.helloWorld),
    
  5. MaterialApp və ya CupertinoApp-in konfiqurasiyası:

    Yuxarı səviyyəli widgetdə (adətən MaterialApp və ya CupertinoApp) dilləri dəstəkləmək və lokalizasiya delegatlarını göstərin:

    import 'package:flutter_gen/gen_l10n/app_localizations.dart';
    
    MaterialApp(
      // ... digər tənzimləmələr
      localizationsDelegates: const [
        AppLocalizations.delegate, // Yaradılmış fayldan delegat
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: const [
        Locale('en', ''), // İngilis
        Locale('ru', ''), // Rus
        // ... digər dəstəklənən dillər
      ],
      // ...
    );
    

İndi tətbiq istifadəçinin cihaz parametrlərinə əsasən avtomatik olaraq lokalizasiya seçəcək, əgər supportedLocales-dədirsə. Lokalizasiya əl ilə dəyişdirmək üçün Locale istifadə edə və tətbiqin vəziyyətini yeniləyə bilərsiniz.