Yvision.kzYvision.kz
kk
Разное
Разное
399 772 постов41 подписчиков
Всяко-разно
-4
21:53, 08 августа 2011

Шаблон для XSLT — поддержка различных языков

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

Например, в ASP.NET список предпочитаемых языков можно получить из массива HttpContext.Current.Request.UserLanguages.

Формируемый XML:

<Page>
  <Language>ru-ru</Language>
    <Resources>
      <ru-ru>
        <subscribe>Подписаться</subscribe>
      </ru-ru>
        <en>
          <subscribe>Subscribe</subscribe>
        </en>
     </Resources>
</Page>

* This source code was highlighted with Source Code Highlighter.

В этой структуре устанавливаем значение тега Language из массива UserLanguages (можно взять самый первый элемент массива т.к. список языков, передаваемый браузером, располагается в порядке предпочтительности).

Затем, используем такой шаблон XSLT, чтобы получить значение на соответствующем языке, например, для кнопки формы подписки:

<xsl:template match="/">
  <xsl:variable name="lang">
    <xsl:value-of select="/Page/Language" />
  </xsl:variable>
  <form action="/" method="post">
    <input type="text" name="email" />
    <input type="submit" value="{/Page/Resources/*[name() = $lang]/subscribe}" />
  </form>
</xsl:template>

* This source code was highlighted with Source Code Highlighter.

Теперь, при смене предпочитаемого языка (русский или английский) в браузере, кнопка будет иметь надпись либо "Подписаться", либо "Subscribe".

-4
322
0