none
Файлы ресурсов RRS feed

  • Вопрос

  • День добрый. Что то ничего не получается с ресурсами
    есть страница AnketaForPrint.aspx
    создал файл ресурсов с именем AnketaForPrint.aspx.ru-ru.resx

    в коде указал так
    Page.Culture = "ru-ru";
    Page.UICulture = "ru-ru";

    Вызывал так meta:resourcekey="Button1" ничего
    <asp:Button ID="Button1" runat="server"
    Text="<%$ Resources:WebResources, Button1Caption %>" /> ошибка Объект ресурса с ключом 'Button1Caption' не найден.

    В докладе Гайдара в о вкладке сервис можно создать локальный ресурс для страницы но у меня этот пункт не активный ... файл ресурсов содавал сам... Подскажите что как

Ответы

  • да проблема не вресурсах проблема в определении культуры <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AnketaForPrint.aspx.cs" Inherits="WebApplication.AnketaForPrint"

    uiculture="ru-ru" %> менял тоже не отображает ...  свой XML лучше считаю наверно быстрее будет .... 

Все ответы

  • А где именно Вы сохраняете свой файл ресурсов, в какой директории?
    Модератор
  • Суда App_GlobalResources пробовал и суда App_LocalResources
  • Значит когда используете локальные ресурсы, как в Вашем случае, то Ваш файл AnketaForPrint.aspx.ru-ru.resx поместите в директорию App_LocalResources. Он должен выгдядеть примерно так

    А разметка кода такая

    <asp:Button ID="Button1" runat="server" meta:resourcekey="Button1Resource1" />

    тогда всё заработает. И не надо смешивать глобальные и локальные ресурсы.


    Модератор
  • Сам в шоке ) Делаю так вот как на скринах ... результ пустая кнопочка....

  • А региональные стандарты у Вас в Windows какие выставлены, операционная система и браузер на какм языке?
    Модератор
  • Россия место расположение Россия . Браузер опера русский вариант ...
  • Стер ru-ru взял как файл ресурсов по умолчанию ... у меня задача такая по кнопке печать ... либо на одном языке либо на другом... может как то надо правильно переопределять культуру 

  • Сделаю предположение, что у Вас Opera на английском или региональные стандарты на английском, если нет тогда opera косячит, попробуйте также через IE например. В таком случае всё работает правильно.

    "Делаю так вот как на скринах ... результ пустая кнопочка...." - пустая кнопочка потому, что ASP.NET берёт текущую локаль в Вашем случае не "ru-ru", а другое "en-us", наверное, а так как дефолтового файла AnketaForPrint.aspx.resx у Вас нет, то и неоткуда поставить соответствующие значения. Попробуйте переопределить явно

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AnketaForPrint.aspx.cs" Inherits="WebApplication.AnketaForPrint"

    uiculture="auto" %>

    вместо uiculture="auto", задать uiculture="ru-ru", так точно будет работать.

    Модератор
  • да проблема не вресурсах проблема в определении культуры <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AnketaForPrint.aspx.cs" Inherits="WebApplication.AnketaForPrint"

    uiculture="ru-ru" %> менял тоже не отображает ...  свой XML лучше считаю наверно быстрее будет .... 
  • Да, не заметил, что Вы уже ответили. А если нужно динамически, всё это сделать, то укажите

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AnketaForPrint.aspx.cs" Inherits="WebApplication.AnketaForPrint"

    UICulture="auto" Culture="auto" %>

    а в коде

    namespace WebApplication
    {
      public partial class AnketaForPrint : System.Web.UI.Page
      {
        protected void Page_Load(object sender, EventArgs e)
        {
          
        }
        /*Меняйте именно тут, так как метод вызывается очень рано 
        в жизненном цикле страницы, до создания элементов управления 
        и установки свойств страницы, в другом месте не сработает.*/
        protected override void InitializeCulture()
        {
          Page.Culture = "ru-ru";
          Page.UICulture = "ru-ru";
        }
      }
    }

    и всё, страница готова.

    Модератор
  • "менял тоже не отображает ...  свой XML лучше считаю наверно быстрее будет .... " -  а у Вас случайно культура в web.config не прописана глобально? А то все варианты предложенные мной 100% рабочие.
    Модератор
  • в конфиге сам лично ничего не вписывал .... ) В робота способности вариантов не сомневаюсь !... и если убрать с названия ru-ru  AnketaForPrint.aspx.resx все названия подхватываются и отображаются . так же писал

     protected override void InitializeCulture()
        {
          Page.Culture = "ru-ru";
          Page.UICulture = "ru-ru";
        }

    результата 0. Разъяснения все равно спасибо !