После добавления форм для логина и отображения статуса, регистрации и управления паролями, вы заметили, что они - на английском языке, даже когда вы переключите язык сайта.
Строки используемые в XSLT-функциях экстранета записаны в этом файле: ~/Composite/InstalledPackages/Localization/Composite.Community.Extranet.en-us.xml
Итак,
Теперь вам нужно зарегистрировать файл Composite.Community.Extranet.ru-ru.xml в Composite.config:
Читайте также:
Предыдущие сообщения:
Однако все эти формы можно локализировать.
Сами формы создаются соответствующими функциями:
- Composite.Community.Extranet.LoginForm
- Composite.Community.Extranet.LoginStatus
- Composite.Community.Extranet.SignupForm
- Composite.Community.Extranet.ChangePasswordForm
- Composite.Community.Extranet.SendPasswordForm
И строки в этих функциях берутся из ресурсного файла. Чтобы локализировать формы, вам нужно создать локализированную копию этого ресурсного файла для вашего второго языка и перевести строки, использующиеся в нужных вам формах. Кроме того, после создания этого языкового файла, вам нужно будет его прописать в конфигурации Composite C1 CMS.
Давайте пошагово русифицируем форму логина.
Создание файла локализации
Строки используемые в XSLT-функциях экстранета записаны в этом файле: ~/Composite/InstalledPackages/Localization/Composite.Community.Extranet.en-us.xml
Если вы откроете XSLT-функцию, то увидите, что для локализации используется не совсем стандартный способ: C# код, записанный прямо в функции. Но все, что этот код делает - обращается к файлу локализации текущего языка и получает строку по ее названию.
Код оформлен в виде внутренней функции Localize, поэтому, чтобы знать какие именно строки нужно перевести, нужно обратить внимание на использование функции, а точнее на ее второй параметр. Второй параметр и будет искомым названием строки для локализации.
<xsl:value-of select="csharp:Localize('Composite.Community.Extranet', 'LoginForm.Username')" />
В примере выше названием строки для перевода будет LoginForm.Username
Итак,
- Создайте в той же папке копию Composite.Community.Extranet.en-us.xml, при этом заменив языковой код английского "en-us" на языковой код русского "ru-ru": Composite.Community.Extranet.ru-ru.xml.
- Переведите следующие строки в этом файле:
- LoginStatus.ExtranetSecurityNotConfigured: Экстранет не сконфигурирован
- LoginForm.LoginFailed: Ошибка входа!
- LoginForm.Username: Имя пользователя:
- LoginForm.Password: Пароль:
- LoginForm.RememberMe: Запомнить:
- LoginForm.Login: Войти
- LoginForm.Error.IsGroupsAccess: Доступ запрещен! Используйте другой аккаунт для доступа к этому ресурсу!
- Сохраните файл.
Регистрация файла локализации в Composite.config
Теперь вам нужно зарегистрировать файл Composite.Community.Extranet.ru-ru.xml в Composite.config:
- Откройте для редактирования файл ~/App_Data/Composite/Composite.config.
- Найдите элемент Composite.Core.ResourceSystem.Plugins.ResourceProviderConfiguration/ResourceProviderPlugins/add[@name="Composite.Community.Extranet"]/Cultures
- Под элементом add[@cultureName="en-US"] добавьте его копию, но в следующих атрибутах укажите такие значения:
- cultureName: ru-RU
- xmlFile: ~/Composite/InstalledPackages/localization/Composite.Community.Extranet.ru-ru.xml
- Сохраните файл.
У вас должно получиться такое:
<Composite.Core.ResourceSystem.Plugins.ResourceProviderConfiguration>
<ResourceProviderPlugins>
<!-- пропущено -->
<add defaultCultureName="en-US" type="Composite.Plugins.ResourceSystem.XmlStringResourceProvider.XmlStringResourceProvider, Composite" name="Composite.Community.Extranet">
<Cultures>
<add cultureName="en-US" xmlFile="~/Composite/InstalledPackages/localization/Composite.Community.Extranet.en-us.xml" monitorFileChanges="true" />
<add cultureName="ru-RU" xmlFile="~/Composite/InstalledPackages/localization/Composite.Community.Extranet.ru-ru.xml" monitorFileChanges="true" />
</Cultures>
</add>
</ResourceProviderPlugins>
</Composite.Core.ResourceSystem.Plugins.ResourceProviderConfiguration>
<ResourceProviderPlugins>
<!-- пропущено -->
<add defaultCultureName="en-US" type="Composite.Plugins.ResourceSystem.XmlStringResourceProvider.XmlStringResourceProvider, Composite" name="Composite.Community.Extranet">
<Cultures>
<add cultureName="en-US" xmlFile="~/Composite/InstalledPackages/localization/Composite.Community.Extranet.en-us.xml" monitorFileChanges="true" />
<add cultureName="ru-RU" xmlFile="~/Composite/InstalledPackages/localization/Composite.Community.Extranet.ru-ru.xml" monitorFileChanges="true" />
</Cultures>
</add>
</ResourceProviderPlugins>
</Composite.Core.ResourceSystem.Plugins.ResourceProviderConfiguration>
Перезапуск сервера
Это последний шаг, чтобы изменения вступили в силу.
- Войдите в админку.
- Перегрузите сервер (главное меню: Инструменты / Перегрузить сервер).
Имеет также смысл очистить кэш браузера.
Теперь зайдите на свой сайт на страницу логина на русском языке. Форма должна быть русифицирована.
Следует отметить, что в файле Composite.Community.Extranet.en-us.xml кроме строк, используемых в формах, находятся также строки, используемые в административной части экстранета. Поэтому переведя и их, ваш экстранет станет русским в админке.
Проверка формы
Теперь зайдите на свой сайт на страницу логина на русском языке. Форма должна быть русифицирована.
Следует отметить, что в файле Composite.Community.Extranet.en-us.xml кроме строк, используемых в формах, находятся также строки, используемые в административной части экстранета. Поэтому переведя и их, ваш экстранет станет русским в админке.
Читайте также:
Предыдущие сообщения:
- Добавление авторизации на сайт (1). Введение
- Добавление авторизации на сайт (2). Установка и настройка Composite.Community.Extranet
- Добавление авторизации на сайт (3). Создание экстранет-групп и пользователей
- Добавление авторизации на сайт (4). Настройка доступа к страницам
- Добавление авторизации на сайт (5). Настройка доступа к контенту на странице
- Добавление авторизации на сайт (6). Настройка доступа к медиа-файлам
- Добавление авторизации на сайт (7). Форма для регистрации
- Добавление авторизации на сайт (8). Формы для управления паролем
Комментариев нет:
Отправить комментарий