Flutter uygulamasına nasıl yerelleştirme eklenir?
sobes.tech yapay zeka
AI'dan gelen yanıt
-
Bağımlılıkların eklenmesi:
pubspec.yamldosyasında yerelleştirme için bağımlılıkları eklemeniz gerekir:dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter intl: ^0.18.0 # Örnek sürüm, değişebilirArdından
flutter pub getkomutunu çalıştırın. -
Yerelleştirme dosyalarının oluşturulması:
Yerelleştirme kaynakları için dizinler oluşturun, örneğin
./lib/l10n/. İçinde, desteklenen her dil için.arbdosyaları oluşturun. Örneğin, İngilizce ve Rusça için:app_en.arb:{ "helloWorld": "Hello World!", "@@locale": "en" }app_ru.arb:{ "helloWorld": "Привет мир!", "@@locale": "ru" } -
Kod üretimi yapılandırması:
pubspec.yamldosyasında,.arbdosyalarının yolunu belirtin ve.arbüretimini yapılandırın:flutter: generate: true # Üretimi etkinleştir assets: - assets/... # Diğer varlıklarınız l10n: arb-dir: lib/l10n # .arb dosyalarının bulunduğu dizin template-arb-file: app_en.arb # Şablon .arb dosyası output-localization-file: app_localizations.dart # Oluşan dosyanın adıpubspec.yamlkaydedildikten sonra, Flutter otomatik olarak./lib/generated/l10n.dart(veyaoutput-localization-fileile belirtilen) dosyasını oluşturacaktır. -
Yerelleştirilmiş dizelerin kullanımı:
Uygulamada, yerelleştirilmiş dizeleri kullanmak istediğiniz yerde, oluşturulan dosyayı içe aktarın:
import 'package:flutter_gen/gen_l10n/app_localizations.dart';Ardından,
AppLocalizations.of(context)!ile yerelleştirilmiş dizeye erişin:Text(AppLocalizations.of(context)!.helloWorld), -
MaterialAppveyaCupertinoAppyapılandırması:Üst düzey widget'ta (genellikle
MaterialAppveyaCupertinoApp) dil desteği ve yerelleştirme delegelerini belirtin:import 'package:flutter_gen/gen_l10n/app_localizations.dart'; MaterialApp( // ... diğer ayarlar localizationsDelegates: const [ AppLocalizations.delegate, // Oluşan dosyadan delegat GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('en', ''), // İngilizce Locale('ru', ''), // Rusça // ... diğer desteklenen diller ], // ... );
Artık uygulama, kullanıcının cihaz ayarlarına bağlı olarak otomatik olarak yerelleştirmeyi seçecek, eğer supportedLocales içinde varsa. Yerelleştirmeyi manuel değiştirmek için Locale kullanabilir ve uygulama durumunu güncelleyebilirsiniz.