← Khái niệm

Cách Langsys hoạt động

Langsys biến những câu có sẵn trong giao diện của bạn thành hệ thống dịch thuật. Không có tệp khóa nào cần duy trì và không có bước trích xuất khi build — cụm từ trong mã của bạn vừa là khóa tra cứu vừa là giá trị mặc định bằng ngôn ngữ gốc.

Xem · 0:30 Quy trình làm việc

Cụm từ chính là khóa

Với i18n truyền thống, bạn phải đặt một mã định danh cho mỗi chuỗi, lưu văn bản thật trong tệp ngôn ngữ, rồi luôn phải giữ cho hai bên đồng bộ. Langsys loại bỏ bước trung gian đó: bạn viết đúng câu cần hiển thị, và chính câu đó là khóa.

Phồn thể
// Traditional i18n — indirection + a keys file to maintain
t('greetings.hello');            // what does this say? open en.json to find out

// en.json
{ "greetings": { "hello": "Hello, {name}!" } }
Langsys
// Langsys — the phrase IS the key and the base-language default
t('Hello, {name}!', 'Greetings', { name });

Vì văn bản nguồn chính là khóa, nên cùng một cụm từ xuất hiện ở bất kỳ đâu trong ứng dụng của bạn chỉ là một mục cần dịch — việc loại bỏ trùng lặp diễn ra tự động — và ngôn ngữ chưa được dịch sẽ tự động dùng lại văn bản nguồn. Không có chuyện hiển thị chuỗi giữ chỗ báo thiếu khóa.

Thời gian thực và liên tục

Bạn không bao giờ phải chạy lệnh trích xuất. Khi ứng dụng hiển thị, SDK sẽ phát hiện các cụm từ mà nó sử dụng. Những cụm từ mới được dịch máy ở chế độ nền sang các locale đích của dự án, và ứng dụng của bạn tải về bộ danh mục đã hoàn tất. Hôm nay bạn thêm một câu mới; ngay sau đó câu ấy sẽ được dịch, không cần triển khai lại gói locale.

Vòng đời

  1. Giao diện của bạn hiển thị các cụm từ bằng t(), <Translate> và các hàm tương tự.
  2. Trong môi trường phát triển, khóa ghi cho phép SDK phát hiện và đăng ký mọi cụm từ mới.
  3. Langsys sẽ dịch tự động chúng sang mọi ngôn ngữ đích trong dự án của bạn.
  4. Trong môi trường production, một khóa chỉ đọc sẽ tải danh mục hoàn chỉnh cho ngôn ngữ của người dùng.
  5. Đổi ngôn ngữ và toàn bộ giao diện sẽ được hiển thị lại bằng bản dịch — ngay lập tức, không cần tải lại trang.

So với i18n truyền thống. Không phải sửa tay en.json, không có lớp gián tiếp t('some.nested.key'), không có bước trích xuất trong quá trình build, và không có phương án dự phòng khi thiếu khóa — câu gốc luôn là phương án dự phòng.

Tìm kiếm trong tài liệu & Trung tâm học tập