Веб-клиент поддерживает различные региональные настройки, которые определяют язык пользовательского интерфейса, формат отображения дат и чисел.
Язык по умолчанию (на котором, например, будет отображена страница логина при первом входе пользователя) зависит от локализации браузера. Впоследствии будут использоваться последние выбранные региональные настройки. Страница входа на сайт веб-доступа всегда отображается с региональными настройками по умолчанию.
У всех веб-модулей для каждой культуры должны быть файлы локализации.
Все строки локализации веб-доступа хранятся в папке <Корневая папка>\Extensions\DIRECTUM\ в файлах:
• | BaseWebAccess.localization.<код языка>.xml – файл со строками локализации базового веб-модуля; |
• | <название веб-модуля>.localization.<код языка>.xml – файл со строками локализации веб-модуля. |
В качестве кода языка используются код языка и культуры в стандартном формате .NET. Например, русский язык – «ru-RU», английский язык и американская культура – «en-US».
Разработчик веб-сайта может:
• | переопределить строку локализации по умолчанию или из базового веб-модуля. Для этого нужно в файлах локализации веб-модуля создать строки с таким же кодом, как у переопределяемой строки, задать значения строки на всех языках веб-модуля; |
• | добавить строку в файл локализации веб-модуля. Для этого нужно добавить новую строку с одинаковым кодом в файлы локализации на всех языках веб-модуля. |
После изменения файлов локализации перезапустите пул приложения веб-доступа или службу IIS.
Структура файла локализации веб-модуля:
<?xml version="1.0" encoding="utf-8" ?>
<Localization>
<s key="{Код строки локализации}">Локализованное значение</s>
</Localization>
Localization – список строк локализации.
s – строка локализации.
key. Код строки локализации.
Сайт и компоненты всегда должны использовать локализацию из файлов \Extensions\DIRECTUM. Сообщения, генерируемые внутри кода WebAccess.API, должны быть в файлах ресурсов этой сборки.
Приоритет строк в файлах локализации веб-модулей выше, чем в базовом веб-модуле. Если для какой-то локализации (например, ru-RU) строка не определена (например, LOCALIZATION_CODE), то в пользовательском интерфейсе в этой локализации будет отображаться код строки локализации с постфиксом кода локализации. В данном случае LOCALIZATION_CODE (ru-RU).
Все строки, описываемые в файлах локализации, можно получить, используя глобальную функцию L(code) в JavaScript и WAAPIEntry.L(Code) либо WAAPIEntry.Context.L(Code, Source) в .NET.
Вызов строки на сервере. Получение строки локализации в веб-методе осуществляется через WebSession.L():
''' <summary>
''' Проверить существование записи справочника "Работники" по ее ИД.
''' </summary>
''' <param name="ID">ИД записи справочника "Работники"</param>
''' <returns></returns>
<WebMethod()>
Public Function IsRecordExist(ByVal ID As Integer) As WebServiceResponse(Of String)
'Получить справочник "Работники".
Dim Reference = WebSession.Context.References.GetReferenceByName("РАБ")
'Получить запись справочника по ИД.
Dim Record = Reference.GetRecordByID(ID)
If Record IsNot Nothing Then
'Запись существует.
Return WebServiceResponse(Of String).OK(WebSession.L("LocalizationCode"))
Else
'Если запись не существует, то вернуть ошибку.
Return WebServiceResponse(Of String).Fail(WebSession.L("LocalizationCode"))
End If
End Function
Получение строки локализации на клиенте осуществляется через глобальную функцию L():
// Создать новый диалог.
var dialog = new WA.CMP.dialogs.BaseDialog();
// Задать заголовок диалога из строки локализации.
dialog.setTitle(L("LocalizationCode"));
// Задать HTML-диалога, используя строку локализации.
dialog.setHtml("<div>" + L("TEST_STRING") + "</div>");
// Скрыть кнопку "ОК".
dialog.isShowOkButton = false;
// Отобразить диалог.
diallog.show();
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |