翻訳間リンクタグ
翻訳されたコンテンツ間のリンクを出力するタグです。言語切替ナビゲーションなどに使えます。
翻訳グループ内の他言語コンテンツへのリンクを出力するタグです。
タグ一覧
| タグ | 種類 | 説明 |
|---|---|---|
<mt:AITranslatorLinks> | ブロック | 現在の記事/コンテンツデータの全翻訳版をループ(自分自身は除外) |
<mt:AITranslatorLinkURL> | ファンクション | 翻訳版のパーマリンク URL |
<mt:AITranslatorLinkLanguage> | ファンクション | 言語コード(例: en, ja) |
<mt:AITranslatorLinkLanguageLabel> | ファンクション | 言語名(例: English, 日本語) |
<mt:AITranslatorLinkBlogID> | ファンクション | 翻訳版のブログ ID |
<mt:AITranslatorLinkEntryID> | ファンクション | 翻訳版の ID (記事 / コンテンツデータ) |
<mt:AITranslatorGroupID> | ファンクション | 現在のコンテンツの翻訳グループ ID |
<mt:AITranslatorIfTranslationExists> | 条件 | 指定言語の翻訳が存在するかチェック |
言語切替ナビゲーションの例
<nav class="language-switcher">
<mt:AITranslatorLinks>
<a href="<mt:AITranslatorLinkURL>" hreflang="<mt:AITranslatorLinkLanguage>">
<mt:AITranslatorLinkLanguageLabel>
</a>
</mt:AITranslatorLinks>
</nav>
<mt:AITranslatorLinks> ブロック内では、翻訳グループ内の各言語版に対する情報がループされます。自分自身(現在のコンテンツ)は除外されます。
特定言語の翻訳存在チェック
<mt:AITranslatorIfTranslationExists language="en">
<p>English version is available.</p>
</mt:AITranslatorIfTranslationExists>
指定した language の翻訳が翻訳グループ内に存在する場合、内側のコンテンツが出力されます。
hreflang 属性の設定例
SEO 向けに <head> 内で hreflang を出力する例です。
<head>
<link rel="canonical" href="<mt:EntryPermalink>">
<mt:AITranslatorLinks>
<link rel="alternate"
hreflang="<mt:AITranslatorLinkLanguage>"
href="<mt:AITranslatorLinkURL>">
</mt:AITranslatorLinks>
</head>
翻訳グループ ID の取得
<mt:AITranslatorGroupID> で、現在のコンテンツが属する翻訳グループの UUID を取得できます。
翻訳グループは UUID v4 形式の文字列で識別されます。同じグループ ID を持つコンテンツ同士が「翻訳の関係にある」と扱われます。
ループの順序
<mt:AITranslatorLinks> のループ順は、言語コードのアルファベット順です。明示的に並び替えが必要な場合は MT の <mt:For> などと組み合わせて加工してください。
ループ内のコンテキスト
<mt:AITranslatorLinks> ブロック内では、各翻訳版のメタ情報(URL / 言語コード / 言語名 / ブログ ID / コンテンツ ID)にアクセスできます。
ただし、翻訳版コンテンツの本文や追加フィールドにはアクセスできません。本文を取得したい場合は、MTEntries や MTContents で別ブログのコンテンツを参照してください。
パフォーマンスの考慮
<mt:AITranslatorLinks> は内部で翻訳グループに属するすべての記事 / コンテンツデータを検索します。翻訳グループあたりのコンテンツ数が多い場合(10 言語超など)は、テンプレートのキャッシュを有効にしてレンダリング負荷を抑えることをおすすめします。