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/... # თქვენი სხვა აქტივები
    
      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 ფაილს.

  4. ლოკალიზებული სტრიქონების გამოყენება:

    პროგრამაში, სადაც საჭიროა ლოკალიზებული სტრიქონების გამოყენება, იმპორტი ჩაატარეთ:

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

    შემდეგ მიმართეთ ლოკალიზებულ სტრიქონს AppLocalizations.of(context)!-ის საშუალებით:

    Text(AppLocalizations.of(context)!.helloWorld),
    
  5. MaterialApp ან CupertinoApp კონფიგურაცია:

    ზედა დონეზე (საშუალოდ 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 და განაახლეთ აპლიკაციის მდგომარეობა.