Tôi sẽ tạo một ứng dụng web với Polymer. Đối với ứng dụng web đó, tôi cần bản địa hóa. Có cách nào để làm bản địa hóa Polymer không? Có ai từng thực hiện bản địa hóa trong ứng dụng web Polymer không?Bản địa hóa trong Polymer?
Trả lời
Tôi đã tự tạo một triển khai. Nhìn vào những gì tôi đã làm thì không khó để làm.
I18n và l10n cũng có trong danh sách việc cần làm của tôi. Hiện tại tôi đang chuyển một ứng dụng từ AngularJS sang Polymer. Back-end là Ruby on Rails. Tôi sử dụng đá quý i18n-js chuyển đổi các tệp dịch Rails (en.yml, de.yml và vv) thành một tệp JavaScript lớn chứa một đối tượng I2n với tất cả các bản dịch. Viên ngọc này cũng cung cấp một thư viện JavaScript để thực hiện các bản dịch văn bản và các bản địa hóa giá trị. Nhưng có những thư viện JavaScript khác cung cấp một chức năng tương tự.
Ngôn ngữ hiện tại được đặt từ phản hồi của yêu cầu HTTP, trả về người dùng Tiêu đề chấp nhận ngôn ngữ.
Không có gì Polymer cụ thể cho đến thời điểm này.
Sau đó tôi đã tạo một loạt các bộ lọc biểu thức Polymer toàn cầu thực hiện các phép biến đổi miền địa phương khác nhau trên chuỗi đầu vào của chúng. Đây là phương pháp giống như phương pháp tôi đã học để sử dụng trong ứng dụng AngularJS. Bộ lọc dịch trông giống như sau (I18n.t
là chức năng dịch của thư viện JavaScript)
PolymerExpressions.prototype.i18n = function(key) {
return I18n.t(key);
};
và được sử dụng như vậy
<paper-button label="{{ 'action.help' | i18n }}"></paper-button>
Một nội địa hóa ngày có thể được viết như
{{ someDate | i18n_date('short') }}
Tôi đã đóng gói các bộ lọc i18n và các chức năng trợ giúp bổ sung thành một phần tử Polymer, vì vậy tôi cũng có thể bao gồm phần tử này trong phần tử khác và sử dụng bản dịch functio ns từ bên trong mã JavaScript của nó.
Phần tử i18n cũng được bao gồm trong phần tử ứng dụng chính của tôi, nơi nó khởi tạo thư viện I18n và đặt ngôn ngữ mặc định và hiện tại.
Điều này có vẻ tuyệt vời! Bạn sẽ đặt gói của bạn trên GitHub? –
@dirk điều này thật tuyệt vời. Bạn có thể chia sẻ mã với thế giới không? Hiện tại không có nhiều thứ. –
Không nhận thức được Polymer
-way đang thực hiện i18n, tôi khuyên bạn nên thực hiện phía máy chủ đó.
Trong trường hợp khung là Spring
, tôi sẽ triển khai các phần tử tùy chỉnh dưới dạng jsp và xử lý i18n như bình thường với các thẻ <spring:message />
.
Chỉ báo trước là việc chuyển đổi ngôn ngữ của ứng dụng sẽ yêu cầu tải lại hoàn toàn. Nhưng khi chuyển đổi ngôn ngữ thường không được thực hiện thường xuyên, tôi không nghĩ đây là vấn đề.
Đối với Polymer 1.0 Tôi vừa xuất bản một phần tử đơn giản (nhiều trong phát triển) (xem nó trên gitlab hoặc đọc về nó here).Nó tải các tập tin dịch không đồng bộ và sử dụng khá đơn giản:
<!-- Import it in head -->
<link rel="import" href="bower_components/quaintous-i18n/quaintous-i18n.html">
<!-- initialize it in body -->
<quaintous-i18n locales-path="/locales/fa.json"></quaintous-i18n>
Bây giờ bạn có thể sử dụng nó trong nhiều cách khác nhau:
- Trong thuộc tính tính: chỉ cần thêm
I18N
như yếu tố của bạn behavior và dịch dữ liệu của bạn các ràng buộc, ví dụ{{__('hello')}}
- Trong ngữ cảnh chung, chỉ cần sử dụng đối tượng
I18N
, ví dụ:I18N.__('hello')
Sử dụng Polymer.AppLocalizeBehavior
https://github.com/PolymerElements/app-localize-behavior
Tôi đang sử dụng hành vi này trong PWA Template cho miền địa phương cho mỗi phần tử tùy chỉnh.
https://github.com/StartPolymer/progressive-web-app-template
- 1. Bản địa hóa hình ảnh trong ASP.NET
- 2. Android xóa bản địa hóa
- 3. Bản địa hóa meteor js
- 4. Nội dung bản địa hóa + Bảng phân cảnh + .strings -> không bản địa hóa
- 5. Bản địa hóa với HTML-Thẻ
- 6. Cách bản địa hóa các nút AppBar
- 7. Cách bản địa hóa nhãn trợ năng
- 8. JavaFX 2.x Bản địa hóa TableView
- 9. Tạo Enum.toString() đã bản địa hóa
- 10. Bản địa hóa thuộc tính với l20n
- 11. Bản địa hóa và JQuery/JavaScript
- 12. Moment.js: chỉ một số bản địa hóa
- 13. Cách nhận CFBundleDisplayName được bản địa hóa
- 14. Phonegap/Sencha Ngôn ngữ bản địa hóa
- 15. Bản địa hóa Thẻ Facebook OG
- 16. Nội địa hóa và bản vẽ
- 17. Android bản địa hóa es-r419
- 18. Javascript toFixed được bản địa hóa?
- 19. Tên nhóm được bản địa hóa
- 20. Tên quốc gia được bản địa hóa
- 21. BlackBerry: Bản địa hóa, Gói tài nguyên
- 22. Giải pháp scriptbundle được bản địa hóa
- 23. javascript: bản địa hóa các biến trong khối
- 24. Bản địa hóa nhãn nút gửi HTML trong Wicket
- 25. URL được bản địa hóa trong Play 2.0?
- 26. Thiếu nội dung bản địa hóa trong Xcode 6.1
- 27. Màn hình Splash được bản địa hóa trong iPhone
- 28. Cách bản địa hóa tệp javascript trong wicket
- 29. bản địa hóa tài nguyên thô trong ứng dụng android
- 30. cách bản địa hóa mô tả thuộc tính trong C#?
Tôi sử dụng L20n. Kiểm tra tại đây: http: //stackoverflow.com/questions/35677198/tutorial-solution-for-node-js-polymer-i18n-based-on-l20n-library – AlexNasonov