سؤال

ما هي أفضل طريقة لدعم لغات متعددة للواجهة في تطبيق ASP.NET MVC؟لقد رأيت أشخاصًا يستخدمون ملفات الموارد لتطبيقات أخرى.هل ما زالت هذه هي الطريقة الأفضل؟

هل كانت مفيدة؟

المحلول

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

يكون هذا منطقيًا عندما تفكر في الأمر لأن الموارد المحلية هي محلية لصفحة aspx وفي وحدة التحكم، لم تقم حتى بتحديد طريقة العرض الخاصة بك.

نصائح أخرى

وجدت هذا المورد أن تكون مفيدة للغاية

إنه غلاف مستدير HttpContext.Current.GetGlobalResourceString و HttpContext.Current.GetLocalResourceString الذي يسمح لك باستدعاء الموارد مثل هذا ...

// default global resource
Html.Resource("GlobalResource, ResourceName")

// global resource with optional arguments for formatting
Html.Resource("GlobalResource, ResourceName", "foo", "bar")

// default local resource
Html.Resource("ResourceName")

// local resource with optional arguments for formatting
Html.Resource("ResourceName", "foo", "bar")

المشكلة الوحيدة التي وجدتها هي أن وحدات التحكم لا يمكنها الوصول إلى سلاسل الموارد المحلية.

نعم، لا تزال الموارد هي أفضل طريقة لدعم لغات متعددة في بيئة .NET.لأنه من السهل الرجوع إليها ومن الأسهل إضافة لغات جديدة.

Site.resx
Site.en.resx
Site.en-US.resx
Site.fr.resx
etc...

لذلك أنت على حق لا تزال تستخدم ملفات الموارد.

يستخدم مشروع Orchard أسلوب اختصار يسمى "T" للقيام بجميع ترجمات السلسلة الموجودة في الصفحة.لذلك سترى علامات تحتوي على @T("سلسلة للترجمة").

أنوي إلقاء نظرة على كيفية تنفيذ ذلك خلف الكواليس وإمكانية استخدامه في المشاريع المستقبلية.يحافظ الاسم المختصر على نظافة الكود حيث سيتم استخدامه كثيراً.

ما يعجبني في هذا الأسلوب هو أن السلسلة الأصلية (الإنجليزية، في هذه الحالة) لا تزال مرئية بسهولة في الكود، ولا تتطلب البحث في أداة الموارد أو أي موقع آخر لفك تشفير السلسلة الفعلية التي يجب أن تكون هنا.

يرى http://orchardproject.net لمزيد من المعلومات.

بعض الحلول الأخرى المذكورة كإجابة لا تعمل مع الإصدار الذي تم إصداره من MVC (كانت تعمل مع الإصدارات السابقة من alpha/beta).

فيما يلي مقالة جيدة تصف طريقة تنفيذ الترجمة التي سيتم كتابتها بقوة ولن تؤدي إلى كسر اختبار الوحدة لوحدات التحكم وطرق العرض: دليل الترجمة لـ MVC v1

هذا خيار آخر، وسيكون لديك حق الوصول إلى CurrentUICulture في وحدة التحكم:

يفحص MVC3 متعدد اللغات

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