Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Опять локализация, ну просто какой-то анекдот.... 
:(
    Опции темы
Budda
  Дата 7.1.2007, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 27.9.2004
Где: Украина, Киев

Репутация: нет
Всего: нет



Сколько ни пробовал сделать локализацию на страничке всё не получалось... Решил отложить "на потом" и идти дальше. Сделал кое-что другое, загрузил скрипты хостеру захожу - и вижу!!! ЧУДО!!! Работает моя локализация...

Вопрос 1. Но почему она не работает у меня на локальном тестовом сервере?
Вопрос 2. Некоторые из локализованных тегов (в частости ... , см. ниже) не русифицируются... почему?
Вот aspx-код проблемной страницы:
Код

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="contact.ascx.cs" Inherits="page_contact" %>
<h3><asp:Localize ID="localContact"  runat="server" meta:resourcekey="localContactHeadRes" Text="Contacts"/></h3>
<center><asp:Localize ID="litMess" runat="server" meta:resourcekey="litMessRes" Text="To send message for us fill form below and press 'Send' button" /></center>
<asp:Table ID="tblSendMessage" runat="server" BackColor="Black" BorderWidth="0px" CellPadding="5" CellSpacing="0" Width="80%" HorizontalAlign="Center">
    <asp:TableRow BackColor="White" runat="server">
        <asp:TableHeaderCell Width="30%" runat="server">
            <asp:Label ID="lblEnterEMail" runat="server" meta:resourcekey="lblEnterEMailRes" Text="Enter your e-mail address" ToolTip="it will be used for callback only" />
        </asp:TableHeaderCell>
        <asp:TableCell runat="server">
            <asp:TextBox ID="txtEMail" runat="server"></asp:TextBox>
        </asp:TableCell>
    </asp:TableRow>
    <asp:TableRow BackColor="White" runat="server">
        <asp:TableHeaderCell runat="server">
            <asp:Label ID="lblSubject" runat="server" meta:resourcekey="lblSubjectRes" Text="Enter letter subject"/>
        </asp:TableHeaderCell>
        <asp:TableCell runat="server">
            <asp:TextBox ID="txtSubject" runat="server"></asp:TextBox>
        </asp:TableCell>
    </asp:TableRow>
    <asp:TableRow BackColor="White" runat="server">
        <asp:TableHeaderCell runat="server">
            <asp:Label ID="lblMessage" runat="server" Text="Enter letter subject" ></asp:Label>
        </asp:TableHeaderCell>
        <asp:TableCell HorizontalAlign="Left" runat="server">
            <asp:TextBox TextMode="MultiLine" ID="txtMessage" runat="server" Width="90%" Rows="10"></asp:TextBox>
        </asp:TableCell>
    </asp:TableRow>
    <asp:TableRow BackColor="White" ID="row4" runat="server">
        <asp:TableHeaderCell ColumnSpan="2" HorizontalAlign="Center" runat="server">
            <asp:Button ID="btnSend" runat="server" meta:resourcekey="btnSendRes" Text="Don't send letter - this is just test form" />
        </asp:TableHeaderCell>
    </asp:TableRow>
</asp:Table>
<br />

Необходимые файлы contact.ascx.resx, contact.ascx.ru.resx - залиты на сервер... Сделал даже для UA: contact.ascx.uk.resx
А вот она сама:
http://asp-test.1gb.ru/lang_eng/contact.aspx

Не знаю, как отобразилось у вас, но у меня на русском выводятся надписи Элементов localContact и lblEnterEMail. Остальные отображаются на английском...

Почему? И как побороть проблему, подскажите, плиз. 

PM WWW   Вверх
mr.DUDA
Дата 9.1.2007, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 5
Всего: 232



Видать, забыл что-то добавить в русскоязычные ресурсы, или resourceKey не совпадает... А ещё, вопрос: как деплоится сайт ? Динамическая компиляция, или подкидывание dll-ок ?


--------------------
user posted image
PM MAIL WWW   Вверх
Budda
  Дата 9.1.2007, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 27.9.2004
Где: Украина, Киев

Репутация: нет
Всего: нет



Деплоится? Всмысле хостеру как выкладывается? Да как угодно: можно и динамическую компляцию, можно и подкидывание dll-ок... а ещё есть вариант, что aspx-файлы остаются модифицируемые а в длл-ки попадает только cs-часть... самое приятное, что это студия сама всё делает.

По поводу "забыл" - это могло бы иметь место в случае, если бы из 10ти строк не прошла только 1... а так... прошло 2 остальные нет... ?
Вот код файла contact.ascx.ru.resx:
Код

<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="btnSendRes.Text" xml:space="preserve">
    <value>Не отправляйте письмо: ещё включен тестовый режим</value>
  </data>
  <data name="lblEnterEMailRes.Text" xml:space="preserve">
    <value>Введите свой электронный адрес</value>
  </data>
  <data name="lblEnterEMailRes.ToolTip" xml:space="preserve">
    <value>он будет использован только для ответа</value>
  </data>
  <data name="litMessRes.Text" xml:space="preserve">
    <value>Чтобы отправить нам сообщение заполните форму и нажмите кнопку "Отправить".</value>
  </data>
  <data name="localContactHeadRes.Text" xml:space="preserve">
    <value>Контакты</value>
  </data>
</root>

В частности для кнопки задано в ресурсах: name=btnSendRes, в коде для неё же:
Код

<asp:Button ID="btnSend" runat="server" meta:resourcekey="btnSendRes"...

Но текст в ней на сайте английский.... 

AddOn1:
Только что заметил, что в ресурсах для btnSend нужно было указать: name=btnSendRes.Text. Исправил, проверил, без изменений... Хм... Для litMess есть litMessRes.Name... тоже не работает... 

Есть идеи?

Это сообщение отредактировал(а) Budda - 9.1.2007, 13:39
PM WWW   Вверх
Budda
Дата 10.1.2007, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 27.9.2004
Где: Украина, Киев

Репутация: нет
Всего: нет



неужели такая простая тема, что ни у кого не возникало подобных проблем? 
PM WWW   Вверх
mr.DUDA
Дата 10.1.2007, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 5
Всего: 232



Грабли обычно возникают там, где лень тестировать по шагам. Ну попробуй создать простой проект с локализованным контролом, и пошагово найти что не так сделано в твоём проекте -- 90% что сам найдёшь ошибку.

СУВ.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0899 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.