Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Столбец поддержки голосовых ASP.NET

Чтобы настроить этот столбец в соответствии с вашими потребностями, мы предлагаем вам представить свои идеи по интересующим вас темам и проблемам, которые вы хотите рассмотреть в будущих статьях базы знаний и в столбцах поддержки голосовой связи. Вы можете отправить свои идеи и отзывы с помощью формы "Запросить". Кроме того, в нижней части этого столбца находится ссылка на форму.

Введение

Приветствовать! Это Сукеш Харе из группы поддержки разработчиков Microsoft ASP.NET. Это первый раз, когда я создаю столбец "Голос поддержки". Я с нетерпением жду создания больше таких столбцов в ближайшие месяцы.

В колонке этого месяца я собираюсь обсудить проблемы глобализации в Active Server Pages (ASP) и ASP.NET, проблемы, с которыми мы сталкиваемся в ASP, как изменилось в ASP.NET 1x, и что происходит с ASP.NET 2.0 на фронте глобализации.

Примечание. Если вы столкнулись с термином, который вы не понимаете, см. раздел Глоссарий в нижней части этого столбца.

Проблемы с глобализацией в ASP

До ASP.NET не было структурированной поддержки разработки приложений для глобальных пользователей. На ранних этапах разработки ASP такие разработчики, как я, нашли лишь разрозненные поддержку глобализации в операционных системах, браузерах, ASP и внутренних системах. Однако мы редко наблюдали автоматическое подключение между этими приложениями. К счастью, мы поняли такие понятия, как наборы символов, кодовые страницы, языки браузера и шрифты, которые можно было бы использовать для разработки приложений для глобальных пользователей.

Было бы слишком трудно разделить на категории все проблемы глобализации, которые мы в ASP.NET видели. Вместо этого я перечислим ряд концепций, связанных с различными этими вопросами.

Наборы символов и кодовые страницы

Мы все знаем, что символы на экране нашего компьютера являются всего лишь серией байтов. Ряд байтов можно создавать и интерпретировать любым способом. Если интерпретация использует кодировку, которая отличается от кодировки, с помощью которую был создан массив байтов, интерпретация будет отображаться как мусор. Наборы символов (наборы символов) — это форматы кодирования, которые обычно используются браузерами. Свойство Codepage, которое более применимо для преобразований на стороне сервера, — это просто таблица преобразований, в которой указывается способ кодирования символов.

Браузеры кодируют данные о публикации формы в соответствии с текущим набором символов. Если текущий набор символов — "windows-1256", то передача байтов на сервер также кодируется как "windows-1256".

