Sobes.tech
Middle

Πώς προσθέτετε εντοπισμό σε μια εφαρμογή Flutter;

sobes.tech AI

Απάντηση από AI

  1. Προσθήκη εξαρτήσεων:

    Στο αρχείο pubspec.yaml, πρέπει να προσθέσετε εξαρτήσεις για την τοποθέτηση:

    dependencies:
      flutter:
        sdk: flutter
    
      flutter_localizations:
        sdk: flutter
      intl: ^0.18.0 # Παράδειγμα έκδοσης, μπορεί να διαφέρει
    

    Στη συνέχεια, εκτελέστε flutter pub get.

  2. Δημιουργία αρχείων τοποθέτησης:

    Δημιουργήστε καταλόγους για τους πόρους τοποθέτησης, π.χ. ./lib/l10n/. Μέσα, δημιουργήστε αρχεία .arb για κάθε υποστηριζόμενο γλώσσα. Για παράδειγμα, για αγγλικά και ρωσικά:

    app_en.arb:

    {
      "helloWorld": "Hello World!",
      "@@locale": "en"
    }
    

    app_ru.arb:

    {
      "helloWorld": "Привет мир!",
      "@@locale": "ru"
    }
    
  3. Διαμόρφωση γεννήτριας κώδικα:

    Στο αρχείο 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).

  4. Χρήση των τοποθετημένων συμβολοσειρών:

    Στην εφαρμογή, όπου χρειάζεται να χρησιμοποιήσετε τις τοποθετημένες συμβολοσειρές, εισάγετε το παραγόμενο αρχείο:

    import 'package:flutter_gen/gen_l10n/app_localizations.dart';
    

    Στη συνέχεια, ανατρέξτε στη τοποθετημένη συμβολοσειρά μέσω AppLocalizations.of(context)!:

    Text(AppLocalizations.of(context)!.helloWorld),
    
  5. Διαμόρφωση 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 και να ενημερώσετε την κατάσταση της εφαρμογής.