Файлы ресурсов на арабском языке не выбираются веб-сайтом ASP.NET - PullRequest
0 голосов
/ 13 декабря 2011

Я работаю над проектом, в котором есть модуль веб-приложения, который генерирует локализованные электронные письма по запросу.Приложение требует локализации HTML-шаблонов для нескольких языков.Я решил использовать файлы ресурсов asp.net, так как расположение электронной почты вряд ли изменится, а количество необходимых ключей было относительно небольшим.

Я использую Глобальные ресурсы и у меня есть около 15 различных файлов ресурсов для требуемых локалей.У меня есть файл ресурсов по умолчанию на английском языке («EmailTemplates.resx») и несколько локализованных файлов ресурсов («EmailTemplates.ru-RU.resx», «EmailTemplates.zh-CN.resx», «EmailTemplates.it-IT.resx»)."," EmailTemplates.id-ID.resx "и т. Д.).

Среди файлов ресурсов у меня есть два арабских:" EmailTemplates.ar-AE.resx ", что на самом деле на английском языке и" EmailTemplates.ar-SA.resx ", который на арабском языке.

Все электронные письма для неарабских языков работают отлично.Приложение подбирает нужный языковой стандарт и использует соответствующие файлы ресурсов.Но когда я пытаюсь запросить арабские, они всегда возвращаются к файлу ресурсов по умолчанию.

Способ настройки культуры основан на запрошенных данных, а не на настройках браузера:

Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);

Во время отладки я вижу, что CultureInfo правильно установлен на «ar-SA» или «ar-AE», но когда приложение получает соответствующее значение ресурса, оно всегда выбирает значение по умолчанию.

Я ввел арабские данные в файл ресурсов по умолчанию для целей тестирования, и арабский текст отображается очень хорошо, поэтому я уверен, что это не проблема шрифта или макета HTML.

Я искал по всему Интернету, доказал разные подходы, и не повезло.«Ar-SA» и «ar-AE» являются действительными значениями CultureInfo, и приложение компилируется без проблем, но кажется, что всякий раз, когда я запрашиваю арабские электронные письма, приложение не может найти арабские файлы ресурсов.

Есть идеи?Буду очень признателен за любые хиты и помощь!

Ура!

1 Ответ

1 голос
/ 15 марта 2015

Пожалуйста, используйте язык без информации о культуре Например. EmailTemplates.ar.resx

потому что браузер, который вы используете, может не иметь арабский язык в разных культурах, как я проверил с помощью chrome. Или попробуйте добавить язык с этой культурой. Например, ar-AE ar-SA и т. Д., Но в любом случае он имеет арабский язык без культура и это работает.

...