شارك المقالة

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

ترجمة التطبيق الخاص بك في 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 او اي 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)

شاهد أيضًا
مقالات ذات صلة
شرح كيفية عمل ExpansionPanelList في Flutter

شرح كيفية عمل ExpansionPanelList في Flutter احيانا عند تطوير تطبيق خاص بك تحتاج الى اضافة…

كيفية إنشاء bottomNavigationBar تفاعلي مع animation في Flutter

إنشاء bottom_bar مع animation بين التغيير للعناصر في تطبيقات Flutter يوجد الكثير من المكتبات التي…

شرح عمل ModelClass و Constructor لبيانات الlistView في Flutter

شرح عمل ModelClass و Constructor لبيانات الlistView في Flutter دالة البناء والمعروف باسم Constructor من…

🚫 مانع الإعلانات مفعل

يجب إيقاف مانع الإعلانات لاستكمال تصفح الموقع