При интерпретации ASP коллекции Form и Querystring не создаются до тех пор, пока на них не будут ссылаются в коде. При их сборке строковые данные преобразуются в Юникод в соответствии с текущей кодовой страницой. (По умолчанию asp и ASP.NET обрабатывают содержимое в формате Юникода. Очень важно задать правильную кодовую страницу перед ссылкой на коллекции; В противном случае представление Юникода в памяти будет неправильным.

Чтобы задать кодовую страницу, используйте Session.Codepage или Response.Codepage. Response.Codepage доступна только в Microsoft IIS (IIS) 5.1 или более поздних версиях. Сведения о целочисленных значениях (которые соответствуют набору символов), которым мы задали бы эти свойства, см. на следующем веб-сайте Майкрософт:

Распознавание набора
символов http://msdn2.microsoft.com/en-us/library/Aa752010.aspxНапример, чтобы задать кодовую страницу для арабского языка, используйте следующий код:

Session.Codepage = 1256

Response.Codepage будет влиять только на текущий ответ. Однако Session.Codepage повлияет на все ответы, сделанные текущим пользователем. Если кодовая страница задается с помощью одного из этих свойств и создаются коллекции Form и Querystring, это изменение в текущей кодовой страницы приводит к тому, что метод Response.Write преобразует Юникод в памяти в текущую кодовую страницу. Дополнительные сведения об этом разделе см. на следующем веб-сайте MSDN:

Задание кодовой страницы для преобразования строк (ASP) http://msdn2.microsoft.com/en-us/library/ms525789.aspx. В итоге, когда речь заходит о проблемах, связанных с наборами символов и кодовыми страницами, является то, что кодовая страница клиента и серверная кодовая страница должны совпадать.

Принять языки

Если разработчик ASP хочет узнать, какие языки заданы пользователем в браузере, он может использовать переменную Request.ServerVariables ("HTTP_ACCEPT_LANGUAGE"), чтобы найти список языков, в которых пользователь хотел бы прочитать ответ (например, английский, немецкий или индийский), а также порядок предпочтений, в которых пользователь хотел бы видеть эти языки. В ASP.NET аналогичные сведения содержатся в свойстве Request.UserLanguages в виде массива.
Чтобы получить дополнительные сведения об использовании этих сведений в коде ASP, щелкните следующий номер статьи, чтобы просмотреть статью в базе знаний Майкрософт:

229690 Настройка идентификатора языковОГО стандарта ASP в соответствии с языковыми параметрами браузера
 

Отображение многобайтовых наборов символов в Обозреватель Интернета

Единственным форматом кодирования, который может отображать многобайтовый набор символов, является Юникод (UTF-8). С помощью UTF-8 мы можем отображать кириллицу, индийскую и японскую на одной странице. Если мы не используем UTF-8, мы можем одновременно показывать только один из этих языков. Чтобы задать набор символов браузера, используйте свойство Response.CharSet.

Статические многобайтовые символы на странице

Чтобы отобразить многобайтовые символы, хранящиеся непосредственно на странице, необходимо сначала сохранить страницу с определенной кодировкой. UTF-8 будет лучшим, но также будет работать определенная кодовая страница (соответствующая кодовой странице символов).

Сохранение ASP-файла с помощью Microsoft Visual InterDev здесь не помогает, так как Visual InterDev может сохраняться только на английском языке ANSI или Юникоде. Все страницы ASP, сохраненные в Юникоде, не поддерживаются ASP.

В Microsoft Visual Studio .NET можно сохранить файл в любой кодировке. Это можно сделать двумя способами. По умолчанию файл можно сохранить с помощью текущей кодовой страницы для пользователя. Дополнительный способ сохранения файла с кодировкой заключается в следующем:
В меню Файл выберите команду Сохранить файл как.
В диалоговом окнеСохранить файл как щелкните стрелку раскрывающегося списка на кнопке
Сохранить. Щелкнув стрелку, будут доступны
параметрыСохранить и Сохранить с кодировкой. При нажатии кнопки
Сохранить с кодировкой откроется диалоговое окно Дополнительные параметры сохранения , в котором можно выбрать тип кодирования, который требуется применить, из списка кодовых страниц, установленных на компьютере.


Примечание. При этом изменяется кодировка для операции сохранения, но только для одного раза. Для следующего сохранения будет задано значение по умолчанию.

Чтобы изменить кодовую страницу по умолчанию, щелкните Дополнительные параметры сохранения в
менюФайл. В диалоговом окне Дополнительные параметры сохранения можно задать кодировку по умолчанию для операций сохранения для выбранной кодовой страницы.

Эти методы связаны с сохранением файла на диске. Однако для управления выходными данными для ASP, как уже обсуждалось, необходимо задать свойства Session.CodePage и Response.CharSet. В iis 5.1 и более поздних версиях также можно использовать свойство Response.CodePage.

CodePAGE по умолчанию на сервере

Языковой стандарт по умолчанию и кодовая страница по умолчанию для страницы зависят от параметров реестра для . Пользователь DEFAULT. Международный раздел можно найти в реестре hiveHKEY_USERS\.DEFAULT\Control Panel\International. Мы также можем изменить поведение языкового стандарта, выбранного службами IIS.

Если пользователь, выполнивший вход, имеет тот же языковой стандарт, что и указанный выше ключ или системное значение по умолчанию, приоритет имеет параметр пользователя.

Пример. Языковой стандарт по умолчанию имеет формат даты 11.1.2004, а пользователь, выполнивший вход (с тем же языковым стандартом), имеет формат даты 11.1.2004. Параметр 11.01.2004 вступит в силу для ASP.

(Для ASP.NET это может отличаться. В некоторых установках у пользователя ASPNET будет собственный профиль, который будет отображаться в HKEY_USERS при загрузке. В других он будет использовать . Профиль DEFAULT. Мы также можем использовать атрибут codepage в объявлении <%@ %>. Этот код следует использовать при сохранении файла с другой кодировкой, а затем по умолчанию, например кодовая страница 932 (японский)).

Проблемы с codepage и проблемы с преобразованием шрифтов: что такое?

Иногда может отображаться вопросительный знак (?) или поле, в котором должен отображаться символ.

Проблемы с преобразованием codepage

Когда символ заменяется символом вопросительного знака (?), это свидетельствует о том, что возникла проблема преобразования кодовой страницы. Вопросительный знак (?) является символом по умолчанию для преобразования кодовой страницы и в основном означает, что операционная система не знает, как обрабатывать значение символа и преобразовывать его. Он заменяет значение символа вопросительным знаком (?). Это может означать, что символ имеет недопустимое значение для codepage или что кодовая страница, необходимая для преобразования, не установлена.

Проблемы с преобразованием шрифтов

Когда символ заменяется полем, это свидетельствует о том, что возникла проблема с преобразованием шрифта. Это происходит на стороне клиента, если на клиенте не установлен правильный шрифт для правильного отображения этого символа. Например, если символ является символом из японского символа, а на клиенте не установлены японские шрифты, японский символ отображается в виде поля.

Далее я расскажу о том, как все изменилось в ASP.NET 1.x, и как эти изменения влияют на проблемы глобализации в контексте ASP.NET.

Проблемы глобализации в ASP.NET 1.x:

С ASP.NET были введены три великих вещи:

  • Тег> глобализации <в файле
    web.config Тег <глобализации> уводит нас от некогерентных концепций кодовых страниц и наборов символов и позволяет контролировать большинство вариантов в ASP.NET.

  • Пространство
    имен System.Globalization Пространство имен Globalization предоставляет нам программные возможности обработки глобализации.

  • Значительно улучшена концепция файлов ресурсов.
    Мы не имеем дело с файлами ресурсов так, как раньше в ASP. Теперь файлы ресурсов имеют форму XML-файлов, когда мы их проектируем и разрабатываем, и они существуют в виде сборок во время выполнения.

Тег конфигурации глобализации:

Ниже перечислены два важных параметра тега.

<globalization 
            requestEncoding="utf-8" 
            responseEncoding="utf-8"  />

Ниже приведены другие возможные области параметров.

fileEncoding

Задает кодировку по умолчанию для анализа файлов ASPX, ASMX и ASAX. Файлы Юникода и UTF-8, сохраненные с префиксом метки порядка байтов (с подписью), будут автоматически распознаны независимо от значения fileEncoding.

Культуры

Задает язык и региональные параметры по умолчанию для обработки входящих веб-запросов (применимо к методам классов из пространства имен System.Globalization).

uiCulture

Задает язык и региональные параметры по умолчанию для обработки поиска ресурсов, зависящих от языкового стандарта (вспомогательные сборки).

Дополнительные сведения о строках языка и региональных параметров (значения языка и региональных параметров и пользовательской культуры) см. на следующем веб-сайте Майкрософт:

System.Globalization.CultureInfoClass
http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxЭти параметры применяются ASP.NET после завершения ответа и перед отправкой запроса в приложение. Для responseEncoding буфер, созданный для хранения выходных данных, задается в эту кодировку. Все, что входит в этот буфер, будет закодировано в соответствии с параметром при вставке в буфер.

Для requestEncoding среда выполнения считывает запрос и интерпретирует его в соответствии с параметром в этом разделе. Однако это параметр, который может вызвать проблемы. В таблице ниже показан битовый макет допустимой последовательности байтов UTF-8.

Если значение символа попадает в 7-разрядный стандарт ASCII, значение байтов не изменяется. Если значение выше 127, оно должно соответствовать приведенным ниже правилам. В начале набора битов показано, сколько символов в последовательности. Каждый байт после первого должен начинаться с первого бита, равным 1.

Макет байтов UTF-8:

Байт

Биты

Представление

1

7

0vvvvvvvv

2

11

110vvvvv 10vvvvvv

3

16

1110vvvv 10vvvvvv 10vvvvvv

4

21

11110vvvv 10vvvvvv 10vvvvvv

Вот где возникает проблема. Если браузер кодирует запрос в соответствии с одной кодировкой байтов (например, iso-8859-1), значения выше 127 будут недопустимыми в соответствии с приведенным выше макетом. Когда они считываются в буфер UTF-8, недопустимые символы просто удаляются из выходных данных.

Изменения кодирования среды выполнения

В событии Application_BeginRequest мы можем изменить значение requestEncoding и привести его в действие до обработки запроса. Для ответа событие Page_PreRender является последним шансом изменить кодировку выходных данных. Кроме того, обратите внимание, что response.Write помещает символы в этот буфер, как только мы его назовем, поэтому убедитесь, что перед использованием Response.Write задан правильный код.

Исходные данные не используются в Юникоде. Как по-прежнему интерпретировать многобайтовые наборы символов в Интернете Обозреватель?

При необходимости мы также можем заставить ASP.NET вести себя как ASP. Чтобы это произошло, необходимо задать для responseEncoding и requestEncoding значение windows-1252 (более полная кодировка, чем iso-8859-1), и использовать свойство Response.Charset для правильного отображения текста. Это работает, так как windows-1252 представляет собой схему кодирования с одним байтом и не изменяет байты, добавляемые в буфер. Таким образом, двухбайтовые символы отправляются в виде ряда одинарных байтов. Затем мы можем сообщить интернет-Обозреватель, как интерпретировать байты с помощью свойства Response.Charset. Этот сценарий может потребоваться, если исходные данные не хранятся как Юникод или UTF-8, например возвращаемое значение из COM-объекта, или если данные хранятся в Microsoft SQL Server в поле, отличном от N (например, varchar).

проблемы SQL Server и ASP.NET глобализации

Входные данные Юникода в SQL Server

Лучший способ хранения данных в SQL Server — использовать Юникод. При использовании инструкций INSERT, UPDATE и т. д. При наличии хотя бы минимальной вероятности использования данных Юникода необходимо добавить N перед значением. Это сообщает базе данных, что значение — Юникод. Хорошим примером этого являются объекты ADO. Они делают это автоматически, если мы используем объект Recordset для добавления новых записей.

Ниже приведен пример.

INSERT INTO MusicAlbum (Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'Abida', 4653, 403)
Or:
Dim t As String = "INSERT INTO MusicAlbum(Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'" & TextBox1.Text & "', 4653, 403)"
Ввод даты и времени для SQL Server

Обычно мы обладаем знаниями о региональных параметрах и языковых стандартах даты и времени, интерпретируемых в приложении ASP.NET. Однако при отправке и извлечении данных даты и времени из внешних источников мы рискуем неправильно истолковать форматы даты и времени. Это связано с тем, что мы не всегда можем гарантировать, что язык и региональные параметры внешнего источника совпадают с языком и региональными параметрами в нашем приложении. В SQL Server это можно решить с помощью атрибута current language в области соединения, устанавливаемого с базой данных SQL. Мы можем предоставить тот же языковой параметр в connectionstring, что и язык и региональные параметры в нашем приложении. Это защищает нас от риска неправильного толкования, так как SQL Server всегда принимает и отправляет данные даты и времени в соответствии с указанным выше параметром.

Пространство имен System.Globalization

Это пространство имен является ядром глобализации и локализации в платформа .NET Framework. Класс main, используемый в этом пространстве имен, — это класс CultureInfo. Он содержит сведения, относящиеся к языку и региональным параметрам, например формат даты и времени, числовые форматы, сведения о сравнении и текст. Дополнительные сведения о классе CultureInfo см. на следующем веб-сайте MSDN:

http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxCultureInfo

Нейтральные язык и региональные параметры и региональные параметры

Нейтральный язык и региональные параметры — это язык, связанный с языком, но не конкретной страной или регионом. Определенный язык и региональные параметры связаны как с языком, так и с определенной страной или регионом.

Пример: "DE" (нейтральный язык и региональные параметры) относится к немецкому языку, а "de-AT" (определенный язык и региональные параметры) — для немецкого языка, на котором говорят в Австрии. Нейтральные язык и региональные параметры нельзя использовать для форматирования.

Сведения о текущем потоке и региональных параметрах платформа .NET Framework классах

Все классы и методы в библиотеке платформа .NET Framework, где предполагается, что выходные данные зависят от языка и региональных параметров, имеют два встроенных поведения:

  • Они позволяют указать код языка и региональных параметров при вводе аргументов, чтобы выходные данные основывались на указанном языке и региональных параметрах. Это необязательно.

  • Если этот параметр отсутствует (обычно это так), классы достаточно интеллектуальны, чтобы сохранить проверка в свойстве Thread.CurrentThread.CurrentCulture и работать в соответствии с этим.

Мы можем изменить значение этого свойства с помощью кода, аналогичного следующему:

    Dim ci As CultureInfo
        ci = New CultureInfo("de-AT")
        Thread.CurrentThread.CurrentCulture = ci

В этом примере кода "de" представляет немецкий язык, а "AT" — Австрию. Таким образом, в этом экземпляре — dateTime.Now(). Метод ToString возвращает дату и время в формате, соответствующем способу выражения даты и времени на немецком языке в Австрии.

Платформа гарантирует , что свойство CurrentCulture всегда инициализируется (как показано ниже):

  1. Все, что задано программным способом.

  2. Если программист явно не задал его, свойство выбирается из файлов конфигурации (<тег> глобализации).

  3. Если свойство отсутствует, это язык и региональные параметры, на котором выполняется веб-сервер. Обычно это нейтральный язык и региональные параметры, соответствующие языку операционной системы.

Файлы ресурсов

Все RESX-файлы, файлы .resource и файлы с атрибутом Действие сборки, для которых задано значение Внедренный ресурс, которые добавляются в проект ASP.NET в Visual Studio .NET, автоматически компилируются и внедряются в сборку приложения как часть манифеста. Это можно даже сделать вручную с помощью программы генератора файлов ресурсов (RESGEN) с помощью командной строки Visual Studio .NET. Дополнительные сведения см. на следующей странице веб-узла MSDN:

http://msdn2.microsoft.com/en-us/library/ccec7sz1(vs.71).aspxЭто общая концепция, которая применима всякий раз, когда нам нужно управлять ресурсами приложений, которые не связаны с глобализацией. Однако при реализации глобализации следует использовать вспомогательные сборки.

Вспомогательные сборки

Вспомогательные сборки можно использовать в проекте ASP.NET, если убедиться, что выполняются следующие действия:

  1. Все элементы пользовательского интерфейса во всех aspx-файлах должны быть оснащены атрибутами id и runat=server.

  2. Мы создаем отдельные RESX-файлы. Каждый из них должен соответствовать каждому языку и региональным параметрам, которые должны поддерживаться приложением.

  3. Мы должны выбрать общее имя для всех этих файлов, например. "Строки".

  4. Мы присвоим отдельным RESX-файлам следующее соглашение об именовании commonfirstname. languagecode-regioncodeRESX-файл (например, Strings.de-AT.resx, Strings.en-GB.resx ).

  5. У нас должен быть файл
    ресурсовcommonfirstname.resx (Strings.resx), который содержит все строки, которые должны отображаться в случае по умолчанию.

  6. Напишите код для обнаружения языка и региональных параметров пользователя и задайте для свойства Thread.CurrentThread.CurrentUICulture соответствующее ему значение.

  7. Напишите код для загрузки ресурсов с помощью класса ResourceManager.

  8. Напишите код для извлечения строк из загруженного объекта и назначения их элементам пользовательского интерфейса.

После выполнения этих действий Visual Studio.NET компилирует Strings.resx и внедряет его в сборку приложения (MyGlobalizationTestProjectName.dll). Однако для всех остальных RESX-файлов будут создаваться отдельные DLL-файлы, которые не имеют исполняемого кода, а только данные ресурсов. На самом деле они называются вспомогательными сборками. Кроме того, Visual Studio .NET помещает их в структуру папок, аналогичную следующей:MyGlobalizationTestProjectName
|------- bin
|-------США

MyGlobalizationTestProjectName.resources.dll |------ja-JP

MyGlobalizationTestProjectName.resources.dll |------de-AT
MyGlobalizationTestProjectName.resources.dll

Разница между CurrentCulture и CurrentUICulture

Хотя методы классов в пространстве имен System.Globalization зависят от свойства Thread.CurrentThread.CurrentCulture для предоставления выходных данных, класс ResourceManager, загружающий сборку ресурсов, зависит от свойства Thread.CurrentThread.CurrentUICulture для загрузки соответствующей вспомогательной сборки. Ниже приведен пример кода C#:

using System.Globalization;
using System.Threading;
using System.Resources;

//Load resources. 
protected ResourceManager gStrings = new ResourceManager("MyGlobalizationTestProjectName.strings", typeof(MyTestWebFormName).Assembly);

// Get the user's preferred language.
string sLang = Request.UserLanguages[0];
// Set the thread's culture for formatting, comparisons, etc.   
Thread.CurrentThread.CurrentCulture =  CultureInfo.CreateSpecificCulture(sLang);
// Set the thread's UICulture to load resources
// from satellite assembly.
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sLang);

