Ako pridať lokalizáciu do aplikácie Flutter?
sobes.tech AI
Odpoveď od AI
-
Pridanie závislostí:
Do súboru
pubspec.yamlje potrebné pridať závislosti pre lokalizáciu:dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.18.0 # Príklad verzie, môže sa líšiťPotom spustite
flutter pub get. -
Vytvorenie súborov lokalizácie:
Vytvorte adresáre pre zdroje lokalizácie, napríklad
./lib/l10n/. Vo vnútri vytvorte.arbsúbory pre každý podporovaný jazyk. Napríklad pre angličtinu a ruštinu:app_en.arb:{ "helloWorld": "Hello World!", "@@locale": "en" }app_ru.arb:{ "helloWorld": "Привет мир!", "@@locale": "ru" } -
Nastavenie generovania kódu:
V súbore
pubspec.yamlje potrebné uviesť cestu k súborom pre lokalizáciu a nakonfigurovať.arbgeneráciu:flutter: generate: true # Zapnúť generovanie assets: - assets/... # Vaše ďalšie assets l10n: arb-dir: lib/l10n # Adresár s .arb súbormi template-arb-file: app_en.arb # Šablónový .arb súbor output-localization-file: app_localizations.dart # Názov generovaného súboruPo uložení
pubspec.yamlFlutter automaticky vygeneruje súbor./lib/generated/l10n.dart(alebo podľaoutput-localization-file). -
Použitie lokalizovaných reťazcov:
V aplikácii, kde je potrebné použiť lokalizované reťazce, importujte vygenerovaný súbor:
import 'package:flutter_gen/gen_l10n/app_localizations.dart';Potom pristupujte k lokalizovanému reťazcu cez
AppLocalizations.of(context)!:Text(AppLocalizations.of(context)!.helloWorld), -
Nastavenie
MaterialAppaleboCupertinoApp:Vo vrcholovom widgete (zvyčajne
MaterialAppaleboCupertinoApp) je potrebné uviesť podporované jazyky a delegáty lokalizácie:import 'package:flutter_gen/gen_l10n/app_localizations.dart'; MaterialApp( // ... ďalšie nastavenia localizationsDelegates: const [ AppLocalizations.delegate, // Delegát z vygenerovaného súboru GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('en', ''), // Anglicky Locale('ru', ''), // Ruský // ... ďalšie podporované jazyky ], // ... );
Teraz bude aplikácia automaticky vyberať lokalizáciu v závislosti od nastavení zariadenia používateľa, ak je dostupná v supportedLocales. Pre manuálnu zmenu locale môžete použiť Locale a aktualizovať stav aplikácie.