سؤال

ولدي تطبيق ويب بنيت في asp.net، والذي يستخدم ملفات الموارد لدعم لغات متعددة. المشكلة لدي هي أنني يمكن أن تضيف ملف لغة جديدة في Visual Studio فقط، ويجب أن إعادة إنشاء التطبيق كله أن يكون لها لغة جديدة شملت. بعد البحث على الشبكة لقد تبين أن تجميع ملفات الموارد يمكن القيام به في مجمع صافي. لقد استعملت الأوامر التالية:

وresgen.exe / الترجمة langfile.en.resx

وal.exe /out:en\App_GlobalResources.resources.dll / ثقافة: أون / embedresource: langfile .en.resources

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

وهو محل تقدير حقا أي مساعدة.

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

المحلول

ويمكنك تحقيق ما تريد عن طريق الكتابة الخاصة بك منشئ التعبير الخاص بدلا من استخدام النسخة الموارد المدمج في وسحب المعلومات من قاعدة البيانات أو XML ملفات. في الأساس أن تكتب الفئة الخاصة بك وراثة من System.Web.Compilation.ExpressionBuilder ومن ثم تسجيله في الملف web.config مثل هذا:

<compilation>
  <expressionBuilders>
    <add expressionPrefix="CustomResources" type="CustomResourcesExpressionBuilder"/>
  </expressionBuilders>
</compilation>

وبعد ذلك يمكنك الرجوع إليه مثل الموارد الطبيعية:

<%$ CustomResources:Section, Key %>

ويمكنك أن تجد بعض المواد على هذا هنا و <ل أ href = "http://jason.diamond.name/weblog/2006/01/10/a-configurable-resources-expression-builder" يختلط = "نوفولو noreferrer"> هنا .

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