private void Page_Load(object sender, System.EventArgs e) 

{ 

 if (!IsPostBack)  

 {      
// Get strings from resource file and assign to UI elements.
head1.InnerHtml = gStrings.GetString("satellite.head1");
p1.InnerHtml = gStrings.GetString("satellite.p1");
sp1.InnerHtml = gStrings.GetString("satellite.sp1");
sp2.InnerHtml = gStrings.GetString("satellite.sp2");
butOK.Text = gStrings.GetString("satellite.butOK");
butCancel.Value = gStrings.GetString("satellite.butCancel");
   }

 }

Порядок выбора вспомогательных сборок ASP.NET:

После задания CurrentUICulture потока ASP.NET автоматически выбирает соответствующие ресурсы в следующем порядке:

  • Если найдена вспомогательная сборка с соответствующим языком и региональными параметрами, используются ресурсы из этой сборки.

  • Если найдена вспомогательная сборка с нейтральным языком и региональными параметрами, соответствующими CurrentUICulture, используются ресурсы из этой сборки.

  • Если совпадение для CurrentUICulture не найдено, используются резервные ресурсы, хранящиеся в исполняемой сборке.

Примечание. Это основано на более общем процессе резервного использования ресурсов. Дополнительные сведения см. на следующей странице веб-узла MSDN:

