Moja aplikacja używa kątowego-translate, kątowego-routera i szablonów. Strony HTML aplikacji z wyjątkiem pliku index.html są spakowane do szablonów i obsługiwane przez Amazon CloudFront wspierane przez S3. Chciałbym znaleźć sposób na dynamiczne przełączanie języka w zależności od dwuliterowego kodu po nazwie domeny, a także, jeśli to możliwe, odbiór lokalnego ustawienia użytkownika i użycie go do domyślnego przełączania.Jak mogę dynamicznie przełączać języki za pomocą translatora kątowego i kątowego?
Powodem, dla którego chciałbym to zrobić, jest SEO, ponieważ przeczytałem, że Google zaleca umieszczenie kodu kraju pod adresem, jak poniżej.
Oto co mam do tej pory:
Plik Router
var home = {
name: 'home',
url: '/home/'
};
var homeAccess = {
name: 'home.access',
url: 'access',
views: {
'[email protected]': {
templateProvider: ['$templateCache', ($templateCache) => {
return $templateCache.get('webapi.html');
}],
}
}
};
Jakoś chciałbym zrobić to tak, że kiedy wyszukiwarka wybierze:
www.example.com/de/home/webapi or
www.example.com/en/home/webapi or
www.example.com/fr/home/webapi
To kanciasty routera przełącza się do odpowiedniego pliku językowego przed udostępnieniem pliku webapi.html.
Wszelkie sugestie, w jaki sposób mogę to zrobić, będą mile widziane. Idealnie chciałbym zobaczyć prosty przykład z przełącznikiem plików językowych, który pomógłby mnie i innym osobom w społeczności robić to, co jest potrzebne.
Należy pamiętać, że jest inny podobny pytanie tam:
Localize URL's with ui-router and angular-translate
odpowiedzi są dobre, ale mam również nadzieję, że dzięki otwarciu na to pytanie mogę uzyskać jeszcze lepsze i bardziej aktualne odpowiedzi, być może z pewnymi wytycznymi internacjonalizacji SEO. Myślę, że to jest tak ważna rzecz, że im więcej odpowiedzi, tym lepiej dla ludzi na tym forum.
Co ze znacznikiem podstawowym? Jeśli zmienisz go na odpowiedni język, powinien zadziałać? Lub wskaż katalog główny Twojej domeny i użyj zwrotu $ templateCache.get (myLocale + '/ home/webapi.html'); – Walfrat
Powiedziałbym, że pytanie, do którego się odwołujesz, zawiera dobrze wyjaśnione odpowiedzi (http://stackoverflow.com/questions/24281652/localize-urls-with-ui-router-and-angular-translate?rq=1). Możesz dowiedzieć się więcej, ale powinieneś wiedzieć, że Angular 1.x z punktu widzenia SEO nadal nie zapewni wystarczających wyników bez dodatkowych działań.Takie jak wstępne renderowanie, jeśli chcesz osiągnąć pełny efekt SEO. Jedna z usług, z których możesz skorzystać: https://prerender.io/ – shershen