Looking for .net Keywords? Try Ask4Keywords

.NET Framework Базовая конфигурация и настройка


пример

  1. Добавьте пакет nuget I18N в проект MVC.
  2. В web.config добавьте i18n.LocalizingModule в i18n.LocalizingModule <httpModules> или <modules> .
<!-- IIS 6 -->
<httpModules>
  <add name="i18n.LocalizingModule" type="i18n.LocalizingModule, i18n" />
</httpModules>

<!-- IIS 7 -->
<system.webServer> 
  <modules>
    <add name="i18n.LocalizingModule" type="i18n.LocalizingModule, i18n" />
  </modules>
</system.webServer>
  1. Добавьте папку с именем «locale» в корень вашего сайта. Создайте подпапку для каждой культуры, которую вы хотите поддержать. Например, /locale/fr/ .
  2. В каждой папке с конкретными культурами создайте текстовый файл с именем messages.po .
  3. Для тестирования введите следующие строки текста в файл messages.po :
#: Translation test
msgid "Hello, world!"
msgstr "Bonjour le monde!"
  1. Добавьте контроллер в свой проект, который возвращает текст для перевода.
using System.Web.Mvc;

namespace I18nDemo.Controllers
{
    public class DefaultController : Controller
    {
        public ActionResult Index()
        {
            // Text inside [[[triple brackets]]] must precisely match
            // the msgid in your .po file.
            return Content("[[[Hello, world!]]]");
        }
    }
}
  1. Запустите приложение MVC и перейдите на маршрут, соответствующий действию вашего контроллера, например http: // localhost: [yourportnumber] / default .
    Обратите внимание, что URL-адрес изменен, чтобы отразить вашу культуру по умолчанию, например
    http: // localhost: [yourportnumber] / en / default .
  2. Замените /en/ в URL с /fr/ (или любой культурой, которую вы выбрали.) На странице теперь должна отображаться переведенная версия вашего текста.
  3. Измените язык своего браузера, чтобы предпочесть альтернативную культуру и снова просмотреть /default . Обратите внимание, что URL-адрес изменен, чтобы отразить вашу альтернативную культуру, и появится переведенный текст.
  4. В web.config добавьте обработчики, чтобы пользователи не могли просматривать вашу папку locale .
<!-- IIS 6 -->
<system.web>
  <httpHandlers>
    <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
  </httpHandlers>
</system.web>

<!-- IIS 7 -->
<system.webServer>
  <handlers>
    <remove name="BlockViewHandler"/>
   <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
  </handlers>
</system.webServer>