http://msdn2.microsoft.com/en-us/library/sb6a8618(vs.71).aspx

Создание вспомогательных сборок вручную:

При таком использовании вспомогательных сборок Visual Studio .NET создает сами сборки. Однако Visual Studio .NET не имеет строгих имен вспомогательных сборок по умолчанию. Если вы хотите изменить эти параметры, вам потребуется создать вспомогательные сборки вручную. Дополнительные сведения см. на следующей странице веб-узла MSDN:

http://msdn2.microsoft.com/en-us/library/21a15yht(vs.71).aspx .

Что происходит с ASP.NET 2.0 на фронте глобализации?

Широкое использование ASP.NET и типы проблем, которые мы видели бы в отношении признаков глобализации в ASP.NET 2.0, еще далеко впереди. Однако было бы хорошо кратко рассмотреть, в каком направлении методология глобализации движется для веб-приложений.

Поддержка глобализации в ASP.NET 2.0 претерпела радикальные изменения, и веб-разработчики получили возможность сделать локализацию веб-приложений так же просто, как и для приложений windows. Ниже приведен список функций, лежащих в основе методологии глобализации в ASP.NET 2.0.

Строго типизированные ресурсы. В основе выпуска платформа .NET Framework 2.0 лежит поддержка строго типизированных ресурсов, которые предоставляют разработчикам intellisense и упрощают код, необходимый для доступа к ресурсам во время выполнения.

