ترجمة التطبيق الخاص بك في flutter بدون اي مكتبات

ترجمة التطبيق الخاص بك في flutter بدون اي مكتبات

يمكن ترجمة تطبيق Flutter بدون مكتبات عن طريق إنشاء ملفات ترجمة لكل لغة تريد دعمها. يمكنك استخدام أي تنسيق ملف تريده لترجمة، ولكن تنسيق JSON هو الأكثر شيوعًا.


ترجمة التطبيق الخاص بك في flutter بدون اي مكتبات

إحدى أهم مزايا إنشاء تطبيق ويب هي التكلفة المنخفضة. خاصة إذا قمت بالاستعانة بمصادر خارجية ، فقد يكون تطوير البرامج التقليدية مكلفًا للغاية. يعد تطوير البرامج التقليدية أكثر تكلفة من إنشاء تطبيق ويب. السبب الرئيسي لذلك هو تضمين تكاليف التصميم والتشفير في سعر إنشاء موقع ويب. بالإضافة إلى ذلك ، فهي أقل تكلفة بكثير بسبب عدم وجود رسوم الترخيص وسهولة العثور على مطوري مكدس كامل الميزانية الصغيرة. لا داعي للقلق أيضًا بشأن شراء أو تثبيت معدات جديدة ، والتي يمكن أن تساعدك أيضًا في توفير الكثير من المال. من ناحية أخرى ، يجب أن تعمل مع مطوري تطبيقات الأجهزة المحمولة أثناء إنشاء تطبيق جوال.


الخطوه الاولى : انشاء ملف يحتوي على اللغات التي ترغب باضافتها


الخطوة الثانيه : اضافة الملفات داخل ملف 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 او اي statemanagement اخرى وذلك يكون عن طريقة كود يتم اضافته في الكيوبت واخر في BlocProvider عند بدء العمل
// 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)
)

الخطوه السادسه انشاء متغير في constant لاتجاه التطبيق وايضا لتسهيل عملية التعريف للغه .
bool isRtl = false;
TranslationModel appTranslation(context) => MainBloc.get(context).translationModel;\

الخطوة السابعه : استخدام اللغه لتطبيقك سوف تقوم بكتابة appTranslation وبعدها اسم الkey
Text(appTranslation(context).setting)

تعليقات