フィールドレベルの言語フォールバックを有効にする方法


解説

フィールドレベルの言語フォールバックは、どのフィールド値をローカライズするか、どのフィールド値が他の言語にフォールバックするかをフィールドごとに指定することができます。

フィールドレベルの言語フォールバックはデフォルトでは無効になっているので、該当するWebサイトおよびテンプレート フィールドの定義アイテムで有効化する必要があります。

この機能の詳細については、以下の記事をご参照ください:
https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-manager/language-fallback.html

解決策

この機能をSitecoreインスタンスに有効化するには、以下の手順に従って実施してください:

  1. Sitecore設定[2]で、希望するサイト[1]のフィールド レベルの言語フォールバックを有効にします。
    この変更は、/App_Config/Include/Sitecore.LanguageFallback.configまたはその他のカスタム インクルード ファイルで実施することができます。
    <sites>
      <site name="shell">
        <patch:attribute name="enableFieldLanguageFallback">true</patch:attribute>
      </site>
      <site name="website">
        <patch:attribute name="enableFieldLanguageFallback">true</patch:attribute>
      </site>
    </sites> 
  2. フォールバック言語のルールを指定します。
    フォールバック言語は、コンテンツ ツリーの/sitecore/system/Languagesアイテムに含まれる言語定義アイテムを指定しています。
    フォールバックを有効化する必要がある言語について、言語定義アイテムのフォールバック言語のフィールドが希望する言語を指しているかを確認します。
  3. 最後に、この機能を有効にしたいフィールドについては、フィールド レベルの言語フォールバックを有効にする必要があります。
    この機能を有効化する、2つのチェックボックス フィールドがあります[3]
    • フィールド レベルのフォールバックを有効化
      これは、現在のフィールドのすべての言語バージョンで言語フォールバックを有効化する際に使用される共有フィールドです。これは、フィールドで現在利用可能な言語および新しく作成された言語バージョンに適用されます。すなわち、特定の言語のみ特定のフィールドのフォールバックを有効化する必要がある場合、代わりにバージョン管理されたフィールド レベルのフォールバック フィールドを使用する必要があります。
    • バージョン管理されたフィールド レベルのフォールバックを有効化
      これは、フィールドの現在の言語バージョンにのみ言語フォールバックを有効化する際に使用される、バージョン管理されたフィールドです。
      同じフィールドで言語(バージョン管理されたフォールバック)ごとに異なるフォールバックを設定するには、/App_Config/Include/Sitecore.LanguageFallback.configファイルで次の設定を「true」に設定する必要があります[4]
      <setting name="LanguageFieldFallback.AllowVaryFallbackSettingsPerLanguage" value="true" />

成功の判定基準:

この機能が正しく設定されている場合、元の言語で値のないフィールドが、希望する言語(の値)にフォールバックされます。また、コンテンツ エディタとエクスペリエンス エディタの両方で、フィールド レベルで次のように表示されます。

Field level language fallback result

備考