كيف نفعل التعريب في Django على أساس UserProfile

أريد القيام بالتعريب في Django استنادًا إلى رمز البلد/الإعدادات المحلية في المستخدمين UserProfile بدلاً من استخدام ما يعتبره المتصفح/جلسة/خادم الويب هو اللغة.

هل هناك طريقة للقيام بذلك في قوالب django؟

على سبيل المثال ، كيفية تغيير سلوك

{% load l10n %}
{{ value|time|localize }}

بحيث تنسق التاريخ بناءً على ما يتم تخزينه في الملف الشخصي ، وليس بناءً على بعض سياق الطلب؟

0

1 إجابة

يوفر Django LocaleMiddleware الذي يفعل معظم ما انت بعد:

لتمكين اختيار اللغة استنادًا إلى البيانات من الطلب. هذا   يخصص محتوى لكل مستخدم. انظر التدويل   الوثائق.

الطريقة التي تستخدمها لتخمين اللغة هي نفسها التي تستخدمها آلات الترجمة. أي أنها تبحث عن متغير django_language في الجلسة ، إذا كان هذا موجودًا وهي لغة صالحة ، فستقوم بتعيين اللغة الخاصة بالطلب. راجع كيفية اكتشاف django تفضيل اللغة </أ>.

بمجرد تمكين LocaleMiddleware وتعيين django_language من ملف تعريف المستخدم في عرض تسجيل الدخول ، يجب أن يعمل كل شيء.

2
وأضاف
كيف أقوم بتشغيل الكود بعد تسجيل الدخول إذا كنت أستخدم contrib.auth.views.login ؟
وأضاف المؤلف Kimvais, مصدر
لا صلة له بهذا السؤال ، ولكن يجب عليك الاستماع إلى user_logged_in signal (فقط على django 1.3+)
وأضاف المؤلف Burhan Khalid, مصدر