Hamza Waleed2 نشر 24 سبتمبر 2023 أرسل تقرير مشاركة نشر 24 سبتمبر 2023 كيف يمكنني ترجمة موقع في دجانجو حتى المعلومات القادمه من قاعدة البيانات مع العلم انه يمكن اضافة حقول لاحقا 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 عمار معلا نشر 24 سبتمبر 2023 أرسل تقرير مشاركة نشر 24 سبتمبر 2023 بتاريخ 39 دقائق مضت قال Hamza Waleed2: كيف يمكنني ترجمة موقع في دجانجو حتى المعلومات القادمه من قاعدة البيانات مع العلم انه يمكن اضافة حقول لاحقا مرحبا @Hamza Waleed2 يمكنك ذلك من خلال تحديد الحقول التي تحتاج إلى ترجمتها في models.py, لذلك يجب عليك اتباع الخطوات التالية: إضافة طبقة إلى middleware في ملف settings.py لتصبح الترجمة مفعلة MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.locale.LocaleMiddleware' #new <-- ] تحديد النصوص التي تحتاج إلى ترجمتها في models.py باستخدام وظيفة gettext_lazy من django.utils.translation from django.db import models from django.utils.translation import gettext_lazy as _ #new # Create your models here. class Article(models.Model): title = models.CharField(_("Title"), max_length=100) #تعديل content = models.TextField(_("Content")) # تعديل created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) بالعودة إلى ملف settings.py قم بإضافة اللغات إلى language_code للتبديل بينها باستخدام gettext_lazy وتعيين مجلد لوضع ملفات الترجمة فيه وليكن locale import os #new from pathlib import Path from django.utils.translation import gettext_lazy as _ #new LANGUAGES = ( ('en', _('English')), #update ('ar', _('Arabic')), #update ) LOCALE_PATHS = [ os.path.join(BASE_DIR, 'locale'), #new ] تشغيل أمر makemessages لإنشاء ملفات تحتوي على النصوص التي تحتاج إلى ترجمة عبر استخدام الأمر التالي ويمكن تحديد اللغة عبر الخيار -l, كذلك تكون للملفات اللاحقة po python manage.py makemessages -l ar تشغيل أمر compilemessages لتجميع ملفات ذات اللاحقة po إلى ملفات ذات اللاحقة mo التي تحتوي على الترجمة النهائية عبر الامر التالي python manage.py compilemessages في القوالب (templates)، تستطيع تضمين واستخدام النصوص المترجمة باستخدام وظيفة tran html <h1>{% trans "Welcome to my website" %}</h1> اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Hamza Waleed2 نشر 24 سبتمبر 2023 الكاتب أرسل تقرير مشاركة نشر 24 سبتمبر 2023 هل بهذه الطريقة سيتم ترجمة محتوى content في هذا المثال ام سيترجم اسم الحقل فقط؟ 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Mustafa Suleiman نشر 24 سبتمبر 2023 أرسل تقرير مشاركة نشر 24 سبتمبر 2023 بتاريخ منذ ساعة مضت قال Hamza Waleed2: هل بهذه الطريقة سيتم ترجمة محتوى content في هذا المثال ام سيترجم اسم الحقل فقط؟ سيتم ترجمة محتوى الحقل "content" أيضًا. والطريقة تتمثل في استخدام نموذج "ModelTranslation" لترجمة النماذج في Django. وفي المثال، يتم ترجمة اسم الحقل "content" فقط ولكن باستطاعتك ترجمة محتوى الحقل أيضًا عن طريق إضافة ترجمة لقيمة الحقل كالتالي: # models.py class MyModel(models.Model): name = models.CharField(max_length=255) content = models.TextField() class Meta: translations = { 'content': { 'en': 'content in English', 'ar': 'محتوى باللغة العربية', }, } والنتيجة هي ترجمة محتوى الحقل "content" إلى "content in English" باللغة الإنجليزية و "محتوى باللغة العربية" باللغة العربية. ولإضافة حقول جديدة إلى نموذجك، ما عليك سوى إضافة حقول جديدة إلى نموذجك وإضافة ترجمات لها إلى الملف "models.py". وهناك طرق أخرى لترجمة المعلومات القادمة من قاعدة البيانات في Django، ولكن تلك الطريقة هي طريقة بسيطة وفعالة. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Hamza Waleed2
كيف يمكنني ترجمة موقع في دجانجو حتى المعلومات القادمه من قاعدة البيانات
مع العلم انه يمكن اضافة حقول لاحقا
رابط هذا التعليق
شارك على الشبكات الإجتماعية
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.