#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, это решило проблему.