Управляемый редактор ресурсов Visual Studio .NET 2.0 включает новый редактор ресурсов с улучшенной поддержкой создания записей ресурсов и управления ими, включая строки, изображения, внешние файлы и другие сложные типы.

Создание ресурсов для разработчиков веб-формы Windows Forms уже пользуется преимуществами автоматической интернационализации. Visual Studio .NET 2005 теперь поддерживает быструю интернационализацию, автоматически создавая ресурсы для веб-формы, пользовательских элементов управления и master страниц.

Улучшенная поддержка среды выполнения Экземпляры ResourceManager управляются средой выполнения и легко доступны для кода сервера через более доступные программные интерфейсы.

Выражения локализации Современные декларативные выражения для веб-страниц поддерживают сопоставление записей ресурсов для управления свойствами, свойствами HTML или статическими областями содержимого. Эти выражения также расширяемы, предоставляя дополнительные способы управления процессом присоединения локализованного содержимого к выходным данным HTML.

Автоматический выбор языка и региональных параметров Управление выбором языка и региональных параметров для каждого веб-запроса можно автоматически связать с параметрами браузера.

Модель поставщика ресурсов. Новая модель поставщика ресурсов позволяет разработчикам размещать ресурсы в альтернативных источниках данных, таких как неструктурированные файлы и таблицы баз данных, в то время как модель программирования для доступа к этим ресурсам остается согласованной.

