構成の一部としてデプロイされたi18nファイルを使用する代わりに、アプリ内の語彙のローカリゼーションを管理する方法について、最近尋ねられました。バージョン6.0以降であれば可能であることに驚きました。この機能は今まで注目されることがなかったので、ほとんど知られていませんでした(少なくとも私は、Nuxeoでそのことを知らない唯一の人間になることだけは避けられました!)。
ボキャブラリは、Nuxeo Platformの提案ウィジェットで使用できるルックアップテーブルです。
提案ウィジェット
各エントリは、通常、キーとラベルから構成されます。もちろん、異なる言語を話すユーザがいる場合は、言語ごとにラベルをローカライズすることができます。エントリとその翻訳の追加/変更のためだけに構成を更新しなければならないのは問題なので、Nuxeo Content Services Platformを使用すれば、アプリ内で直接行うことができ、APIエンドポイントも提供できます。しかし、まずボキャブラリを構成する必要があります。
ボキャブラリというのは、ディレクトリと呼ばれるものの、もっと一般的な抽象概念の別名です。新しいディレクトリを構成するために最初に必要とされるものは、サポートしたい言語のプロパティを含むスキーマです。ここでは、英語、フランス語、スペイン語、ドイツ語を使用します。
<xs:schema targetnamespace="http://www.nuxeo.org/ecm/schemas/customl10nxvocabulary" xmlns:xs="http://www.w3.org/2001/XMLSchema"></xs:schema>
同じスキーマは複数のボキャブラリに再使用できますので、注意してください。次に、対応する拡張ポイントでディレクトリを宣言することができます。
`
`
これで、Directory API Endpointを使用して、新しいcustoml10ncoverageディレクトリのエントリを取得、追加、更新、または削除することができます。本当に簡単ですね。
Nuxeo APIプレイグラウンド
さらに、ボキャブラリはUIの提案ウィジェットで使用することもできます。以下で、ユーザロケールを変更したときにラベルがローカライズされていることがわかります。

ローカライズされたラベル付きの提案ウィジェット(ドイツ語)
Nuxeo Studioがあれば、ウィジェットの構成は、このうえなく簡単になります。文字列プロパティでsuggestOneDirectoryウィジェットを使用し、ボキャブラリ名((カスタムプロパティで)を設定し、localizeおよびActivate database localizationプロパティを真(true)に設定する必要があります。
Nuxeo Studioのウィジェットエディタ
さらに、Admin Centerからボキャブラリを管理してみましょう。
Admin Centerのボキャブラリエディタ
最後に、何も設定されていないので、後でスキーマとAdmin Centerのレイアウトを更新するだけで、新しい言語を追加することができます。この事例の詳細な情報は、githubリポジトリにあります。