Sobes.tech
Middle

Kā pievienot lokalizāciju Flutter lietotnei?

sobes.tech AI

Atbilde no AI

  1. Pievienot atkarības:

    Failā pubspec.yaml jāpieņem atkarības lokalizācijai:

    dependencies:
      flutter:
        sdk: flutter
    
      flutter_localizations:
        sdk: flutter
      intl: ^0.18.0 # Piemēra versija, var atšķirties
    

    Tad izpildiet flutter pub get.

  2. Izveidot lokalizācijas failus:

    Izveidojiet resursu katalogus, piemēram, ./lib/l10n/. Iekšā izveidojiet .arb failus katrai atbalstītajai valodai. Piemēram, angļu un krievu:

    app_en.arb:

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

    app_ru.arb:

    {
      "helloWorld": "Привет мир!",
      "@@locale": "ru"
    }
    
  3. Koda ģenerēšanas iestatījumi:

    Failā pubspec.yaml norādiet ceļu uz lokalizācijas failiem un konfigurējiet .arb ģenerēšanu:

    flutter:
      generate: true # Ieslēgt ģenerēšanu
    
      assets:
        - assets/... # Jūsu citi aktīvi
    
      l10n:
        arb-dir: lib/l10n # Katalogs ar `.arb` failiem
        template-arb-file: app_en.arb # Šablona `.arb` fails
        output-localization-file: app_localizations.dart # Ģenerētā faila nosaukums
    

    Saglabājot pubspec.yaml, Flutter automātiski ģenerēs failu ./lib/generated/l10n.dart (vai pēc output-localization-file).

  4. Lokalizēto rindu izmantošana:

    Projektā, kur nepieciešams izmantot lokalizētas rindas, importējiet ģenerēto failu:

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

    Tad piekļūstiet lokalizētajai rindai caur AppLocalizations.of(context)!:

    Text(AppLocalizations.of(context)!.helloWorld),
    
  5. MaterialApp vai CupertinoApp konfigurācija:

    Augšējā līmeņa widgetā (parasti MaterialApp vai CupertinoApp) norādiet atbalstītās valodas un lokalizācijas delegātus:

    import 'package:flutter_gen/gen_l10n/app_localizations.dart';
    
    MaterialApp(
      // ... citas konfigurācijas
      localizationsDelegates: const [
        AppLocalizations.delegate, // No ģenerētā faila
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: const [
        Locale('en', ''), // Angļu
        Locale('ru', ''), // Krievu
        // ... citas atbalstītās valodas
      ],
      // ...
    );
    

Tagad lietojumprogramma automātiski izvēlēsies lokalizāciju atkarībā no lietotāja ierīces iestatījumiem, ja tā ir iekļauta supportedLocales. Lai manuāli mainītu lokalizāciju, var izmantot Locale un atjaunināt lietojumprogrammas stāvokli.