web-dev-qa-db-ja.com

多言語サイトでまだ翻訳されていないプレースホルダーコンテンツを処理する方法

私は多くの異なる言語(約24)があるサイトで作業しています。コンテンツが英語で作成されると、すべての言語サイトに自動的にコピーされ、後で適切な言語に翻訳されます。現在、hreflanghead<link>要素を次のように使用しています。

<link rel="alternate" hreflang="da" href="http://server/da/wiki/some-page/" />
<link rel="alternate" hreflang="de" href="http://server/de/wiki/some-page/" />
<link rel="alternate" hreflang="et" href="http://server/et/wiki/some-page/" />
<link rel="alternate" hreflang="en" href="http://server/en/wiki/some-page/" />
<link rel="alternate" hreflang="x-default" href="http://server/en/wiki/some-page/" />
<link rel="alternate" hreflang="es" href="http://server/es/wiki/some-page/" />
<link rel="alternate" hreflang="fr" href="http://server/fr/wiki/some-page/" />
<link rel="alternate" hreflang="is" href="http://server/is/wiki/some-page/" />
<link rel="alternate" hreflang="it" href="http://server/it/wiki/some-page/" />
<link rel="alternate" hreflang="lv" href="http://server/lv/wiki/some-page/" />
<link rel="alternate" hreflang="lt" href="http://server/lt/wiki/some-page/" />
<link rel="alternate" hreflang="hu" href="http://server/hu/wiki/some-page/" />
<link rel="alternate" hreflang="nl" href="http://server/nl/wiki/some-page/" />
<link rel="alternate" hreflang="no" href="http://server/no/wiki/some-page/" />
<link rel="alternate" hreflang="pl" href="http://server/pl/wiki/some-page/" />
<link rel="alternate" hreflang="fi" href="http://server/fi/wiki/some-page/" />
<link rel="alternate" hreflang="sv" href="http://server/sv/wiki/some-page/" />
<link rel="alternate" hreflang="tr" href="http://server/tr/wiki/some-page/" />
<link rel="alternate" hreflang="ru" href="http://server/ru/wiki/some-page/" />
<link rel="alternate" hreflang="ar" href="http://server/ar/wiki/some-page-2/" />
<link rel="alternate" hreflang="th" href="http://server/th/wiki/some-page/" />
<link rel="alternate" hreflang="ja" href="http://server/ja/wiki/some-page/" />

私の理解では、x-defaultの使用はcanonicalよりも好まれます-これは正しいですか?また、まだ翻訳されていないページ(noindexnofollowなど)に追加のタグが必要ですか?私が見つけた多くのリソースは、互いに矛盾しているか、未翻訳の(重複した)コンテンツの場合の対処方法が明確ではありません。

7
phatskat

HTML5の場合:

同じコンテンツ(まだ翻訳されていないため、同じ言語)を含むページにリンクする場合は、

  • hreflangを使用できますが、値はコンテンツの現在の言語である必要があり、将来翻訳される言語ではありません(¹)
  • ドキュメントは代替表現であるため、alternateを使用できます
  • alternate + hreflangを使用できます(上記のリンクの例外のため、リンク文書のlang要素のhtml属性がリンクのhreflang属性と同じ値を持つ場合、翻訳とは見なされません)

言い換えれば、質問のマークアップは無効です。a)hreflangは間違った言語を示し、b)これから、リンクされたドキュメントは翻訳されていない(少なくともまだ)ことを示すからです。

私の意見では、最良の解決策は、翻訳されていないページにリンクするnotでしょう。通常、このようなリンクは訪問者には役立ちません。ドイツのユーザーが英語のページにアクセスし、ドイツ語の翻訳にリンクしていることをメモし、そのリンクをたどると、同じコンテンツがまだ英語のままで別のページに移動します。ボットについても同じ考えです。間違ったシグナルを送信します。

代わりに、ページが翻訳されたらすぐにリンクを追加してください。

