Một tính năng quan trọng đối với nhiều trang web đó là việc hỗ trợ đa ngôn ngữ, nó giúp cho trang web đến được với nhiều độc giả hơn và trở nên thân thiện hơn. Tuy vậy công việc chuyển ngữ cho trang web ra thành nhiều ngôn ngữ khác nhau không phải là việc dễ dàng đặc biệt khi những đoạn text cần dịch là khổng lồ. Thử hình dung flow của việc dịch thuật như sau:
- Developer tạo ra một file ngôn ngữ nguồn, chẳng hạn en.json, với các cặp giá trị key-value, trong đó key là mã của string cần translate, value là string đó trong tiếng Anh.
- Developer tạo ra một file đích với các key tướng ứng, và value được dịch sang tiếng Việt.
- Khi có một đoạn text mới cần dịch thì bạn developer cần mẫn của chúng ta lại tạo ra thêm các cặp key-value ở tất cả các file ngôn ngữ.
- Nếu bạn developer không thể tự dịch sang ngôn ngữ khác thì sao? Sẽ có một bạn gọi là translator giúp. Có thể là bạn đó được bạn dev gửi file en.json và gửi lại một file ja.json. Tất nhiên nếu có thêm các đoạn text cần xử lý (vì trang web luôn luôn thay đổi theo thời gian), thì quá trình tương tác có thể là một gánh nặng lớn.
Vậy có cách nào để quá trình dịch này trở nên dễ dàng hay không? Làm sao có thể quản lý được việc dịch và kết quả dịch để tránh được sai sót trong quá trình với quá nhiều step kể trên???
Câu trả lời đó là hãy dùng công cụ hỗ trợ – đó chính là WEBLATE!!!
Weblate
Weblate là một công cụ localization (địa phương hóa) chạy trên nền web, thực chất là một website viết bằng Django Framework.
Tại sao Weblate lại giải quyết được bài toán trên? Vì WEBLATE:
- tích hợp source control (GIT, SVN)
- hỗ trợ nhiều định dạng file
- ghi lịch sử người dịch
- hiển thị ngữ cảnh
- có khả năng gộp các bản dịch
- kiểm tra tính thống nhất
Với Weblate, quá trình dịch trở nên chủ động, dev và translator có thể làm việc độc lập với nhau và theo dõi được progress của nhau.
Weblate tự động cập nhật quá trình dịch nhờ có việc tích hợp source control và các trigger tới source repository, do đó tất cả member trong dự án có thể dễ dàng theo dõi và có các hành động phù hợp.
Cài đặt
Việc cài đặt Weblate rất đơn giản với nhiều lựa chọn khác nhau. Có thể cài trực tiếp từ source code hoặc thông qua Docker. Xem thêm tại đây
Weblate cũng có thể chạy trên nhiều môi trường khác nhau
Cài đặt Weblate bằng Docker
$ git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker
$ cd weblate-docker
Tạo mới 1 file tên là docker-compose.override.yml sau đó cấu hình các biến môi trường phù hợp, ví dụ:
version: '3'
services:
weblate:
ports:
- 80:8080
environment:
WEBLATE_EMAIL_HOST: smtp.example.com
WEBLATE_EMAIL_HOST_USER: user
WEBLATE_EMAIL_HOST_PASSWORD: pass
WEBLATE_SERVER_EMAIL: weblate@example.com
WEBLATE_DEFAULT_FROM_EMAIL: weblate@example.com
WEBLATE_SITE_DOMAIN: weblate.example.com
WEBLATE_ADMIN_PASSWORD: password for the admin user
WEBLATE_ADMIN_EMAIL: weblate.admin@example.com
Sau đó chạy lệnh sau là sẽ vào được weblate ở địa chỉ localhost
$ docker-compose up
Cài đặt Weblate lên Kubenetes cluster
Nếu bạn có một Kubenestes cluster thì cài đặt welate rất dễ dàng như sau
$ helm repo add weblate https://helm.weblate.org
$ helm repo update
$ helm install weblate/weblate -n weblate
Weblate đang được tích cực phát triển và hứa hẹn có nhiều thêm các tính năng hữu ích trong tương lai!