Hoe voeg je lokalisatie toe aan een Flutter-app?
sobes.tech AI
Antwoord van AI
-
Dependencies toevoegen:
In het bestand
pubspec.yamlmoet je afhankelijkheden voor lokalisatie toevoegen:dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.18.0 # Voorbeeldversie, kan variërenVervolgens voer je
flutter pub getuit. -
Maak lokalisatiebestanden:
Maak mappen voor de lokalisatieresources, bijvoorbeeld
./lib/l10n/. Binnenin maak je.arb-bestanden voor elke ondersteunde taal. Bijvoorbeeld voor Engels en Russisch:app_en.arb:{ "helloWorld": "Hello World!", "@@locale": "en" }app_ru.arb:{ "helloWorld": "Привет мир!", "@@locale": "ru" } -
Configuratie van codegeneratie:
In het bestand
pubspec.yaml, geef het pad naar de.arb-bestanden en configureer de generatie:flutter: generate: true # Activeer generatie assets: - assets/... # Je andere assets l10n: arb-dir: lib/l10n # Map met `.arb`-bestanden template-arb-file: app_en.arb # Sjabloon `.arb`-bestand output-localization-file: app_localizations.dart # Naam van het gegenereerde bestandNa het opslaan van
pubspec.yaml, genereert Flutter automatisch het bestand./lib/generated/l10n.dart(of de naam die je hebt opgegeven inoutput-localization-file). -
Gebruik van gelokaliseerde strings:
In de app, waar je gelokaliseerde strings wilt gebruiken, importeer het gegenereerde bestand:
import 'package:flutter_gen/gen_l10n/app_localizations.dart';Vervolgens, krijg toegang tot de gelokaliseerde string via
AppLocalizations.of(context)!:Text(AppLocalizations.of(context)!.helloWorld), -
Configuratie van
MaterialAppofCupertinoApp:In de bovenliggende widget (meestal
MaterialAppofCupertinoApp) geef je taalondersteuning en de delegaten voor lokalisatie:import 'package:flutter_gen/gen_l10n/app_localizations.dart'; MaterialApp( // ... andere instellingen localizationsDelegates: const [ AppLocalizations.delegate, // Delegaat uit het gegenereerde bestand GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('en', ''), // Engels Locale('ru', ''), // Russisch // ... andere ondersteunde talen ], // ... );
Nu zal de app automatisch de lokalisatie kiezen op basis van de instellingen van het apparaat van de gebruiker, mits deze in supportedLocales staat. Voor handmatige wijziging van de lokalisatie kun je Locale gebruiken en de staat van de app bijwerken.