Дополнительные сведения о методологии глобализации в ASP.NET 2.0 см. на следующем веб-сайте MSDN:

Функции локализации ASP.NET 2.0: новый подход к локализации веб-приложений
http://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

Заключение

Это все на данный момент о проблемах глобализации в ASP и ASP.NET. Я надеюсь, что эта статья поможет нескольким клиентам устранить проблемы с глобализацией в ASP и ASP.NET, прежде чем они решили связаться с служба поддержки Майкрософт. Я заканчиваю следующей мыслью:

"Где бы и когда вы ни развивались, подумайте о миллионах людей, которые вы можете расширить во всем мире. Сделайте свои решения всемирно готовыми! Средства и технологии Майкрософт упрощают интернационализацию.

Мы догоняем еще раз в следующем месяце с другой интересной темой.

Спасибо за ваше время.

Дополнительные сведения о проблемах глобализации в ASP и ASP.NET см. на следующих веб-сайтах Майкрософт:

SetLocale и GetLocale в vbscript
http://msdn2.microsoft.com/en-us/library/5xf99h19.aspx

Пошаговые
http://msdn.microsoft.com/en-us/goglobal/bb688110 глобализации

Go Global: локализация динамических веб-приложения с помощью IIS 5.0 и SQL Server
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx

Go Global: проектирование веб-сайта на основе ASP для поддержкиглобализации
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx

