سؤال

أنا مجرد بداية لتوطين أحد ASP.NET MVC التطبيق.معظم السلاسل التي سيتم تعريفها في الموارد الملفات و استرجاعها عبر مات التعريب المساعدين.سلاسل أخرى يجب أن يتم تخزينها في قاعدة البيانات.

سؤالي: يجب تعيين CurrentUICulture في وقت مبكر في طلب خط أنابيب واستخدام ذلك في جميع أنحاء التطبيق أو استخدام مباشرة Request.UserLanguages[0] كلما لزم الأمر ؟

الآن أنا أفكر مجموعة CurrentUICulture في Application_BeginRequest.تنفيذ ننظر بشيء من هذا القبيل:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    var cultureName = HttpContext.Current.Request.UserLanguages[0];
    Thread.CurrentThread.CurrentUICulture = new CultureInfo(cultureName);
}

هذا هو أفضل مكان CurrentUICulture و هو Request.UserLanguages[0] أفضل مكان للحصول على هذه المعلومات ؟


تحديث:

ارييل آخر يدل على هذا يمكن تعريف بدون كود, باستخدام web.config

<system.web>
  <!--If enableClientBasedCulture is true, ASP.NET can set the UI culture and culture for a Web page automatically, based on the values that are sent by a browser.-->
  <globalization enableClientBasedCulture="true" culture="auto:en-US" uiCulture="auto:en"/>
هل كانت مفيدة؟

المحلول

هنا عينة باستخدام HttpModule:

http://weblogs.manas.com.ar/smedina/2008/12/17/internationalization-in-aspnet-mvc/

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

نصائح أخرى

طلب.UserLanguages[0] يمكن أن يكون إلا تلميحا ما اللغة المستخدمين تود أن ترى.معظم المستخدمين لا يعرفون إلى أين تغيير لغة المتصفح.

نقطة أخرى:لا يكون متأكد من هذا الطلب.UserLanguages[0] هو صالح اللغة.حتى أنها يمكن أن تكون فارغة.(غير متأكد ما البوتات يكون هناك)

لديك عادة لغة مختار على الصفحة.مرة واحدة للمستخدم اختيار اللغة هناك, يتم تخزينها في ملف تعريف ارتباط جلسة العمل أو url.أود أن استخدام url لأنني أعتقد أنها تبدو جميلة.

إذا كان المستخدم يرى الصفحة الخاصة بك دون الحاجة تعيين اللغة على الصفحة الخاصة بك, يجب عليك التحقق إذا طلب.UserLanguages[0] هو لغة دعم مجموعة الصفحات.CurrentThread.CurrentUICulture.

يمكنني استخدام عامل تصفية مجموعة الصفحات.CurrentThread.CurrentUICulture.هذا موافق طالما يوجد مرشح آخر هو استخدام الخيط.CurrentThread.CurrentUICulture.وإلا فإنك سوف تحتاج إلى تعيين الحق في تنفيذ أمر المرشحات.

أود أيضا أن استخدام Matts مساعد وانها عملت بشكل جيد جدا حتى الآن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top