Tài liệu

Magic Translate vs. react-intl

react-intl là một phần của FormatJS. Nó định dạng tin nhắn, ngày tháng và số với cú pháp tin nhắn ICU và bạn cung cấp các bản dịch cho mỗi ngôn ngữ. Magic Translate dịch trực tiếp văn bản trong các thành phần của bạn, vì vậy bạn không viết hoặc duy trì bất kỳ bản dịch nào.

Sơ lược

Magic Translatereact-intl
Cách bạn viết văn bảnLời nói của riêng bạn, được gói trong <T><FormattedMessage> với một id và một thông báo mặc định
Bản dịchDịch máy, được tạo tự độngBạn trích xuất tin nhắn và dịch chúng
Tệp tin nhắnKhôngMột tập tin cho mỗi ngôn ngữ
Ngày và sốSử dụng API Intl của trình duyệtCác thành phần tích hợp và cú pháp ICU
Kết xuất máy chủCác thành phần máy chủ React và Next.jsCó, với thiết lập bổ sung
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 react-intl, mỗi tin nhắn có một id và các bản dịch nằm trong các tệp riêng biệt:

import { FormattedMessage } from 'react-intl';
const Welcome = () => (
<FormattedMessage id="home.welcome" defaultMessage="Welcome back!" />
);
// Then extract the messages, translate them for every language
// and load the right file when the app starts.

Với Magic Translate, bạn viết tin nhắn một lần:

import { T } from '@magic-translate/react';
const Welcome = () => <T>Welcome back!</T>;

Khi nào nên chọn Magic Translate

  • Bạn muốn ứng dụng của mình bằng nhiều ngôn ngữ mà không cần quy trình dịch.
  • Văn bản của bạn thay đổi thường xuyên và bạn muốn mọi ngôn ngữ được cập nhật.
  • Bạn muốn ngôn ngữ mới mà không phải trả tiền hoặc chờ đợi dịch giả.

Khi nào nên chọn react-intl

  • Bạn cần cú pháp tin nhắn ICU cho số nhiều và giới tính phức tạp.
  • Bản dịch của bạn phải được viết hoặc xem xét bởi mọi người.
  • 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.

Sử dụng cả hai

Cả hai làm việc tốt với nhau. Sử dụng react-intl hoặc Intl API để định dạng ngày, số và đơn vị tiền tệ và Magic Translate để dịch văn bản xung quanh chúng.

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.