ترجمة التطبيق الخاص بك في flutter بدون اي مكتبات
يمكن ترجمة تطبيق Flutter بدون مكتبات عن طريق إنشاء ملفات ترجمة لكل لغة تريد دعمها. يمكنك استخدام أي تنسيق ملف تريده لترجمة، ولكن تنسيق JSON هو الأكثر شيوعًا.
إحدى أهم مزايا إنشاء تطبيق ويب هي التكلفة المنخفضة. خاصة إذا قمت بالاستعانة بمصادر خارجية ، فقد يكون تطوير البرامج التقليدية مكلفًا للغاية. يعد تطوير البرامج التقليدية أكثر تكلفة من إنشاء تطبيق ويب. السبب الرئيسي لذلك هو تضمين تكاليف التصميم والتشفير في سعر إنشاء موقع ويب. بالإضافة إلى ذلك ، فهي أقل تكلفة بكثير بسبب عدم وجود رسوم الترخيص وسهولة العثور على مطوري مكدس كامل الميزانية الصغيرة. لا داعي للقلق أيضًا بشأن شراء أو تثبيت معدات جديدة ، والتي يمكن أن تساعدك أيضًا في توفير الكثير من المال. من ناحية أخرى ، يجب أن تعمل مع مطوري تطبيقات الأجهزة المحمولة أثناء إنشاء تطبيق جوال.
الخطوه الاولى : انشاء ملف يحتوي على اللغات التي ترغب باضافتها
الخطوة الثانيه : اضافة الملفات داخل ملف pubspec.yaml
الخطوة الثالثه : انشاء ملف model لقراءة ملفات json وكل عباره يتم اضافتها في اللغات يتم اضافتها هنا ايضا .
TranslationModel.dart
class TranslationModel {
late String flutter;
TranslationModel.fromJson(Map<String, dynamic> json) {
flutter = json['flutter'];
}
}
الخطوة الرابعه : التاكد من لغة الجهاز للمستخدم ومعرفة اللغه التي يستعملها
await di<CacheHelper>().get(AppStringSharedPreferences.isRtl).then((value) {
if (value != null) {
isRtl = value;
} else {
if (Locale(Platform.localeName).toString().split('_')[0] == 'ar') {
isRtl = true;
} else {
isRtl = false;
}
}
});
String translation = await rootBundle.loadString('assets/language/${isRtl ? 'ar' : 'en'}.json');
// cubit.dart
late TranslationModel translationModel;
void setTranslation({required String translation}) {
translationModel = TranslationModel.fromJson(json.decode(
translation,
));
emit(LanguageLoaded());
}
// main.dart
BlocProvider(
create: (context) =>MainBloc()....setTranslation(translation: widget.translation)
)
bool isRtl = false;
TranslationModel appTranslation(context) => MainBloc.get(context).translationModel;\
Text(appTranslation(context).setting)