2

私はUmbracoを初めて使用するので、質問は非常に単純であることがわかるかもしれませんが、オンラインで簡単なガイドを見つけることができませんでした。

私は次のように1つのドメインと構造を持つ単純なウェブサイトを構築しています

Content

- en
-- products
-- contacts

- cs
-- produkty
-- kontakty

等々。私の最初の質問は、SEOでいくつかの素晴らしい結果を達成したいので、(i)「en」ノードと「cs」ノードのコンテンツ、およびいくつかのキーワードにメタ言語を割り当てる必要があるということです。これはどのようにすればよいですか?

2番目:将来、新しい言語を追加することにしたとしましょう。ロシア。したがって、「en」ノードとその内容のコピーを作成する必要がありますが、新しく作成されたコピーに含まれるリンクは、元のコピーではなくコピーを指すように書き直す必要があります(元のページは/ en / anotherpageになります)。 、これは/ ru / anotherpageに書き換える必要があります)。これは可能ですか?

ありがとう、Ondrej

4

3 に答える 3

2

コンテンツ構造を単一のルートノードとして構築し、コンテンツルートのすぐ下に複数の言語ホームページノードを配置することができます。

言語を割り当てるには、en-GB、fr-FRなどのすべての.Netカルチャを表示するだけのカスタムデータ型を作成できます。そのデータ型を言語ホームページのドキュメントタイプのフィールドとして含め、この値をに出力します。ホームページと各子孫のマークアップ。

言語ホームページのドキュメントタイプで、「umbracoUrlName」というテキスト文字列プロパティを追加できます。次に、このプロパティを使用してUrl名を上書きできます。たとえば、www.domain.com / en /english-home/の代わりにwww.domain.com/en/のページを呼び出すことができます。

後日サイトを複製することに関しては、これは難しいものです。メディアピッカーやuComponentのマルチノードツリーピッカーなどのデータ型を使用してリンクが作成されている場合は、コピーされたブランチからリンクを継承する以外に選択肢はありません。ただし、リンクがRazorまたはXSLTで動的に作成される場合は、言語のホームページまたは現在のページに関連するリンクを作成できるはずです。たとえば、XSLTでは、親言語のホームページの子を取得することは、のようになります$currentPage/ancestors-or-self::* [@level = '2']/child::*。言い換えると、相対トラバーサルを巧妙に使用することで、リンクのハードコーディングを回避できます。

于 2012-07-09T17:04:55.517 に答える
0

これにより、Umbracoで多言語サイトを作成するための良いスタートを切ることができます。

http://our.umbraco.org/wiki/how-tos/running-multi-lingual-sites-under-a-single-domain

将来ロシア語版を作成する場合は、上記のとおり簡単に実行できます。

于 2012-07-04T14:45:11.540 に答える
0

言語メタデータを設定するには、これを言語ルートノードのプロパティに格納します。例:/ en /任意のページから言語ページプロパティを取得するには、次のようにします。

var langNode = new Node(int.Parse(node.Path.Split(',')[1]));
langNode.GetProperty("languageCode");

英語版をロシア語版にコピーしてすべてのリンクを修正することに関しては、umbracoでこれを支援するものは何もありません。自分で何かを書いて、すべてのリンクとノード参照を見つけて修正することができます。リレーションAPIを使用して、どこからどこに何がコピーされたかを追跡できます。最終的にノードを複数回コピーする可能性があることに注意する必要があります。

データが多すぎない場合は、手動でリンクを修正する方が速い場合があります。

于 2012-07-10T01:37:22.743 に答える