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-ը և թարմացրեք ծրագրի վիճակը։