Chuyển đến nội dung chính

Các ngôn ngữ được hỗ trợ

rosetta đi kèm với các Language Card (Thẻ ngôn ngữ) — các tệp cấu hình có cấu trúc cho 50 ngôn ngữ. Mỗi thẻ chứa các preset (cài đặt sẵn) về register (văn phong), siêu dữ liệu về hệ thống formality (độ trang trọng), các cờ hỗ trợ phương thức, quy tắc typography (đánh máy) và thông tin về script (chữ viết). Bất kỳ ngôn ngữ nào mà LLM của bạn biết đều có thể được thêm vào chỉ bằng một dòng cấu hình — đây là những ngôn ngữ có các register đã được tinh chỉnh và sẵn sàng cho môi trường production.


Các phương thức dịch

Mỗi ngôn ngữ có thể sử dụng một hoặc nhiều phương thức dịch sau:

Biểu tượngPhương thứcCách hoạt độngChi phí
🟢Google TranslateNeural MT cơ bản. Hơn 130 ngôn ngữ. Chỉ hỗ trợ chuỗi key-value — không thể dịch an toàn nội dung Markdown.~$20/1M ký tự
🔵LLM (OpenRouter)Bất kỳ ngôn ngữ nào mô hình biết. Prompt được điều hướng theo register. Xử lý cả key-value và nội dung Markdown.Tùy thuộc vào mô hình
🟣LLM-CoachedLLM + từ điển ngữ pháp + dữ liệu huấn luyện (coaching data) được đưa vào prompt. Tốt nhất cho các ngôn ngữ có hình thái phức tạp.Tùy thuộc vào mô hình
🟠API (Plugin)Các pipeline dịch thuật do cộng đồng lưu trữ và phục vụ qua HTTP. Tương thích với OCAP.Tùy thuộc vào nhà cung cấp

Thiết lập GOOGLE_TRANSLATE_API_KEY cho Google Translate, hoặc OPENROUTER_API_KEY cho các phương thức LLM. Xem Các phương thức dịch để biết thông tin chi tiết.


Các ngôn ngữ ưu tiên

Đây là các locale (ngôn ngữ/khu vực) được yêu cầu nhiều nhất cho các ứng dụng web và di động, được liệt kê theo thứ tự ưu tiên khả năng tiếp cận (accessibility-first) mà rosetta khuyên dùng.

CờNgôn ngữGoogleLLMCoachedScriptGhi chú
🇸🇦Arabic (Tiếng Ả Rập)arRTL. Modern Standard Arabic (فصحى).
🇵🇭Filipino (Taglish)tl / filSử dụng fil trong cấu hình Docusaurus. rosetta có thể phân giải cả hai.
🇫🇷French (Tiếng Pháp)frDạng Vous. Bao hàm giới tính (Connecté·e).
🇪🇸Spanish (Tiếng Tây Ban Nha)esTiếng Tây Ban Nha Mỹ Latinh trung lập.
🇩🇪German (Tiếng Đức)deDạng Sie. Bao hàm giới tính (Benutzer:innen).
🇯🇵Japanese (Tiếng Nhật)jaです/ます cho văn bản nội dung, する cho nhãn UI.
🇨🇳Chinese (Simplified) (Tiếng Trung Giản thể)zh简体中文.
🇮🇹Italian (Tiếng Ý)itDạng Lei.
🇧🇷Portuguese (BR) (Tiếng Bồ Đào Nha - Brazil)ptTiếng Bồ Đào Nha Brazil.
🇰🇷Korean (Tiếng Hàn)koVăn phong lịch sự 해요체.

Các ngôn ngữ chính trên thế giới

CờNgôn ngữGoogleLLMCoachedScriptGhi chú
🇧🇩BengalibnƯu tiên শুদ্ধ ভাষা.
🇧🇬Bulgarianbg
🇨🇿CzechcsVykání (dạng vy).
🇩🇰Danishda
🇬🇷GreekelΔημοτική hiện đại.
🇮🇷PersianfaRTL.
🇫🇮FinnishfiKhông có giống ngữ pháp.
🇮🇱HebrewheRTL.
🇮🇳Hindihiशुद्ध हिन्दी. Hạn chế tối đa từ mượn tiếng Anh.
🇭🇺HungarianhuDạng Ön.
🇮🇩Indonesianid
🇲🇾Malayms
🇳🇱DutchnlDạng U.
🇳🇴NorwegiannbBokmål.
🇵🇱PolishplDạng Pan/Pani.
🇵🇹Portuguese (EU)pt-PTTiếng Bồ Đào Nha Châu Âu.
🇷🇴Romanianro
🇷🇺RussianruDạng Вы.
🇸🇰SlovakskVykanie (dạng vy).
🇷🇸Serbiansr🔤 Latin→CyrillicTrình chuyển đổi script tất định (deterministic).
🇸🇪Swedishsv
🇰🇪Swahilisw
🇹🇭ThaithTrợ từ lịch sự ครับ/ค่ะ.
🇹🇷TurkishtrDạng Siz.
🇺🇦UkrainianukDạng Ви.
🇵🇰UrduurRTL. Dạng آپ.
🇻🇳Vietnamesevi
🇹🇼Chinese (Traditional)zh-TW繁體中文.
🇬🇪Georgiankaქართული. Ngữ hệ Kartvelian.
🇳🇬YorubayoÈdè Yorùbá. Ngôn ngữ thanh điệu (3 thanh).

