Πώς προσθέτετε εντοπισμό σε μια εφαρμογή Flutter;
sobes.tech AI
Απάντηση από AI
-
Προσθήκη εξαρτήσεων:
Στο αρχείο
pubspec.yaml, πρέπει να προσθέσετε εξαρτήσεις για την τοποθέτηση:dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.18.0 # Παράδειγμα έκδοσης, μπορεί να διαφέρειΣτη συνέχεια, εκτελέστε
flutter pub get. -
Δημιουργία αρχείων τοποθέτησης:
Δημιουργήστε καταλόγους για τους πόρους τοποθέτησης, π.χ.
./lib/l10n/. Μέσα, δημιουργήστε αρχεία.arbγια κάθε υποστηριζόμενο γλώσσα. Για παράδειγμα, για αγγλικά και ρωσικά:app_en.arb:{ "helloWorld": "Hello World!", "@@locale": "en" }app_ru.arb:{ "helloWorld": "Привет мир!", "@@locale": "ru" } -
Διαμόρφωση γεννήτριας κώδικα:
Στο αρχείο
pubspec.yaml, καθορίστε τη διαδρομή προς τα αρχεία.arbκαι διαμορφώστε τη γεννήτρια:flutter: generate: true # Ενεργοποίηση γεννήτριας assets: - assets/... # Άλλα assets σας l10n: arb-dir: lib/l10n # Κατάλογος με αρχεία .arb template-arb-file: app_en.arb # Πρότυπο αρχείο .arb output-localization-file: app_localizations.dart # Όνομα του παραγόμενου αρχείουΜετά την αποθήκευση του
pubspec.yaml, το Flutter θα δημιουργήσει αυτόματα το αρχείο./lib/generated/l10n.dart(ή αυτό που ορίζεται στοoutput-localization-file). -
Χρήση των τοποθετημένων συμβολοσειρών:
Στην εφαρμογή, όπου χρειάζεται να χρησιμοποιήσετε τις τοποθετημένες συμβολοσειρές, εισάγετε το παραγόμενο αρχείο:
import 'package:flutter_gen/gen_l10n/app_localizations.dart';Στη συνέχεια, ανατρέξτε στη τοποθετημένη συμβολοσειρά μέσω
AppLocalizations.of(context)!:Text(AppLocalizations.of(context)!.helloWorld), -
Διαμόρφωση
MaterialAppήCupertinoApp:Στο ανώτατο widget (συνήθως
MaterialAppήCupertinoApp) πρέπει να ορίσετε την υποστήριξη γλωσσών και τους διαμεσολαβητές τοποθέτησης:import 'package:flutter_gen/gen_l10n/app_localizations.dart'; MaterialApp( // ... άλλες ρυθμίσεις localizationsDelegates: const [ AppLocalizations.delegate, // Διαμεσολαβητής από το παραγόμενο αρχείο GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('en', ''), // Αγγλικά Locale('ru', ''), // Ρωσικά // ... άλλες υποστηριζόμενες γλώσσες ], // ... );
Τώρα η εφαρμογή θα επιλέγει αυτόματα την τοποθεσία σύμφωνα με τις ρυθμίσεις της συσκευής του χρήστη, εάν αυτή υπάρχει στη λίστα supportedLocales. Για χειροκίνητη αλλαγή της τοποθεσίας, μπορείτε να χρησιμοποιήσετε το Locale και να ενημερώσετε την κατάσταση της εφαρμογής.