Tài liệu

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 TranslateLingui
Cách bạn viết văn bảnLờ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ịchDịch AI, được tạo tự độngBạn trích xuất các tin nhắn và dịch chúng
Tệp tin nhắnKhôngMộ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ướcKhôngTrích xuất và biên dịch các danh mục
Ngôn ngữ mớiThay đổi cài đặt languageDịch mọi tin nhắn sang ngôn ngữ mới
Số nhiều và định dạngDịch như một phần của câuTin 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ụngMã 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.