Các biến thể theo khu vực

CờNgôn ngữGoogleLLMCoachedScriptGhi chú
🇲🇽Mexican Spanishes-MXDạng Tú. Văn phong ấm áp.
🇨🇦Canadian Frenchfr-CAThành ngữ Québécois.

Các ngôn ngữ bản địa & ít tài nguyên

Các ngôn ngữ này không được hỗ trợ bởi các dịch vụ MT thương mại. rosetta cung cấp công cụ để các cộng đồng ngôn ngữ tự xây dựng phương thức dịch của riêng họ theo các nguyên tắc OCAP.

Ngôn ngữGoogleLLMCoachedScriptTrạng thái
🪶Plains Creecrk🔤 SRO→Syllabics🚧 Đang phát triển
🌄QuechuaquRunasimi. Hậu tố hiển ngôn (Evidential suffixes).

:::info Plains Cree đang được tích cực phát triển Register, cơ sở hạ tầng coaching, trình chuyển đổi script và bộ công cụ đánh giá (evaluation harness) cho Plains Cree đều đã hoạt động, nhưng pipeline dịch thuật vẫn chưa được phát hành. Chúng tôi đang làm việc với các cộng đồng ngôn ngữ theo các nguyên tắc OCAP để đảm bảo chất lượng trước khi phát hành. Xem Hỗ trợ ngôn ngữ ít tài nguyên để biết toàn bộ câu chuyện — và cách bạn có thể đóng góp. :::

:::tip Thêm các ngôn ngữ ít tài nguyên khác Hệ thống plugin phương thức của rosetta được thiết kế cho việc này. Một cộng đồng ngôn ngữ có thể xây dựng một phương thức dịch tùy chỉnh, lưu trữ dưới sự kiểm soát của riêng họ và phục vụ nó thông qua phương thức API. Bảng xếp hạng phương thức theo dõi điểm số cho bất kỳ cặp ngôn ngữ nào — hãy xây dựng một phương thức, chạy bộ công cụ đánh giá và giành lấy điểm số cao nhất. :::


Ngôn ngữ nhân tạo (Constructed Languages)

Các conlang (ngôn ngữ nhân tạo) được hỗ trợ thông qua các register của LLM và các trình chuyển đổi script tùy chọn. Chúng sử dụng cùng một cơ sở hạ tầng như các ngôn ngữ thực — quality gate (cổng kiểm soát chất lượng), hệ thống coaching và pipeline chuyển đổi script hoạt động hoàn toàn giống nhau.

Ngôn ngữGoogleLLMScriptGhi chú
🖖Klingontlh🔤 Romanization→pIqaDYêu cầu font PUA. Từ vựng Marc Okrand.
🧝Sindarin (Tolkien Elvish)x-elvish-s🔤 Latin→TengwarYêu cầu font CSUR PUA.
🏴‍☠️Pirate Englishx-pirateChỉ có register. Ẩn dụ hàng hải.
🦸Kryptonianx-kryptonian🔤 Latin→KryptonianYêu cầu font PUA.
🎭Shakespearean Englishx-shakespeareChỉ có register. Dạng Thee/thou, -eth/-est.
🐸Yoda-speakx-yodaChỉ có register. Trật tự từ OSV.

Xem Conlangs, Scripts & Orthography để biết các yêu cầu về font PUA, giới hạn Unicode và cách thêm ngôn ngữ của riêng bạn.


Các Preset ngôn ngữ

Trình hướng dẫn init hỗ trợ các tên preset để thiết lập nhanh. Bạn có thể kết hợp các preset với các mã ngôn ngữ riêng lẻ.

PresetMở rộng thành
europeanfr, de, es, it, pt, nl
asianja, zh, ko
globalfr, es, de, ja, zh, ko, pt, ar
nordicda, fi, nb, sv
# Mix presets with individual codes
i18n-rosetta init
# → Target languages: european, ja
# → Resolves to: fr, de, es, it, pt, nl, ja

Thêm bất kỳ ngôn ngữ nào

rosetta có thể dịch sang bất kỳ ngôn ngữ nào mà LLM của bạn biết — bảng trên chỉ liệt kê các ngôn ngữ có sẵn các preset về register. Để thêm một ngôn ngữ không có trong danh sách, hãy đưa mã BCP-47 của nó vào cấu hình của bạn:

