Как получить ASP.NET Строка разрешения LocalResources

#c# #asp.net #localization #resx

#c# #asp.net #локализация #resx

Вопрос:

У меня в моем ASP.NET Файл resx приложения Web Forms, локализованный в App_LocalResources fr.aspx.resx, со значением ключа: hello_world.

Теперь я хочу использовать его в моем ASPxLabel на class Page.aspx, поэтому я просто:

 <dx:ASPxLabel ID="0" runat="server" Text="<%$ Resources:fr, hello_world %>"></dx:ASPxLabel>
  

но у меня ошибка: Сообщение об ошибке синтаксического анализатора: объект ресурса с ключом ‘msg’ не найден.

Я уверен, что fr.aspx.resx опубликован, но все равно получил ошибку синтаксического анализатора. Что я делаю не так?

Ответ №1:

Прежде всего, проверьте имя вашего файла ресурсов. Это должно соответствовать следующему условию именования

 pageName.extension.language.resx
  

Если вы используете aspx-название страницы Page.aspx, то у вас должны быть файлы ресурсов со следующим именем.(Вы можете добавить файлы ресурсов для дальнейшего языка и культуры)

 Page.aspx.fr.resx
  

Проверьте, следуете ли вы этому соглашению или нет.

Для получения этого ресурса на странице aspx вы должны следовать приведенным ниже правилам

 <%$Resources:Class,ResourceID%>
  

где Class — это имя файла ресурсов, если он скомпилирован как class, в противном случае это может быть проигнорировано.
resourceId — это ключ в файле ресурсов.
В вашем коде вы устанавливаете ресурс, как показано ниже. Проверьте, есть ли в файле ресурсов кодовая ссылка с именем класса fr.

 Text="<%$ Resources:fr, hello_world %>">
  

Для получения более подробной информации вы можете перейти по следующей ссылке
http://msdn.microsoft.com/en-us/library/ms227427 (v = против 90).aspx

Комментарии:

1. ОК. Моя страница — Acceuil.aspx, поэтому, следуя условию, я меняю: App_LocalResources Accueil.aspx.fr.resx и Text=»<% $ Resources: Accueil, hello_world %>»> по-прежнему выдает мне «Объект ресурса с ключом ‘hello_world’ не найден».

2. Сколько языков вам нужно поддерживать? Если fr является языком по умолчанию, то, пожалуйста, удалите .fr. из имени файла ресурсов. Вы должны назвать свой файл ресурсов как App_LocalResourcesAccueil.aspx.resx. Если у вас есть код для этого (Accueil.aspx.resx.cs), тогда проверьте имя класса. Если у вас нет codebehind, измените на <%$ Resources:hello_world %>

3. Да, это помогает. Я поддерживал только один язык по умолчанию, и после того, как я удалил .fr, это решило проблему.