2017-04-21 52 views
19

Muszę przetłumaczyć moją aplikację Angular 4. Zasadniczo podążyłem za the official guide.Angular 4 i18n - jak przejść po dodaniu plików tłumaczeń?

  1. I dodaje i18n atrybutów znaczników itd

  2. kątowa-cli utworzony messages.xlf

  3. utworzonego katalog "locale" w Src katalogu

  4. Skopiowałem plik messages.xlf do tego folderu ustawień narodowych ...

  5. ... i zmieniono jego nazwę na "wiadomości." de .xlf”trzymać niemieckiej tłumaczenia

Zmieniłem proste tłumaczenie, aby przetestować rzeczy. Jednak po zmianie przeglądarki na "niemiecki" nie było żadnej różnicy (użyłem npm start, więc w zasadzie "ng serve"). Wydaje się, że czegoś jeszcze brakuje. Również przewodnik wyjaśnia how to 'merge' the translation. Ale ten rozdział jest niesamowicie dziwny i nie brzmi przekonująco. Czyta się tak, jakby to było zrobione dla wcześniejszej wersji.

Na przykład stwierdza, aby dostosować mój skrypt uruchamiania. Chodzi o to, że nie mam nawet skryptu startowego. Mój index.html wygląda następująco:

<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>PickUp2</title> 
    <base href="/"> 

    <link href="assets/iconfont/material-icons.css" rel="stylesheet"> 
    <link href="roboto.css" rel="stylesheet"> 

    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="icon" type="image/x-icon" href="assets/material_supply_icon.ico"> 
</head> 
<body> 
    <app-root>Loading...</app-root> 
</body> 
</html> 

Gdzie muszę umieścić ten skrypt startowy? Nie wiem nawet, czy używam kompilatora JIT lub AOT. Nigdy nie wspomniano o nich w żadnym przewodniku.

+0

czy udało Ci się sprawić, że działa? utknąłem na tym samym kroku, odpowiedź poniżej nie pomaga mi. – gkri

+0

Skonfigurowaliśmy serwer węzła js z modułem "Locale", który przekierowuje do konkretnej aplikacji.Musisz zbudować aplikację dla każdego posiadanego języka i wdrożyć ją w różnych folderach. Lokalizacja: https://github.com/florrain/locale – OddDev

+0

Chodzi o to, nie mogę dalej rozwijać aplikacji w różnych językach, ponieważ używam JIT, a nie AOT – gkri

Odpowiedz

8

Przetłumaczyłem naszą aplikację Angular-4 za pomocą metody opisanej w książce kucharskiej. Myślę, że kluczowymi informacjami, których brakuje, jest to, że musisz "skompilować" aplikację dla każdego języka osobno.

Moje polecenie, aby uruchomić aplikację lokalnie z jednym tłumaczeniu wygląda następująco:

>ng serve --i18n-file src/i18n/messages.fr.xlf --locale fr --i18n-format xlf --aot 

ją zbudować tylko zastąpić ng służyć ng budować

Poradnik:

  • - Plik i18n określił, które tłumaczenie ma być używane do kompilacji z wyprzedzeniem szablony html, zastąpi to teksty oznaczone i18n swoimi tłumaczeniami

, więc w twoim przypadku musisz zbudować aplikację w języku niemieckim, a następnie wdrożyć ją - powiedzmy - do folderu/de. Inna wersja aplikacji może być w/en itp.

następnie możesz przekierować użytkowników w oparciu o język, który chcą mieć do dedykowanej aplikacji.

mam nadzieję, że pomoże to