Jak dodać lokalizację do aplikacji Flutter?
sobes.tech AI
Odpowiedź od AI
-
Dodanie zależności:
W pliku
pubspec.yamlnależy dodać zależności do lokalizacji:dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.18.0 # Przykład wersji, może się różnićNastępnie uruchom
flutter pub get. -
Tworzenie plików lokalizacyjnych:
Utwórz katalogi dla zasobów lokalizacyjnych, np.
./lib/l10n/. Wewnątrz nich utwórz pliki.arbdla każdego obsługiwanego języka. Na przykład dla angielskiego i rosyjskiego:app_en.arb:{ "helloWorld": "Hello World!", "@@locale": "en" }app_ru.arb:{ "helloWorld": "Привет мир!", "@@locale": "ru" } -
Konfiguracja generowania kodu:
W pliku
pubspec.yamlwskaż ścieżkę do plików.arbi skonfiguruj generację:flutter: generate: true # Włącz generację assets: - assets/... # Twoje inne zasoby l10n: arb-dir: lib/l10n # Katalog z plikami .arb template-arb-file: app_en.arb # Szablonowy plik .arb output-localization-file: app_localizations.dart # Nazwa pliku generowanegoPo zapisaniu
pubspec.yaml, Flutter automatycznie wygeneruje plik./lib/generated/l10n.dart(lub ten wskazany woutput-localization-file). -
Użycie zlokalizowanych ciągów:
W aplikacji, tam gdzie chcesz używać zlokalizowanych ciągów, zaimportuj wygenerowany plik:
import 'package:flutter_gen/gen_l10n/app_localizations.dart';Następnie odwołaj się do zlokalizowanego ciągu przez
AppLocalizations.of(context)!:Text(AppLocalizations.of(context)!.helloWorld), -
Konfiguracja
MaterialApplubCupertinoApp:W najwyższym widżecie (zazwyczaj
MaterialApplubCupertinoApp) ustaw obsługę języków i delegaty lokalizacji:import 'package:flutter_gen/gen_l10n/app_localizations.dart'; MaterialApp( // ... inne ustawienia localizationsDelegates: const [ AppLocalizations.delegate, // Delegat z wygenerowanego pliku GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('en', ''), // Angielski Locale('ru', ''), // Rosyjski // ... inne obsługiwane języki ], // ... );
Teraz aplikacja będzie automatycznie wybierać lokalizację w zależności od ustawień urządzenia użytkownika, jeśli jest ona dostępna w supportedLocales. Aby ręcznie zmienić lokalizację, można użyć Locale i zaktualizować stan aplikacji.