Локализовать приложение ASP.NET WebForm, используя файлы ресурсов - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть приложение ASP.NET WebForms на основе c #.

У меня есть входной текст

<input type="text" id="txtUsername" name="username" runat="server"
       placeholder="<%$ Resources:Resource, Username %>" />

и метка

<label for="Username"><%= Resources.Resource.Username%></label>

, также я создаю 2 файла ресурсов Resource.resx и Resource.en-GB.resx в App_GlobalResources

Resource.resx:

Имя пользователя: имя пользователя

Resource.en-GB.resx:

Имя пользователя: электронная почта

Когда пользователь переключается между языками, я использовал следующиекод

System.Threading.Thread.CurrentThread.CurrentUICulture = new 
System.Globalization.CultureInfo(code);
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(code);
Resources.Resource.Culture = new System.Globalization.CultureInfo(code);

и код будет равен en или en-GB в зависимости от выбора пользователя.

Проблема:

Когда мы запускаем проект и код = ru-RU , ресурсы метки отображаются как Resource.en-GB.resx (электронная почта) в то время как местодержатель как Resource.resx (имя пользователя) .

Это значит <% = Resources.Resource.Username%> работает отлично, в то время как изменение культуры не меняетсяРесурсы <% $: Ресурс, Имя пользователя%> .

Есть предложения?

1 Ответ

0 голосов
/ 12 декабря 2018

Предполагая, что переменная "code" в вашем коде является кодом культуры:

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

надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...