Kaip pridėti lokalizaciją į Flutter programą?
sobes.tech AI
Atsakymas iš AI
-
Pridėti priklausomybes:
pubspec.yamlfaile reikia pridėti lokalizacijos priklausomybes:dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.18.0 # Pavyzdinė versija, gali skirtisTada vykdykite
flutter pub get. -
Sukurkite lokalizacijos failus:
Sukurkite katalogus lokalizacijos ištekliams, pvz.,
./lib/l10n/. Viduje sukurkite.arbfailus kiekvienai palaikomai kalbai. Pavyzdžiui, anglų ir rusų:app_en.arb:{ "helloWorld": "Hello World!", "@@locale": "en" }app_ru.arb:{ "helloWorld": "Привет мир!", "@@locale": "ru" } -
Kodo generavimo nustatymai:
pubspec.yamlfaile nurodykite kelią iki lokalizacijos failų ir konfigūruokite.arbgeneravimą:flutter: generate: true # Įjungti generavimą assets: - assets/... # Jūsų kiti ištekliai l10n: arb-dir: lib/l10n # Katalogas su `.arb` failais template-arb-file: app_en.arb # Šabloninis `.arb` failas output-localization-file: app_localizations.dart # Generuojamo failo pavadinimasIšsaugojus
pubspec.yaml, Flutter automatiškai sugeneruos failą./lib/generated/l10n.dart(arba pagaloutput-localization-file). -
Naudojimas lokalizuotoms eilutėms:
Programoje, kur reikia naudoti lokalizuotas eilutes, importuokite sugeneruotą failą:
import 'package:flutter_gen/gen_l10n/app_localizations.dart';Tada pasiekite lokalizuotą eilutę per
AppLocalizations.of(context)!:Text(AppLocalizations.of(context)!.helloWorld), -
MaterialApparbaCupertinoAppnustatymai:Aukščiausio lygio widget'e (dažniausiai
MaterialApparbaCupertinoApp) nurodykite palaikomus kalbas ir lokalizacijos delegatus:import 'package:flutter_gen/gen_l10n/app_localizations.dart'; MaterialApp( // ... kiti nustatymai localizationsDelegates: const [ AppLocalizations.delegate, // Iš sugeneruoto failo GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('en', ''), // Anglų Locale('ru', ''), // Rusų // ... kitos palaikomos kalbos ], // ... );
Dabar programa automatiškai pasirinks lokalizaciją pagal naudotojo įrenginio nustatymus, jei ji yra supportedLocales. Rankiniu būdu keisti lokalizaciją galima naudojant Locale ir atnaujinant programos būseną.