Я создал два файла ресурсов: «SOSResources.en.resx» и «SOSResources.pt.resx».Aspx и aspx.cs Получение строк из разных файлов resx
На моей странице aspx, когда я пытаюсь использовать строку из этих файлов, как показано ниже, я получаю ее из стандартного файла resx на английском языке.
asp:Literal ID="btnDelete_Text" Text="<%$Resources:SOSResources, String1%>"
Однако, если я пытаюсь получить ту же строку на код-за, как показано ниже, я получаю из файла португальского языка (который является языком пользователя).
btnEdit_Text.Text = Resources.SOSResources.String1
Следующий код используется для обработки этого процесса. Предполагается выбрать язык пользователя или английский, если эта информация недоступна. Тем не менее, только пример из кода-кода получает пользовательский язык. Пример с страницы aspx всегда получает строки из английского файла resx.
protected override void InitializeCulture()
{
string lang;
if (ActiveUser != null && ActiveUser.Language != null)
{
lang = ActiveUser.Language;
}
else
{
lang = "en";
}
Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
base.InitializeCulture();
}
Может кто-нибудь мне помочь? Как я могу заверить, что в обоих случаях страница будет получать строки с соответствующего языка? Я не уверен, что это правильный способ выполнить глобализацию в .NET.
Что такое значение 'lang' переменной, которая передается в' CultureInfo'? – Kamo
Это значение ActiveUser.Language: код языка, такой как «en», «pt» или «es», в зависимости от пользователя. Или, если эта информация не существует в базе данных, «en» (стандартный язык для системы). – TC55