{
"languages": {
"sw": {},
"am": {
"register": "Formal Amharic. Professional register with Geʽez script."
}
}
}

LLM sẽ dịch bằng cách sử dụng kiến thức đã được huấn luyện về ngôn ngữ đó. Việc thiết lập register cho phép bạn kiểm soát giọng điệu, độ trang trọng và các quy ước chính tả. Xem Cấu hình để biết chi tiết.


Language Card (Thẻ ngôn ngữ)

Mỗi ngôn ngữ tích hợp sẵn đều có một Language Card — cấu hình JSON có cấu trúc được chia thành hai tầng (tier) để tối ưu hiệu suất:

Kiến trúc hai tầng

TầngThư mụcTải lúcMục đích
Runtimelib/data/language-cards/Tải ngay (Eagerly) tại importEngine dịch thuật: register, độ trang trọng, quy tắc, hỗ trợ phương thức
Referencelib/data/language-reference/Tải trễ (Lazily) khi cầnTài liệu cho nhà phát triển: thách thức ngôn ngữ học, dữ liệu bách khoa, tài nguyên NLP

Tầng runtime được giữ ở kích thước nhỏ (~2 KB/thẻ) để việc import rosetta không phải tải hàng megabyte dữ liệu tài liệu. Tầng reference có sẵn thông qua getLanguageReference(code) dành cho các công cụ, trang web và bộ công cụ đánh giá.

Các trường của thẻ Runtime

TrườngNội dung
nativeNameTên tự gọi (Endonym) — tên của ngôn ngữ do chính người bản xứ gọi, viết bằng script của ngôn ngữ đó (ví dụ: ქართული, Runasimi)
Hệ thống formalityPhân biệt T-V, các cấp độ giao tiếp, keigo, trợ từ, v.v.
Các preset registerCác preset prompt LLM được đặt tên, đặc trưng cho tính chất của ngôn ngữ
Hỗ trợ phương thứcCác API dịch thuật nào hỗ trợ ngôn ngữ này
Hướng dẫn về giới tínhCác quy tắc giống ngữ pháp và mẹo viết bao hàm giới tính (inclusive writing)
Script/hướng viếtMã script ISO 15924 và RTL/LTR
Quy tắcTypography (dấu ngoặc kép, khoảng trắng), viết hoa, các danh mục số nhiều
Tập dữ liệu đánh giáCác benchmark nào bao gồm ngôn ngữ này
glottocodeĐịnh danh Glottolog chuẩn để tham chiếu chéo
humanReviewedThẻ đã được người bản xứ đánh giá hay chưa

Các trường của thẻ Reference

TrườngNội dung
Thách thức ngôn ngữ họcCác cạm bẫy đặc thù của MT (ví dụ: tính hiển ngôn, dấu thanh điệu, tính chắp dính)
Dữ liệu bách khoaNgữ hệ, phân loại, số lượng người nói, khu vực
Tài nguyênCác công cụ NLP, ngữ liệu song song, các mô hình đã được huấn luyện trước

Tạo khung (Scaffolding) cho một Language Card mới

Sử dụng trình tạo (generator) để tạo khung cho cả hai tầng từ các nguồn dữ liệu có thẩm quyền (IANA, CLDR, Glottolog):

# Preview what would be generated
node scripts/generate-language-card.mjs sw --dry-run

# Generate both runtime + reference cards
node scripts/generate-language-card.mjs sw

Trình tạo sẽ tự động điền các siêu dữ liệu (mã, script, hướng viết, số nhiều, dấu ngoặc kép, hỗ trợ phương thức, ngữ hệ) và đánh dấu các trường đánh giá ngôn ngữ học là TODO để con người tinh chỉnh.

Sử dụng các khóa Preset

Thay vì viết toàn bộ văn bản register, bạn có thể sử dụng tên khóa preset:

{
"languages": {
"fr": "casual-tu",
"ko": "formal-hapsyo",
"ja": "polite"
}
}

Rosetta sẽ phân giải khóa thành prompt register đầy đủ. Chạy npx i18n-rosetta init để xem các preset có sẵn cho từng ngôn ngữ.

Ví dụ về các Preset

Ngôn ngữCác PresetMặc định
Frenchformal-vous, casual-tuformal-vous
Koreanpolite-haeyo, formal-hapsyo, casual-haepolite-haeyo
Japanesepolite, formal-keigo, casualpolite
Germanformal-Sie, casual-duformal-Sie
Thaineutral-professional, polite-male, polite-femaleneutral-professional
Spanishneutral-professional, formal-usted, casual-tuteoneutral-professional

Xem Đóng góp một Language Card để biết toàn bộ đặc tả, bao gồm xác thực trường và danh sách kiểm tra PR.


Xem thêm