Чӣ гуна илова кардани маҳаллӣ ба барномаи 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 # Файли шаблонӣ 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:Дар виджети сатҳи боло (одатан
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-ро истифода баред ва ҳолати барномаро навсозӣ кунед.