315616 Определение клиентского языка на странице страницы "Активный сервер" в IIS
http://support.microsoft.com/?id=315616

Диаграмма
идентификатора языкового стандарта (LCID) http://msdn2.microsoft.com/en-us/library/0h88fahh.aspx

Пространство имен
System.Globalizationhttp://msdn2.microsoft.com/en-us/library/system.globalization(vs.71).aspx

Ресурсы и локализация с помощью пакета SDK
для платформа .NET Framework http://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx

Ресурсы в приложениях
ASP.NEThttp://msdn2.microsoft.com/en-us/library/1ztca10y(vs.71).aspx

элемент конфигурации
ASP.NET <глобализации>http://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx

Рекомендации по проектированию и реализации для веб-клиентов —глобализация и локализация
http://msdn2.microsoft.com/en-us/library/ms978628.aspx

Официальный сайт Майкрософт — глобальный портал
разработки и вычисленийhttp://msdn.microsoft.com/en-us/goglobal/bb688096

Разработка приложений
http://msdn2.microsoft.com/en-us/library/h6270d0z(vs.71).aspx

Архитектура глобализации дляhttp://msdn2.microsoft.com/en-us/library/aa478974.aspx ASP.NET

Корпоративный набор средств локализации — для разработки локализованных приложений
Microsoft ASP.NEThttp://msdn2.microsoft.com/en-us/library/aa479334.aspx

