私のアプリケーションは、角度変換、角度UIルータ、およびテンプレートを使用しています。 index.htmlを除くアプリケーションのhtmlページはテンプレートにパッケージ化されており、Amazon CloudFrontはS3にバックアップされています。私がしたいのは、ドメイン名の後の2文字コードに応じて言語を動的に切り替える方法を見つけることです。可能であれば、ユーザーのロケールでピックアップし、デフォルトの切り替えに使用します。角度変換および角度uiルータで言語を動的に切り替えるにはどうすればよいですか?
私がこれをやりたいのは、Googleが下記のように住所に国コードを入れることをお勧めしているので、SEO目的のためです。ここで
は、私がこれまで持っているものです。
ルータファイル
var home = {
name: 'home',
url: '/home/'
};
var homeAccess = {
name: 'home.access',
url: 'access',
views: {
'[email protected]': {
templateProvider: ['$templateCache', ($templateCache) => {
return $templateCache.get('webapi.html');
}],
}
}
};
どういうわけか、私は、検索エンジンが選択したときようにそれをしたいと思い:
www.example.com/de/home/webapi or
www.example.com/en/home/webapi or
www.example.com/fr/home/webapi
角度ルータことwebapi.htmlファイルを提供する前に適切な言語ファイルに切り替えます。
どのように私がこれを行うことができたかに関する提案は非常に感謝します。理想的には私とコミュニティの他の人たちが必要なことをするのに役立つ言語ファイルスイッチャーを使った簡単な例を見たいと思っています。 、
Localize URL's with ui-router and angular-translate
答えは良いがあるが、私もこの質問を開いて、私はより良い、より更新答えを得ることができることを願っています:
はそこに他の同様の質問がありますのでご注意くださいおそらくいくつかの国際化のSEOのヒントが投げ込まれています。私はちょうどこれがこのフォーラムで人々を助けるためのより多くの答えがより良いより重要なことだと思う。
$stateProvider.state('common', {
abstract: true,
url: '/{lang:(?:es|en)}'
});
とした後、あなたのhome
状態が共通の子供のようになります。:今
$stateProvider.state('common.home', {
url: '/home',
templateUrl: 'views/home.html',
});
セットアップができ
ベースタグはどうですか?適切な言語に切り替えるとうまくいくはずですか?または、ドメイン名のルートを指し、return $ templateCache.get(myLocale + '/ home/webapi.html');を使用します。 – Walfrat
あなたが参照している質問によく解説されている回答があります(http://stackoverflow.com/questions/24281652/localize-urls-with-ui-router-and-angular-translate?rq=1)。あなたはもう少し把握することができますが、SEOの観点からのAngular 1.xは余分な行動がなければ十分な結果を得られません。あなたが完全なSEOの効果を達成したい場合は、事前レンダリングなど。あなたが利用できるサービスの1つ:https://prerender.io/ – shershen