2016-12-22 35 views
6

Tôi đã học về Góc 2, và tự hỏi điều gì được coi là thực hành tốt nhất để lưu trữ chuỗi. Tôi sử dụng chuỗi khác nhau trong suốt ứng dụng: Một số được đặt trực tiếp trong các phần tử HTML, ví dụ:Thực hành tốt nhất trong Angular 2

// sample.html 
<h1>This is my title</h1> 

dây khác được lưu trữ trong các mô hình thành phần đang bị ràng buộc để, ví dụ:

// boundSample.html 
<h1>{{myTitle}}</h1> 

// boundSample.component.ts 
import ... 

@Component({ 
    templateUrl: 'boundSample.html'; 
}) 
export class BoundSampleComponent { 
    myTitle = 'This is another title'; 
} 

mối quan tâm của tôi là chuỗi của tôi được lan truyền trong suốt ứng dụng. Đến từ nền C#/WPF, tôi sử dụng để giữ các chuỗi của mình ở một vị trí duy nhất (ví dụ: strings.xaml) mà tôi có thể nhập vào mã và đánh dấu UI (nghĩa là XAML cho WPF, HTML cho Góc). Điều này rất hữu ích với khả năng bảo trì và quốc tế hóa.

Ngoài ra, xem nhanh internationalization ở góc 2 đề xuất sử dụng thuộc tính i18ni18n tool. Điều này giả định rằng tất cả các chuỗi của tôi được xác định bằng HTML, nhưng nếu tôi muốn sử dụng một số chuỗi đó trong mã ...

Làm cách nào và ở đâu có thể xác định một vị trí cho chuỗi của tôi trong Angular2 để tôi có thể truy cập những chuỗi mã đó và sử dụng các công cụ quốc tế hóa?

+0

Thư viện bản địa hóa sau có giúp bạn đạt được những gì bạn đang theo dõi không? https://github.com/robisim74/angular2localization/ – Peza

+0

Chỉ cần thêm một giải pháp thay thế. Chúng tôi đang sử dụng lib này trong dự án hiện tại của chúng tôi: https://github.com/ocombe/ng2-translate/ nhưng angular2localization trông cũng khá giàu tính năng (theo nghĩa tích cực). – meistermeier

+0

https://angular.io/docs/ts/latest/cookbook/i18n.html –

Trả lời

2

Bạn có thể tìm kiếm một số công cụ, một số công cụ là tốt và đã triển khai những thứ bạn muốn có. Tuy nhiên nếu bạn muốn làm điều đó cách bạn sử dụng để, chỉ cần làm như sau:

  1. Store chuỗi trong XAML/JSON/YAML/etc tập tin mà bạn lưu trữ dây của bạn. Nếu bạn sử dụng webpack, hãy sử dụng trình tải thích hợp để xử lý nội dung cho bạn. Nếu không, bạn sẽ cần phải phân tích cú pháp tệp này theo cách của riêng bạn.

  2. Tạo dịch vụ có thể lấy thông tin từ tệp (trong hàm tạo mà tôi đoán) và có hàm trả về chuỗi dựa trên mã thông báo chuỗi.

  3. Tạo đường ống trả về chuỗi dựa trên mã thông báo.

  4. Sử dụng đường ống trong HTML và dịch vụ trong tệp bản ghi.

i18n - không sao, chỉ cần chuyển ngôn ngữ đến chức năng dịch vụ/đăng ký ngôn ngữ thay đổi có thể quan sát được trong dịch vụ.

Việc triển khai là tầm thường. Nhưng hãy suy nghĩ hai lần: bạn có thể sử dụng các giải pháp đã tồn tại.

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