22/09/2018, 08:28

Vấn đề đa ngôn ngữ trong angularjs

Trong phần này, mình sẽ thêm chức năng đa ngôn ngữ cho dự án. Đa ngôn ngữ là một phần quan trọng và có mặt ở rất nhiều ứng dụng. Việc xây dựng chức năng này tương đối phức tạp, tuy nhiên lại mang lại lợi ích không nhỏ về lâu dài. Phần source code của dự án các bạn có thể xem tại đây ...

Trong phần này, mình sẽ thêm chức năng đa ngôn ngữ cho dự án. Đa ngôn ngữ là một phần quan trọng và có mặt ở rất nhiều ứng dụng. Việc xây dựng chức năng này tương đối phức tạp, tuy nhiên lại mang lại lợi ích không nhỏ về lâu dài. Phần source code của dự án các bạn có thể xem tại đây https://github.com/thanhson1085/bean-seed/tree/4.4

Trước khi bắt đầu, chúng ta cần cài đặt các thư viện sau:

Sau đó thêm module mới pascalprecht.translate vào app/scripts/config.tpl.js

Tiếp đến chúng ta cần tạo thư mục resources để lưu các file ngôn ngữ:

Thêm nội dung vào file locale-us_US.json

Thêm cấu hình đa ngôn ngữ vào các file config như config/local.json

Thêm config vào file app.js

Thay đổi nội dung file app/views/users/list.html

Như vậy, đến đây chúng ta đã có thể thấy rằng Angular Translate sẽ đọc các label được khai báo trong file ngôn ngữ và đưa vào view (ví dụ list.html). Nhưng vẫn còn thiếu phần để người dùng có thể thay đổi ngôn ngữ của ứng dụng. Ở đây, ứng dụng có hai ngôn ngữ là English và Việt Nam.

Để làm được điều đó, chúng ta sẽ xây dựng một View và một Directive với từng bước như sau:

Tạo một Service thay đổi ngôn ngữ app/scripts/services/locale.js

Tiếp đến tạo một Directive app/scripts/directives/locale.js

Tạo một view, và thêm Directive vừa tạo vào view app/views/users/setting.html

Cuối cùng, thêm một route mới – app/scripts/app.js

Như vậy, chúng ta đã hoàn thành các bước để thêm chức năng Đa ngôn ngữ vào ứng dụng.

Techtalk via sonnguyen

0