سعاد نشر 18 أكتوبر 2015 أرسل تقرير نشر 18 أكتوبر 2015 لدي مدونة بسيطة طوّرتها على Rails، وأريد تضمين إمكانية تعدد لغات المحتوى على الموقع، فكيف أقوم بذلك على إطار العمل Rails؟ اقتباس
0 E.Nourddine نشر 18 أكتوبر 2015 أرسل تقرير نشر 18 أكتوبر 2015 في أطر العمل الكبيرة والمنتشرة بقوة مثل Rails، نجد إمكانية إضافة ما يسمى بـ Internationalization، وهي أداة تمكّن الموقع من تحويل وترجمة الموقع -تقريبا- إلى أي لغة في العالم، وغالبا ما يُرمز لهذه التقنية بـ i18n .في Rails بالتحديد توفر لنا إضافة Gem التي تفي بهذا الغرض، ومن تجربة شخصية أرى أنها قوية، وسهلة الاستعمال، اسمها - الإضافة - : rails-i18n.هذا رابطه : rails-i18nولبضبط الإعدادات:في ملف GemFile نضيف السطر التالي:gem 'rails-i18n', '~> 4.0.0' ومن خلال الطرفية، نشغّل الأمر التالي:gem install rails-i18n -v '~> 4.0.0' في المسار التالي من المشروع:config/environments/نختار اللغة المراد اعتمادها في الموقع:config.i18n.available_locales = ['es-CO', :de]وهذه لائحة جميع اللغات المتاحة -لاحظ وجود اللغة العربية- :af, ar, az, bg, bn, bs, ca, cs, cy, da, de, de-AT, de-CH, el, en, en-AU, en-CA, en-GB, en-IE, en-IN, en-NZ, en-US, en-ZA, eo, es, es-419, es-AR, es-CL, es-CO, es-CR, es-EC, es-MX, es-PA, es-PE, es-US, es-VE, et, eu, fa, fi, fr, fr-CA, fr-CH, gl, he, hi, hi-IN, hr, hu, id, is, it, it-CH, ja, km, kn, ko, lo, lt, lv, mk, mn, mr-IN, ms, nb, ne, nl, nn, or, pl, pt, pt-BR, rm, ro, ru, sk, sl, sr, sv, sw, ta, th, tl, tr, tt, uk, ug, ur, uz, vi, wo, zh-CN, zh-HK, zh-TW, zh-YUEباقي الخطوات أتركك لتتبعها مع هذا الفيديو:Ruby On Rails Tutorial - I18n اقتباس
0 Rojan Mustafa نشر 1 مايو 2020 أرسل تقرير نشر 1 مايو 2020 بالإضافة إلى إستعمال مكاتب I18n التي تستخدم للترجمة بشكل كبير في تطبيقات Rails حتى في المواقع أحادية اللغة (الغاية من الإستعمال في هذه الحالة هو عدم إدراج أي محتوى نصي ستاتيكي أو فقرات نصية في ملفات الـ views، بحيث يتم سحبها من ملفات yml وذلك لجعل الأكواد قصيرة ومقروءة). بالعودة إلى الموقع متعدد اللغات من المستحسن تخصيص روابط محددة لكل لغة، ويتم ذلك عبر إدراج gem 'route_translator' إلى ملف gemfile. ويجب عندها تعديل ملف routes لتصبح بالشكل: localized do resources :articles, only: [:index] do get :method, on: :collection end end بهذا الشكل يتم ترجمة الروابط إلى: localhost:3000/articles للغة الإنكليزية إذا كانت هي اللغة الإفتراضية التي تم تحديدها. localhost:3000/ar/articles إذا كانت اللغة المحددة ar. وهكذا. ولكن هذه الروابط لا تغير اللغة بل يجب تغييرها من ApplicationController كالتالي: before_action :set_locale_from_links private def set_locale_from_links locale_from_url = RouteTranslator.locale_from_params(params) || RouteTranslator::Host.locale_from_host(request.host) if locale_from_url old_locale = I18n.locale I18n.locale = locale_from_url end ensure I18n.locale = old_locale if locale_from_url end للمزيد عبر طريقة عمل هذا الـ gem يمكن مراجعة: https://github.com/enriclluelles/route_translator اقتباس
السؤال
سعاد
لدي مدونة بسيطة طوّرتها على Rails، وأريد تضمين إمكانية تعدد لغات المحتوى على الموقع، فكيف أقوم بذلك على إطار العمل Rails؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.