Sitecore.DefaultLanguage.configの役割について

samatsu 6/1/2016 2643 N/A Sitecore XP

App_Config/Includeフォルダにある Sitecore.DefaultLanguage.config ファイルの役割についてのメモを書きたいと思います。

もともと、Sitecoreの環境(クライアントインタフェースやライブサイトの言語バージョンなど)のデフォルトの言語を日本語にする場合は、 ja-jp.config ファイルを使用していましたが、新しいSitecoreの環境では既定の言語バージョンの指定方法がより一般化されSitecore.DefaultLanguage.config ファイルを利用するようになりました。

既定で中身はこんな感じのファイルです。

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <sites>
      <site name="website">
        <patch:attribute name="language">en</patch:attribute>
      </site>
      <site name="login">
        <patch:attribute name="language">en</patch:attribute>
      </site>
      <site name="shell">
        <patch:attribute name="contentLanguage">en</patch:attribute>
      </site>
    </sites>
    <settings>
      <setting name="ClientLanguage">
        <patch:attribute name="value">en</patch:attribute>
      </setting>
    </settings>
  </sitecore>
</configuration>

このファイルを手動で変更することもできますが、 /sitecore/admin/InstallLanguage.aspx にアクセスすることでサイトで使用する既定の言語バージョンの変更できます。

本画面はSitecoreのインストーラーを使用してインストールしたときの最後の画面で "Sitecoreを起動する" にチェックした場合でも表示されます。こちらを参照してください。

 

例えば、次のようにInstallLanguage.aspx画面で"Run the website and the Sitecore UI in this language"を有効にして日本語をInstallします。

そうすると、/sitecore/system/Languages 配下に ja-jp という名前で言語アイテムが作成され、さらに、Sitecore.DefaultLanguage.configが次のように変更されます。簡単にいうと en となっていた場所が ja-jpに置き換わります。

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <sites>
      <site name="website">
        <patch:attribute name="language">ja-JP</patch:attribute>
      </site>
      <site name="login">
        <patch:attribute name="language">ja-JP</patch:attribute>
      </site>
      <site name="shell">
        <patch:attribute name="contentLanguage">ja-JP</patch:attribute>
      </site>
    </sites>
    <settings>
      <setting name="ClientLanguage">
        <patch:attribute name="value">ja-JP</patch:attribute>
      </setting>
    </settings>
  </sitecore>
</configuration>

そうすると既定で選択されるwebsiteの言語バージョンが日本語になります。コンテンツエディターなどのSitecoreクライアントユーザーインタフェースやデフォルトで編集する言語バージョンが日本語に切り替わります。

せっかくなのでそれぞれの意味を簡単に説明していきましょう。

まず、/sitecore/sites/site セクションの言語バージョンの設定です。language属性をja-JPにすることで、既定のライブサイト(website),Sitecore編集インタフェースへのログイン画面のサイト(login)で使用するコンテンツの言語バージョンをデフォルトの en から ja-JPに変更しています。そのため、マルチサイトを実装した場合は、それぞれのサイトに対して language を ja-JPにする設定が必要になります。

<site name="website">
     <patch:attribute name="language">ja-JP</patch:attribute>
</site>
<site name="login">
    <patch:attribute name="language">ja-JP</patch:attribute>
</site>

次の行の設定は、shellのサイト(要するにコンテンツエディターなどSitecoreクライアントインタフェースのサイト)の編集用のコンテンツの言語バージョンを ja-JP にしています。

<site name="shell">
     <patch:attribute name="contentLanguage">ja-JP</patch:attribute>
</site>

最後に、エクスペリエンスエディターやコンテンツエディターのリボンに表示するSitecoreクライアントインタフェースの言語バージョンを ClientLanguage でデフォルト ja-JP にしています。このグローバルなデフォルト設定により shellのサイトのデフォルトのUIの言語バージョンが ja-JPになります。

<setting name="ClientLanguage">
     <patch:attribute name="value">ja-JP</patch:attribute>
</setting>

それぞれの設定値の意味を理解することで、SitecoreのUIはデフォルトenにして、ライブサイトのデフォルトの言語バージョンはja-JPにするといった細かい設定を行えるようになっています。

ちなみに、Sitecore.configの中にDefaultLanguage設定タグがあります。この設定で各siteのデフォルトの language を設定しています。Sitecore.DefaultLanguage.configではこちらを書き換えるようになっていないのでそのまま使用して <site>タグのlanguage属性を指定するようにしましょう。特に理由がなければ既定の設定はそのままにしておきます。

<setting value="en" name="DefaultLanguage"/>