Kentico ASPX 转型和获取当前文化

Kentico ASPX transformation and getting current culture

我想根据文化更改文本 link 的文本。该站点是 en-ca 或 fr-ca。此转换是基于 Bootstraps collapse JS 为 Accordion 渲染 html 片段。此时它按计划运行,现在我正在努力避免对法语进行另一次转换。

其中一部分是显示视频或音频文件的文字记录。 link 的标签应该是 Transcript 或 Transciption。

我只能找到这个参考资料 (http://devnet.kentico.com/questions/how-to-get-the-culture-of-the-current-page-document),但我不确定如何继续。

这是我的完整转型

<script runat="server">
  protected string GetID()
    {      
      Control parent = this;      
      while ( (!(parent is CMSWebParts_Viewers_Documents_cmsrepeater)) && 
             (parent != null))
      {
        parent = parent.Parent;
      }      
      return (parent as CMSWebParts_Viewers_Documents_cmsrepeater).WebPartID;
    }
</script>

<div class="panel panel-default">
  <div class="panel-heading">
    <h4 class="panel-title">
      <a href="#accordionPanel<%# DataItemIndex + 1 %>" class="panel-title-link collapsed" data-toggle="collapse" data-parent="#<%# GetID() %>"><span class="count"><%# DataItemIndex + 1 %>.</span><span class="title"><%# Eval("Heading") %></span></a>
    </h4>
  </div>
  <div id="accordionPanel<%# DataItemIndex + 1 %>" class="panel-collaspe collapse" role="tabpanel" aria-labeledby="panel<%# DataItemIndex + 1 %>">
    <div class="panel-body">
      <div class="row">
        <asp:PlaceHolder runat="server" id="webinarVideo" visible='<%# IfEmpty(Eval("WebinarVideo"), false, true) %>'>
          <div class="col-xs-12 col-md-4 col-md-push-8 synopsis">
            <section class="webinarSynopsis">
              <h1><%# Eval("Heading") %></h1>
              <p><%# Eval("WebinarSynopsis") %></p>
              <p><%# FormatDateTime(Eval("WebinarDate"),"dddd, MMMM d, yyyy") %></p>
              <p><a href="<%# Eval(" WebinarPDF ") %>" target="_blank"><%# Eval("Heading") %></a></p>
            </section>
          </div>
          <div class="col-xs-12 col-md-8 col-md-pull-4 video">
            <video controls>
              <source src="<%# Eval(" WebinarVideo ") %>" type='video/mp4'>
            </video>
          </div>
        </asp:PlaceHolder>
        <asp:PlaceHolder runat="server" id="webinarAudio" visible='<%# IfEmpty(Eval("WebinarAudio"), false, true) %>'>
          <div class="col-xs-12  audio">
            <section class="webinarSynopsis">
              <!-- <h1><%# Eval("Heading") %></h1> -->
              <p><%# Eval("WebinarSynopsis") %></p>
              <audio controls>
                <source src="<%# Eval(" WebinarAudio ") %>" type="audio/mpeg">
              </audio>
              <p><%# FormatDateTime(Eval("WebinarDate"),"dddd, MMMM d, yyyy") %></p>
              <p><a href="<%# Eval(" WebinarPDF ") %>" target="_blank"><%# Eval("Heading") %></a></p>
            </section>
          </div>
        </asp:PlaceHolder>
      </div>
    </div>
  </div>  
</div>

标记,使用 UI Culters 指定不同文化中的 link 文本,并使用 localization methods 获取其值,或者像这样简单地使用本地化宏:

{$=Hello|de-de=Hallo|it-it=Ciao$}

使用本地化应用程序创建资源字符串。然后在您的转换中使用 use localize 方法。我相信它是 <%# Localize(key) %>

我在您的转换中看到了三个 link。全部内容为 <%# Eval("Heading") %>.

<p><a href="<%# Eval(" WebinarPDF ") %>" target="_blank"><%# Eval("Heading") %></a></p>

如果您的网站配置为多语言,如本 link https://docs.kentico.com/display/K9/Setting+up+multilingual+websites 中所述,则无需进行不同的转换即可翻译内容。您所要做的就是在页面的每种文化的 "Heading" 字段、表单选项卡中放入不同的内容。您可以为每个语言版本设置不同的 link PDF、音频或视频文件。

这里有一个 link 解释如何编辑多语言网站的内容:https://docs.kentico.com/display/K9/Editing+the+content+of+multilingual+websites

如果您要翻译的文本不在页面内容(“表单”选项卡)中,您可以按照此处所述使用本地化应用程序 https://docs.kentico.com/display/K9/Working+with+resource+strings 并在转换中使用键,如下所示:

<%# CMS.Helpers.ResHelper.GetString("custom.transciption") %>