それが不可能な場合は、meta-robots要素をnoindex値または同等のX-Robots-Tagヘッダー( examples )を使用して、未翻訳ページのインデックス作成を禁止することは理にかなっています。特にコンテンツの翻訳に時間がかかる場合は、未翻訳ページへのリンクでnofollowリンクタイプを使用します( 使用する意味によって異なります )。


(¹)hreflangの場合、HTML5仕様は「リンクされたリソースの言語」を提供することだけを定義しているため、ドイツ語のページ(ヘッダー、フッター、ナビゲーション、サイドバー)にどの値を使用するかは明確ではありません英語のメインコンテンツ。ヘッダー/フッターなどのために、値がdeであると思われる場合。 (メインコンテンツのため、enの代わりに)、翻訳先の言語に言語タグを使用することが適切な場合があります。その場合、alternate + hreflangの例外は無関係です。実際に翻訳をリンクするのと同様です(ただし、メインコンテンツは翻訳されません)。

FWIW、Googleは hreflangガイドライン の最初の例として同様のケースをリストしています:

メインコンテンツを単一の言語で保持し、ナビゲーションやフッターなどのテンプレートのみを翻訳します。フォーラムのようなユーザー生成コンテンツを特徴とするページは、通常これを行います。

1
unor

別のhreflangでまだターゲットに設定していないWebサイトのデフォルトバージョンにはx-defaultを使用します。参考までに、Googleはcanonicalについて言及していません。

参照: https://googlewebmastercentral.blogspot.fr/2013/04/x-default-hreflang-for-international-pages.html

あなたがあなたの質問に追加したコードから、私は設定ミスを見ることができます

<link rel="alternate" hreflang="en" href="http://server/en/wiki/some-page/" />
<link rel="alternate" hreflang="x-default" href="http://server/en/wiki/some-page/" />

X-default行はすでに英語を指しています。そのため、地域についても言及する場合を除いて、再度追加する必要はありません。たとえば、英語を話す世界中の人にデフォルトページを表示させたい場合や、イギリスの人に特定のページを表示させたい場合:

<link rel="alternate" hreflang="en-gb" href="http://server/en/wiki/some-page/" />
<link rel="alternate" hreflang="x-default" href="http://server/en/wiki/some-page/" />
1

これはonlyであり、検索エンジンとサイトの検索場所の通信のためです-このコードのすべてをSitemap選択したウェブマスターインターフェースの検索エンジンで送信します。

利点:

  • HTMLを肥大化させることなく、好きなだけ大きくしてください。制限はありません!
  • ヘッダーリンク構造の混乱を心配する必要はありません。
  • 自分のサイトをより簡単にクロールできますが、サイトマップにわかりにくい名前を付けることで、他のクローラーからリンクを隠すことができます。
  • サイト全体に対してプログラムで生成します。
  • Webmasterにエラー(インデックス作成と解析)をスキャンさせるのは簡単です。
  • インデックス付けとタグ付けが必要な多くのページに対応する1つのファイルソリューション。
  • スクリプトは、コンテンツを追加すると自動的に更新できます。

デメリット:

  • 数ページしか実行していない場合は、セットアップに時間がかかります。
  • スクリプトを使用していない場合は、HTMLとは別に更新する必要があります。

Googleの公式ドキュメントは次のとおりです。 https://support.google.com/webmasters/answer/2620865?hl=en

以下は、投稿の最初の3つのリンクを含むXMLの例です。

<url>
    <loc>http://server/en/wiki/some-page/</loc> <!--The Original Page-->
    <xhtml:link 
             rel="alternate"
             hreflang="da" <!--Alternate language code-->
             href="http://server/da/wiki/some-page/" <!--Link to alt page-->
             />
<xhtml:link 
             rel="alternate"
             hreflang="de"
             href="http://server/de/wiki/some-page/"
             />
<xhtml:link 
             rel="alternate"
             hreflang="et"
             href="http://server/et/wiki/some-page/"
             />
</url>
1
L Martin