Magic Translate vs. Lingui
Lingui là một thư viện i18n mã nguồn mở cho JavaScript và React. Giống như Magic Translate, nó cho phép bạn viết các từ của riêng bạn trong các thành phần của bạn thay vì các phím. Sự khác biệt là những gì xảy ra tiếp theo: với Lingui, bạn trích xuất các tin nhắn, dịch chúng và biên dịch chúng cho mọi ngôn ngữ. Với Magic Translate, các bản dịch được tạo ra cho bạn.
Sơ lược
| Magic Translate | Lingui | |
|---|---|---|
| Cách bạn viết văn bản | Lời nói của riêng bạn, được gói trong <T> | Lời nói của riêng bạn, được gói trong <Trans> |
| Bản dịch | Dịch AI, được tạo tự động | Bạn trích xuất các tin nhắn và dịch chúng |
| Tệp tin nhắn | Không | Một danh mục cho mỗi ngôn ngữ, chẳng hạn như tệp PO |
| Xây dựng các bước | Không | Trích xuất và biên dịch các danh mục |
| Ngôn ngữ mới | Thay đổi cài đặt language | Dịch mọi tin nhắn sang ngôn ngữ mới |
| Số nhiều và định dạng | Dịch như một phần của câu | Tin nhắn ICU với quy tắc số nhiều cho mỗi ngôn ngữ |
| Giá | Gói miễn phí, sau đó gói hàng tháng dựa trên mức sử dụng | Mã nguồn mở và miễn phí |
Mã khác nhau như thế nào
Với Lingui, văn bản vẫn ở trong thành phần, nhưng mọi thư đều đi qua một danh mục:
import { Trans } from '@lingui/react/macro';const Cart = () => (<h2><Trans>Your shopping cart</Trans></h2>);// Then run `lingui extract`, translate the catalogs for every language,// run `lingui compile` and load the right catalog when the app starts.
Với Magic Translate, thành phần trông giống nhau và bản dịch được tạo tự động:
import { T } from '@magic-translate/react';const Cart = () => (<h2><T>Your shopping cart</T></h2>);
Khi nào nên chọn Magic Translate
- Bạn thích viết từ của riêng bạn trong các thành phần của mình và bạn không muốn duy trì danh mục.
- Bạn không có dịch giả hoặc bạn muốn phát hành bản cập nhật mà không cần chờ bản dịch.
- Bạn muốn thêm ngôn ngữ mà không cần quản lý một dự án dịch thuật.
Khi nào nên chọn Lingui
- Tất cả văn bản phải được dịch hoặc xem xét bởi một người.
- Bạn cần thông điệp ICU cho số nhiều và giới tính phức tạp.
- Bạn muốn có một thư viện mã nguồn mở miễn phí mà không có dịch vụ bên ngoài.
Chuyển từ Lingui sang Magic Translate
Bởi vì cả hai thư viện đều giữ văn bản trong thành phần, việc di chuyển chủ yếu là vấn đề thay thế các thành phần và hàm dịch: <Trans> trở thành <T> và macro t trở thành useT hook. Bạn có thể di chuyển một thành phần tại một thời điểm.
Sẵn sàng để thử nó? Làm theo hướng dẫn bắt đầu để dịch thành phần đầu tiên của bạn trong năm phút.