Типографские
http://www.microsoft.com/typography/default.mspx Майкрософт

Глоссарий

ANSI расшифровывается как Американский национальный институт стандартов. В этом контексте он представляет определенную кодовую страницу для определенного набора языков или символов. Чаще всего относится к английской кодовой странице (windows-1252).

ASCII — 1-байтовая (или 7-разрядная) схема кодирования. Стандартизованы только символы в диапазоне от 0 до 127. Диапазон 128–255 является расширением ASCII, а не частью стандарта. Примером этого является разница между верхним диапазоном диаграммы OEM ASCII и диаграммой VB ASCII.

Параметр CharSet используется в основном для интернет-Обозреватель и браузеров, который сообщает браузеру, как интерпретировать символьные данные. Пример: Response.charSet = "iso-8859-1".

Codepage — таблица преобразования, указывающая способ кодирования символов (обычно используется для серверов).

Глобализация — это процесс разработки и создания приложения, с тем чтобы можно было удовлетворить уникальные требования культуры, региона или национальных/региональных и лингвистических потребностей. Другими словами, разработка приложения таким образом, чтобы его можно было локализовать позже, является глобализацией.

Языковой стандарт и язык и региональные параметры, включая форматы даты и календаря, форматы времени, форматы валют, регистр, сортировка и сравнение строк, форматы адресов, форматы телефонных номеров, размеры бумаги, единиц измерения, направление записи и т. д.

LocaleID (LCID) — значение DWORD, указывающее идентификатор языка и идентификатор сортировки. Его можно использовать для указания форматов конкретных регионов для даты и времени и т. д., которые должны быть отформатированы в соответствии с.

Локализуемость. Возможность представления содержимого для нужного языка или языкового стандарта.

Локализация — это процесс перевода пользовательского интерфейса на определенные языки и (или) языковые стандарты.

Многобайтовый набор символов — набор символов, в котором символы состоят из двух или более байтов, например японского языка. UTF-8 также относится к этой категории. (Юникод технически относится к этой категории, но в Windows он имеет собственную категорию.)

Юникод — 2-байтовая схема кодирования. Windows внутренне использует Юникод. Все API, специально предназначенные для Юникода, обозначаются символом "W" в конце имени функции. Также известный как широкий символ; не может использоваться напрямую из веб-приложений.

UTF-8 — кодировка символов, в которой символ может быть представлен 1–6 байтами. В Windows диапазон составляет 1–3 байта. Не поддерживается в NT4 для веб-приложений.



Широкий набор символов Псевдоним для Юникода. Также называется DBCS (двухбайтовый набор символов), UCS-2, UTF-16.

Как всегда, вы можете отправлять идеи по темам, которые вы хотите рассмотреть в будущих столбцах или в базе знаний с помощью формы "Запросить".

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×