2017-04-21 29 views
19

Tôi cần dịch ứng dụng Angular 4 của mình. Về cơ bản tôi đã theo dõi the official guide.Góc 4 i18n - cách tiếp tục sau khi thêm các tệp dịch?

  1. tôi thêm i18n thuộc tính để thẻ và vân vân

  2. Các góc-cli tạo ra một messages.xlf

  3. Tôi tạo ra một thư mục "locale" trong src thư mục

  4. Tôi đã sao chép messages.xlf vào thư mục miền địa phương này ...

  5. ... và đổi tên thành "messages. de .xlf" để giữ Đức dịch

tôi đã thay đổi một bản dịch đơn giản để kiểm tra những điều trên. Tuy nhiên, sau khi tôi chuyển trình duyệt của tôi sang "tiếng Đức", không có bất kỳ sự khác biệt nào (bắt đầu sử dụng npm, vì vậy về cơ bản 'ng phục vụ'). Dường như là vẫn còn thiếu thứ gì đó. Ngoài ra hướng dẫn giải thích how to 'merge' the translation. Nhưng chương này cực kỳ kỳ quặc và không có vẻ khá thuyết phục. Nó đọc như nó đã được thực hiện cho một phiên bản trước đó.

Ví dụ: trạng thái thích ứng với tập lệnh khởi động của tôi. Vấn đề là tôi thậm chí không có một kịch bản khởi động. Index.html của tôi trông giống như sau:

<!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> 

Tôi cần đặt tập lệnh khởi động này ở đâu? Tôi thậm chí không biết liệu tôi có sử dụng trình biên dịch JIT hay AOT hay không. Họ chưa bao giờ được đề cập trong bất kỳ hướng dẫn nào trước đây.

+0

bạn có quản lý để làm cho nó hoạt động không? Tôi đang mắc kẹt ở cùng một bước, câu trả lời dưới đây không thực sự giúp tôi. – gkri

+0

Chúng tôi đã thiết lập máy chủ nút js với mô-đun "Ngôn ngữ" chuyển hướng đến một ứng dụng cụ thể.Bạn cần xây dựng một ứng dụng cho từng ngôn ngữ bạn có và triển khai chúng vào các thư mục khác nhau. Ngôn ngữ: https://github.com/florrain/locale – OddDev

+0

Thing là, tôi không thể tiến xa hơn với việc xây dựng ứng dụng bằng các ngôn ngữ khác nhau vì tôi đang sử dụng JIT chứ không phải AOT – gkri

Trả lời

8

Tôi đã dịch ứng dụng Angular-4 của chúng tôi bằng phương pháp được mô tả trong sách dạy nấu ăn. Tôi nghĩ rằng thông tin quan trọng mà bạn đang thiếu là bạn cần phải "xây dựng" ứng dụng cho từng ngôn ngữ riêng biệt.

lệnh của tôi để chạy các ứng dụng cục bộ với một bản dịch như sau:

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

để xây dựng nó chỉ thay thế ng phục vụ với ng xây dựng

Giải thích:

  • - Tệp i18n đã chỉ định bản dịch nào sử dụng
  • - trước hết là compila trước tion của các mẫu html, điều này sẽ thay thế các văn bản được đánh dấu i18n bằng bản dịch của bạn

vì vậy trong trường hợp bạn sẽ xây dựng ứng dụng bằng tiếng Đức và sau đó triển khai - giả sử - vào/de thư mục. phiên bản khác của ứng dụng có thể nằm trong/vi, v.v.

thì bạn có thể chuyển hướng người dùng của mình dựa trên ngôn ngữ họ muốn có cho ứng dụng chuyên dụng.

hy vọng điều này sẽ giúp

Các vấn đề liên quan