Flutter ilovasiga lokalizatsiya qanday qo'shiladi?
sobes.tech AI
AIdan javob
-
Bog'lanishlarni qo'shish:
pubspec.yamlfaylida lokalizatsiya uchun bog'lanishlarni qo'shish kerak:dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.18.0 # Misol uchun versiya, farq qilishi mumkinSo'ng,
flutter pub getkomandasini ishga tushiring. -
Lokalizatsiya fayllarini yaratish:
Lokalizatsiya resurslari uchun kataloglar yarating, masalan
./lib/l10n/. Ichida, har bir qo'llab-quvvatlanadigan til uchun.arbfayllarini yarating. Masalan, ingliz va rus til uchun:app_en.arb:{ "helloWorld": "Hello World!", "@@locale": "en" }app_ru.arb:{ "helloWorld": "Привет мир!", "@@locale": "ru" } -
Kod avto-generatsiya qilish konfiguratsiyasi:
pubspec.yamlfaylida,.arbfayllarining yo'lini ko'rsating va avto-generatsiya uchun sozlang:flutter: generate: true # Avto-generatsiyani yoqing assets: - assets/... # Sizning boshqa aktivlaringiz l10n: arb-dir: lib/l10n # `.arb` fayllar joylashgan katalog template-arb-file: app_en.arb # Namuna `.arb` fayli output-localization-file: app_localizations.dart # Yaratiladigan fayl nomipubspec.yamlsaqlangandan so'ng, Flutter avtomatik ravishda./lib/generated/l10n.dart(yokioutput-localization-fileda ko'rsatilgan) faylni yaratadi. -
Lokalizatsiyalashgan satrlarni ishlatish:
Ilovada, lokalizatsiyalashgan satrlarni ishlatish uchun, yaratilgan faylni import qiling:
import 'package:flutter_gen/gen_l10n/app_localizations.dart';So'ng,
AppLocalizations.of(context)!orqali lokalizatsiyalashgan satrga murojaat qiling:Text(AppLocalizations.of(context)!.helloWorld), -
MaterialAppyokiCupertinoAppkonfiguratsiyasi:Yuqori darajadagi widgetda (odatda
MaterialAppyokiCupertinoApp) tillar qo'llab-quvvatlashini va lokalizatsiya delegatlarini ko'rsating:import 'package:flutter_gen/gen_l10n/app_localizations.dart'; MaterialApp( // ... boshqa sozlamalar localizationsDelegates: const [ AppLocalizations.delegate, // Yaratilgan fayldan delegat GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('en', ''), // Ingliz tili Locale('ru', ''), // Rus tili // ... boshqa qo'llab-quvvatlanadigan tillar ], // ... );
Endi ilova foydalanuvchi qurilmasining sozlamalariga asoslangan holda avtomatik ravishda lokalizatsiyani tanlaydi, agar u supportedLocales ichida bo'lsa. Lokalizatsiyani qo'lda o'zgartirish uchun Locale dan foydalanish va ilova holatini yangilash mumkin.