Sobes.tech
Middle

Kuidas lisada Flutter rakendusse lokaliseerimine?

sobes.tech AI

Vastus AI-lt

  1. Lisanduste sõltuvused:

    Failis pubspec.yaml tuleb lisada lokaliseerimise sõltuvused:

    dependencies:
      flutter:
        sdk: flutter
    
      flutter_localizations:
        sdk: flutter
      intl: ^0.18.0 # Näidaversioon, võib erineda
    

    Seejärel käivitage flutter pub get.

  2. Lokaliseerimisdokumentide loomine:

    Looge ressurside jaoks kaustad, näiteks ./lib/l10n/. Sees looge .arb failid iga toetatud keele jaoks. Näiteks inglise ja vene keele jaoks:

    app_en.arb:

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

    app_ru.arb:

    {
      "helloWorld": "Привет мир!",
      "@@locale": "ru"
    }
    
  3. Koodi generatsiooni seadistamine:

    Failis pubspec.yaml määrake tee lokaliseerimisfailidele ja seadistage .arb generatsioon:

    flutter:
      generate: true # Lülita sisse generatsioon
    
      assets:
        - assets/... # Teie muud ressursid
    
      l10n:
        arb-dir: lib/l10n # Kaust `.arb` failide jaoks
        template-arb-file: app_en.arb # Mall `.arb` fail
        output-localization-file: app_localizations.dart # Genereeritud faili nimi
    

    Pärast pubspec.yaml salvestamist Flutter automaatselt genereerib faili ./lib/generated/l10n.dart (või vastavalt output-localization-file).

  4. Lokaliseeritud stringide kasutamine:

    Rakenduses, kus on vaja kasutada lokaliseeritud stringe, importige genereeritud fail:

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

    Seejärel pääsege ligi lokaliseeritud stringile AppLocalizations.of(context)! kaudu:

    Text(AppLocalizations.of(context)!.helloWorld),
    
  5. MaterialApp või CupertinoApp seadistamine:

    Kõrgema taseme vidjetis (tavaliselt MaterialApp või CupertinoApp) määrake toetatud keeled ja lokaliseerimise delegaadid:

    import 'package:flutter_gen/gen_l10n/app_localizations.dart';
    
    MaterialApp(
      // ... muud seaded
      localizationsDelegates: const [
        AppLocalizations.delegate, // Genereeritud failist
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      supportedLocales: const [
        Locale('en', ''), // Inglise
        Locale('ru', ''), // Vene
        // ... teised toetatud keeled
      ],
      // ...
    );
    

Nüüd valib rakendus automaatselt lokaliseerimise vastavalt kasutaja seadistustele, kui see on supportedLocales-s olemas. Manuaalseks muutmiseks kasutage Locale ja värskendage rakenduse olekut.