Kako dodati lokalizaciju u Flutter aplikaciju?
sobes.tech АИ
Одговор од АИ
-
Dodavanje zavisnosti:
U fajlu
pubspec.yamlpotrebno je dodati zavisnosti za lokalizaciju:dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.18.0 # Primer verzije, može se razlikovatiZatim izvršite
flutter pub get. -
Kreiranje fajlova lokalizacije:
Kreirajte direktorijume za resurse lokalizacije, na primer
./lib/l10n/. Unutar njih kreirajte.arbfajlove za svaki podržani jezik. Na primer, za engleski i ruski:app_en.arb:{ "helloWorld": "Hello World!", "@@locale": "en" }app_ru.arb:{ "helloWorld": "Привет мир!", "@@locale": "ru" } -
Podešavanje generisanja koda:
U fajlu
pubspec.yamlpotrebno je navesti putanju do fajlova za lokalizaciju i konfigurisati.arbgeneraciju:flutter: generate: true # Uključiti generisanje assets: - assets/... # Vaši drugi asseti l10n: arb-dir: lib/l10n # Direktorijum sa .arb fajlovima template-arb-file: app_en.arb # Šablonski .arb fajl output-localization-file: app_localizations.dart # Ime generisanog fajlaNakon čuvanja
pubspec.yaml, Flutter će automatski generisati fajl./lib/generated/l10n.dart(ili onaj naveden uoutput-localization-file). -
Korišćenje lokalizovanih nizova:
U aplikaciji gde je potrebno koristiti lokalizovane nizove, uvezite generisani fajl:
import 'package:flutter_gen/gen_l10n/app_localizations.dart';Zatim pristupite lokalizovanom nizu putem
AppLocalizations.of(context)!:Text(AppLocalizations.of(context)!.helloWorld), -
Podešavanje
MaterialAppiliCupertinoApp:U vršnom widgetu (obično
MaterialAppiliCupertinoApp) potrebno je navesti podržane jezike i delegacije lokalizacije:import 'package:flutter_gen/gen_l10n/app_localizations.dart'; MaterialApp( // ... ostale postavke localizationsDelegates: const [ AppLocalizations.delegate, // Delegat iz generisanog fajla GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('en', ''), // Engleski Locale('ru', ''), // Ruski // ... ostali podržani jezici ], // ... );
Sada će aplikacija automatski birati lokalizaciju u zavisnosti od podešavanja uređaja korisnika, ukoliko je ona dostupna u supportedLocales. Za ručno menjanje lokalizacije, možete koristiti Locale i osvežiti stanje aplikacije.