多言語機能の基盤を大幅に刷新しました。
今回のアップデートにより、「言語ごとに独立した公開管理」や「特定言語のみのスマートなコンテンツ配信」が可能になります。
関連: 多言語機能の大幅アップデート(3/25)に伴う仕様変更と「互換モード」のご案内
本アップデートで実現すること
- 言語別のステータス管理: 日本語は公開、英語は下書き、といった柔軟な運用が可能になります。
- 言語切り替えの最適化:
include=_langsを追加するだけで、その記事が「どの言語で公開されているか」をAPIで一度に取得できます。 - フィルタリングの簡素化: 「翻訳がある記事だけを出す」ための複雑な条件指定が不要になります。
DeveloperAPIのレスポンスについて
API挙動の変更と「フォールバック(lang_fallback=true)」指定による互換性維持
データ構造の変更に伴い、デフォルトの挙動が変わります。
これまでのレスポンスを維持したい場合は、APIリクエストに lang_fallback=true を追加することで対応可能です。
対象 | これまでの挙動 | アップデート後の挙動 | lang_fallback=true 指定時 |
|---|---|---|---|
一覧取得 | 全件ヒット(未翻訳はメイン言語で代替) | 翻訳済みの記事のみ ヒット | 全件ヒット(従来通り) |
個別取得(ID指定) | メイン言語を返却 | 404エラー | メイン言語を返却(従来通り) |
未翻訳項目 | 翻訳OFFならメイン言語の内容で代替 | メイン言語の値を保持 | メイン言語の値を保持 |
データメンテナンスについて
APIレスポンス内のフィールド構造が欠落することなく、これまで通りの実装で値を表示できるよう、以下のデータメンテナンスを実施しました。
- システム側でデータの一括変換を実施しました。
- 「一部のフィールドのみ翻訳済み」のコンテンツについては、未翻訳フィールドにメイン言語の内容を自動的にコピー・登録しました。
- 1フィールドも翻訳していないコンテンツは、該当の言語データが存在しない状態になります。
翻訳情報の取得(include=_langs)
コンテンツがどの言語で作成されているかを動的に取得できるようになります。
クエリパラメータに include=_langs を追加すると、レスポンスに以下の情報が含まれます。
"_langs": {
"current": "en", // 現在取得している言語
"available": [
"en",
"ja",
"zh-CN"
] // 作成済みの言語一覧
}これを利用することで、フロントエンドでの言語切り替えスイッチの表示・非表示などを効率的に実装いただけます。
フォールバック指定時、取得したデータが指定言語なのかメイン言語なのかを判定するためにも利用できます。
include パラメータはID指定でのGET リクエスト時のみ利用可能です。
管理画面での操作
コンテンツの一覧画面と編集画面
サブ言語を登録している場合、コンテンツ編集画面に「言語」の選択プルダウンが表示されます。
コンテンツ作成時はメイン言語のみ登録されているため、翻訳したいコンテンツに対してはプルダウン内の「英語を追加」や「中国語を追加」をクリックしてください。
追加すると、メイン言語をコピーした内容で指定言語の下書きデータが登録されます。
必要な箇所を必要に応じて編集してください。

サブ言語で翻訳したコンテンツは、詳細検索で言語を指定することにより絞りこむことができます。
言語での絞り込みをしている際、該当言語の公開ステータスとタイトルフィールドの入力内容を確認できます。
また、地球儀マークをホバーすることで他の言語の公開ステータスを確認することができます。

ワークフロー
ワークフローの定義に言語を指定することができます。
各言語の対応チームごとにワークフローを作成することができます。
言語ごとでワークフローを変える必要がない場合は、デフォルトの「すべて」を設定してください。

コンテンツでのワークフロー開始時に、対象言語ごとに指定されたワークフローを開始することができます。

Webhook
Webhookのトリガー対象に言語を指定することができます。

プレースホルダー記法指定時に、言語ごとの内容で置換することができます。
置換のルールは、トリガーとなる操作ごとに以下のように異なります。
トリガーとなる操作 | 送信内容 | 言語の指定 |
|---|---|---|
コンテンツを公開 コンテンツを非公開 コンテンツの下書きを保存 コンテンツの公開日時を変更 参照しているメディアを変更(※) | {{content.single_line}}等のフィールド入力内容を指定した際、指定言語の内容で置換される。 {{lang}}を指定すると、指定言語キーに置換される。 | 「すべて」の場合、全言語での操作がトリガーになる。 「英語」のみを指定した場合、英語に対する操作のみがトリガーになる。 |
コンテンツをアーカイブ コンテンツをアーカイブから復元 アーカイブされていないコンテンツを削除 アーカイブされたコンテンツを削除 | {{content.single_line}}等のフィールド入力内容を指定した際、メイン言語の内容で置換される。 {{lang}}を指定しても、置換されない(空文字に置換される)。 | 「すべて」であっても、「英語」のみを指定していても、同じ結果になる。 |
コンテンツ編集画面上で、手動で実行 | {{content.single_line}}等のフィールド入力内容を指定した際、メイン言語の内容で置換される。 {{lang}}を指定しても、置換されない(空文字に置換される)。 | 「すべて」であっても、「英語」のみを指定していても、同じ結果になる。 |
※参照しているメディアを変更
「参照しているメディアを変更」トリガーは、指定した言語で該当メディアを参照しているコンテンツが存在する場合のみWebhookが送信されます。
「英語」のみを対象としたWebhookを登録している際、日本語でしか該当メディアを参照していないコンテンツに対しては、Webhookが送信されません。
「日本語」と「英語」を指定していた場合で、日本語と英語の両方で該当メディアを参照していた場合は、日本語と英語それぞれの内容に置換されたWebhookが2件送信されます。
プレースホルダー記法
プレースホルダー記法で、新たに {{lang}} の指定が可能になりました。
以下のような利用ができます。
1. Webhookで、どの言語に対する操作かをPayloadに含める
設定例
{
“id”: “{{content._id}}”,
“lang”: “{{lang}}”
}置換後の結果例
{
“id”: “1234567890”,
“lang”: “en”
}2.プレビューURL・公開URL指定時に、表示中言語の言語キーを埋め込む
設定例
https://www.nilto.com/{{lang}}/help/usage/at-first置換後の結果例
https://www.nilto.com/en/help/usage/at-firstコンテンツ移行
コンテンツ移行時は、どの言語のデータを移行するかを選択できます。
「英語」のみを変更し、同期したい場合に、無関係な言語のコンテンツは同期されません。
なお、初回移行時はすべての言語のデータが移行対象になります。


廃止した機能
フィールドの「多言語対応」を廃止しました。
全フィールドが、全言語で個別に入力する仕様になります。
サブ言語を追加した際、メイン言語の入力内容を引き継ぐため、同期したい項目があった場合は自然と内容を揃えることが可能です。
しかし厳密に一致させたい運用を実現するには不安要素になるため、必ず同期させる機能について引き続き開発予定になります。
今後のリリース予定
今後のアップデートでは下記機能のリリースを予定しています。
- 多言語RTL対応
- コンテンツ編集時、バリデーションエラーをリアルタイムに確認できるようにする
詳しくはロードマップをご確認ください。
開発状況によって予告なくロードマップ内容が変更される可能性があります。
ご意見・ご要望をお寄せください
ご意見・ご要望がありましたら、NILTOのお問い合わせページまたは公式Xアカウントへお気軽にご連絡ください。
これからもNILTOをよろしくお願いいたします。