自動建議¶
在 4.13 版的變更: 在 Weblate 4.13 之前,這些服務是在 設定 中設定的。
內建了對幾種機器翻譯和翻譯記憶服務的支援。管理員可以為整站開啟每項服務(在 管理介面 中的 Automatic suggestions),也可以在專案設定中為特定專案開啟:
備註
它們受到其使用條款的約束,所以確保您被允許以您想要的方式使用它們。第三方服務可從 Weblate 接收來源字串、翻譯、和相關的情境。
該服務從 元件設定 設定的原始檔進行翻譯,請參考 來源語言。
可透過 Weblate 的 REST API 設定每個專案的自動建議。
也參考
機器翻譯與翻譯記憶服務的優先順序¶
Weblate 翻譯記憶 的相符結果若為 100%,其優先順序高於機器翻譯服務。如果翻譯記憶中有 100% 相符結果,就不會執行機器翻譯。如果有多筆 100% 相符結果,系統會使用資料庫傳回的第一筆結果。
每個機器翻譯服務都有一個預定義的可以產生的最高分。系統按照它們的最高分確定使用安裝的翻譯服務的順序。如果字串譯文的分低於機器翻譯服務的最高分,那麼將請求該服務產生翻譯。如果譯文得分超過目前得分,那麼系統將接受該譯文。
機器翻譯的來源字串。¶
在 5.11 版被加入.
可以設定所有第三方服務的來源字串來源。這可以用來微調服務獲得最好結果。有以下選項可用:
LLM 翻譯情境¶
有額外內容可用時,以 LLM 為基礎的自動建議服務會接收每個待翻譯字串的相關內容。這包括字串情境或單語鍵、額外說明、已設定的第二語言翻譯、複數資訊、未通過的品質檢查,以及預留位置內容。相符的詞彙表項目會連同其說明和選取的旗標一併傳送,以便區分重複的詞彙表詞彙。
您可以在 特定語言的操作指南 中,使用將語言代碼對應至文字的 JSON 物件,新增目標語言專用的說明。語言代碼必須存在於 Weblate 中,且會進行完全比對;不會忽略空白字元。每項說明最多可包含 1000 個字元。Weblate 會先尋找完全相符的目標語言代碼,再退回使用基礎語言代碼。
新增的中繼資料只用於引導產生建議;傳回的翻譯仍必須保留來源的預留位置和標記。Weblate 也會向 LLM 服務傳送一小段先前的對話,示範預期的 JSON 回應格式。來源語言和目標語言的組合有可用範例時,對話會使用隨附的已翻譯範例,否則會使用與語言無關的格式範例。也可以附加相同目標語言的既有翻譯作為其他範例。
Alibaba¶
在 5.3 版被加入.
- 服務編號:
alibaba- 分數上限:
80
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言key存取金鑰 ID
secret存取金鑰秘密
region區域 ID
Alibaba Translate 是用於翻譯文字的神經機器翻譯服務,支援最多 214 個語言配對。
也參考
Anthropic¶
在 5.16 版被加入.
- 服務編號:
anthropic- 分數上限:
90
- 進階功能:
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言base_urlAnthropic API URL
Anthropic API 基本 URL。留空以使用預設 URL。
modelAnthropic 模型
可用的選擇:
claude-haiku-4-5-- Claude Haiku 4.5claude-sonnet-5-- Claude Sonnet 5claude-opus-4-8-- Claude Opus 4.8claude-fable-5-- Claude Fable 5custom-- 自訂模型persona翻譯者角色描述
描述翻譯者的角色描述,提高翻譯的準確性,例如:「您是名松鼠飼養員。」
style翻譯者風格
描述翻譯風格,如:「翻譯得口語化。」
language_instructions特定語言說明
將現有目標語言代碼對應至額外說明的 JSON 物件,每個說明最多 1000 個字元。
keyAPI 金鑰
custom_model自訂模型名稱
只有在模型設定為「自訂模型」時才需要
max_tokens最大詞元數
回應中可產生的詞元數上限。
使用 Anthropic 的 Claude 模型執行翻譯。
Anthropic API 可存取 Claude 模型家族,這些模型以強大的推理及語言能力著稱。您需要 Anthropic 的 API 金鑰才能使用此服務。
使用 persona 和 style 欄位進一步微調翻譯。這些將被用於 Claude 的提示並允許您變更翻譯的風格。
Apertium APy¶
- 服務編號:
apertium-apy- 分數上限:
88
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言urlAPI URL
開源原件機器翻譯平台提供一組有限語言的翻譯。
使用 Apertium的建議方式是執行您自己的 Apertium-APy 伺服器。
Amazon Translate¶
- 服務編號:
aws- 分數上限:
88
- 進階功能:
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言key存取金鑰 ID
secretAPI 金鑰
region區網域稱
formality正式程度
可用的選擇:
空值 -- 預設值
FORMAL-- 正式INFORMAL-- 非正式brevity簡潔度
支援時,優先採用較短的譯文。
可用的選擇:
空值 -- 預設值
ON-- 已啟用profanity不雅用語
遮蔽譯文中的不雅用語。
可用的選擇:
空值 -- 預設值
MASK-- 遮蔽不雅用語
Amazon Translate 是神經機器翻譯服務,用於將英語與廣泛支援的語言進行互譯。此服務需要 TranslateFullAccess 受管政策。
Azure OpenAI¶
在 5.8 版被加入.
- 服務編號:
azure-openai- 分數上限:
90
- 進階功能:
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言base_urlAPI URL
modelLLM 模型
persona翻譯者角色描述
描述翻譯者的角色描述,提高翻譯的準確性,例如:「您是名松鼠飼養員。」
style翻譯者風格
描述翻譯風格,如:「翻譯得口語化。」
language_instructions特定語言說明
將現有目標語言代碼對應至額外說明的 JSON 物件,每個說明最多 1000 個字元。
keyAPI 金鑰
azure_endpointAzure OpenAI 端點 URL
執行個體的端點 URL,如:https://my-instance.openai.azure.com。
deploymentAzure OpenAI 部署
模型的唯一部署名稱。
使用託管在 Azure 上的 OpenAI 執行翻譯。
也參考
Baidu¶
- 服務編號:
baidu- 分數上限:
90
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言key用戶端 ID
secret用戶端秘密金鑰 (secret)
由百度提供的機器翻譯服務。
這項服務使用 API,並且您需要從百度獲得 ID 和 API 金鑰來使用它。
CyrTranslit¶
在 5.7 版被加入.
- 服務編號:
cyrtranslit- 分數上限:
100
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言
使用 Cyrtranslit 函式庫的機器翻譯服務。
此服務可為同時使用西里爾及拉丁書寫系統的語言,在兩種書寫系統間轉換文字。
也參考
DeepL¶
- 服務編號:
deepl- 分數上限:
91
- 進階功能:
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言urlAPI URL
keyAPI 金鑰
formality正式程度
如果語言沒有特別指定是否為書面語,則使用指定的正式程度
context翻譯情境
描述翻譯情境,提升翻譯準確性。
next_gen使用下一代模型
偏好使用下一代大語言模型,而非經典機器翻譯模型。
DeepL 是付費服務,可為少數語言提供品質良好的機器翻譯。您需要購買 DeepL API 訂閱方案。
搭配 DeepL 服務使用的 API URL。請設定不含 API 版本的基礎端點;Weblate 會為每個要求選取適當的 DeepL API 版本。
在 2026.7 版的變更: 不再支援 DeepL API v1。
https://api.deepl.com/(Weblate 預設值)用於付費計劃的 API 用量,訂閱是基於用量的。
https://api-free.deepl.com/用於免費計劃的 API 用量,訂閱是基於用量的。
Weblate 支援 DeepL 正式程度功能,它將根據語言選擇相符的變體(例如,有 de@formal 和 de@informal)。
可指定翻譯情境來改進翻譯品質(選用)。要閱讀這方面的更多資訊,請存取 DeepL 翻譯情境的文件。
Glosbe¶
- 服務編號:
glosbe- 分數上限:
90
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言
幾乎每一種活語言的免費字典與翻譯服務。
此 API 可免費使用,但翻譯的使用受所用資料來源之授權條款約束。為防止濫用,服務會限制單一 IP 在特定時段內可發出的呼叫次數。
也參考
Google Cloud Translation Basic¶
- 服務編號:
google-translate- 分數上限:
90
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言keyAPI 金鑰
Google 雲服務提供的機器翻譯服務。
這項服務使用了 Google Translation API v2,您需要得到 API 金鑰,並在 Google API 控制檯開啟記費。
也參考
Google Cloud Translation Advanced¶
- 服務編號:
google-translate-api-v3- 分數上限:
90
- 進階功能:
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言credentialsGoogle 翻譯服務帳號資訊
輸入服務帳號的 JSON 金鑰。
projectGoogle 翻譯專案
輸入您 Google Cloud 專案的數字或字母 ID。
locationGoogle Translate 位置
選擇您用在 Google Cloud 專案,或者是位置最靠近您的 Google Cloud Translation 區域。
bucket_nameGoogle Storage Bucket 名稱
請輸入用來儲存詞彙表檔案的 Google Cloud Storage bucket 名稱。
Google 雲服務提供的機器翻譯服務。
這項服務使用 Google 翻譯 API v3,您需要 JSON 格式的憑證來存取它。
要使用此服務,您需要先經歷下列步驟:
您也可以建立儲存桶來設定 詞彙表 要使用的服務(非必須):
IBM Watson Language Translator¶
在 5.13.1 版被移除: 廠商自 2024 年 12 月 10 日起停止提供本服務。
LibreTranslate¶
在 4.7.1 版被加入.
- 服務編號:
libretranslate- 分數上限:
89
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言urlAPI URL
keyAPI 金鑰
LibreTranslate 是一項自由開源的機器翻譯服務。公共執行個體需要 API 金鑰,但 LibreTranslate 可以自託管,並且有幾個映像可以免費使用 API。
https://libretranslate.com/(官方公開服務)需要一個API金鑰才能在該網站之外使用。
LTEngine¶
在 5.17.1 版被加入.
- 服務編號:
ltengine- 分數上限:
89
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言urlAPI URL
keyAPI 金鑰
LTEngine 提供本機的 LibreTranslate 相容 API,由大型語言模型提供支援。對許多 Weblate 安裝環境而言,Ollama 之類的原生 LLM 服務可能更適合,因為 Weblate 可將翻譯情境直接傳送給模型。只有在您特別想使用 LTEngine 的本機翻譯引擎,或未來 LTEngine 的翻譯改進時,才使用 LTEngine。
Azure AI Translator¶
- 服務編號:
microsoft-translator- 分數上限:
90
- 進階功能:
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言keyAPI 金鑰
base_url應用程式基礎 URL
可用的選擇:
api.cognitive.microsofttranslator.com-- 全球(不分區)api-apc.cognitive.microsofttranslator.com-- 亞太api-eur.cognitive.microsofttranslator.com-- 歐洲api-nam.cognitive.microsofttranslator.com-- 北美api.translator.azure.cn-- 中國api.cognitive.microsofttranslator.us-- Azure 美國政府雲端服務endpoint_url身分驗證服務 URL
可以使用下方的區域欄位指定區域性或多服務。
可用的選擇:
api.cognitive.microsoft.com-- 全球api.cognitive.azure.cn-- 中國api.cognitive.microsoft.us-- Azure 美國政府雲端服務region身分驗證服務區域
category類別
指定自訂的系統分類 ID(而非通用 ID)來使用。
這是由 Microsoft 透過 Azure portal 提供的機器翻譯服務,屬於 Cognitive Services 之一。
Weblate 實施了 Translator API V3.
此服務透過 dynamic dictionary 自動使用 詞彙表,見 自動建議中的詞彙表。
Translator Text API V2¶
您用於Translator API V2 的金鑰可以用於 API 3。
Translator Text API V3¶
您必須在 Azure 入口網站註冊,並使用在該處取得的金鑰。使用新的 Azure 金鑰時,還必須將 region 設為服務所在區域。
您也可以指定自訂類別來使用 custom translator.
提示
對於 Azure 中國,請使用您的 Azure Portal 的端點。
Mistral¶
在 2026.7 版被加入.
- 服務編號:
mistral- 分數上限:
90
- 進階功能:
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言base_urlMistral API 基底 URL
Mistral API 的基底 URL (若與 Mistral 預設 URL 不同)
modelMistral 模型
可用的選擇:
auto-- 自動選擇ministral-3b-latest-- Ministral 3 3Bministral-8b-latest-- Ministral 3 8Bmistral-small-latest-- Mistral Small 4ministral-14b-latest-- Ministral 3 14Bmistral-large-latest-- Mistral Large 3mistral-medium-latest-- Mistral Medium 3.5custom-- 自訂模型persona翻譯者角色描述
描述翻譯者的角色描述,提高翻譯的準確性,例如:「您是名松鼠飼養員。」
style翻譯者風格
描述翻譯風格,如:「翻譯得口語化。」
language_instructions特定語言說明
將現有目標語言代碼對應至額外說明的 JSON 物件,每個說明最多 1000 個字元。
keyAPI 金鑰
custom_model自訂模型名稱
只有在模型設定為「自訂模型」時才需要
ModernMT¶
在 4.2 版被加入.
- 服務編號:
modernmt- 分數上限:
90
- 進階功能:
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言urlAPI URL
keyAPI 金鑰
context_vector情境向量
「記憶 ID:權重」的逗號分隔清單。範例:1234:0.123,4567:0.456
也參考
MyMemory¶
- 服務編號:
mymemory- 分數上限:
100
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言email聯絡電子郵件
username使用者名稱
keyAPI 金鑰
使用機器翻譯的巨量翻譯記憶。
自由匿名使用,目前限制為 100 個請求/天,或者在 email 中提供電子郵件聯絡地址時限制為 1000 個請求/天。您還可以向他們請求更多。
也參考
Netease Sight¶
- 服務編號:
netease-sight- 分數上限:
90
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言key用戶端 ID
secret用戶端秘密金鑰 (secret)
網易提供的機器翻譯服務。
這項服務使用 API,兵器額您需要從網易得到金鑰和密碼。
也參考
Ollama¶
在 5.15 版被加入.
- 服務編號:
ollama- 分數上限:
90
- 進階功能:
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言base_urlAPI URL
Ollama API 的基礎 URL,預設值為 localhost,連線埠 11434。
modelOllama 模型
在 Ollama 模型目錄中描述的模型名稱。
persona翻譯者角色描述
描述翻譯者的角色描述,提高翻譯的準確性,例如:「您是名松鼠飼養員。」
style翻譯者風格
描述翻譯風格,如:「翻譯得口語化。」
language_instructions特定語言說明
將現有目標語言代碼對應至額外說明的 JSON 物件,每個說明最多 1000 個字元。
用 Ollama 模型執行翻譯。
Ollama API 可使用本機安裝的開放原始碼模型進行翻譯,也可透過 Ollama 服務遠端存取模型。請注意,設定模型之前,應先完成 Ollama installed 中的安裝步驟,並下載要使用的模型。
使用 persona 和 style 欄位進一步微調翻譯。這些將被用於 Ollama 的提示並允許您變更翻譯的風格。
也參考
OpenAI¶
在 5.3 版被加入.
- 服務編號:
openai- 分數上限:
90
- 進階功能:
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言base_urlOpenAI API 基礎 URL
OpenAI API 的基底 URL (若與 OpenAI 預設 URL 不同)
modelOpenAI 模型
可用的選擇:
auto-- 自動選擇gpt-5-nano-- GPT-5 nanogpt-5.4-nano-- GPT-5.4 nanogpt-5-mini-- GPT-5 minigpt-5.4-mini-- GPT-5.4 minigpt-5.6-luna-- GPT-5.6 Lunagpt-5-- GPT-5gpt-5.4-- GPT-5.4gpt-5.6-terra-- GPT-5.6 Terragpt-5.5-- GPT-5.5gpt-5.6-- GPT-5.6 Solcustom-- 自訂模型persona翻譯者角色描述
描述翻譯者的角色描述,提高翻譯的準確性,例如:「您是名松鼠飼養員。」
style翻譯者風格
描述翻譯風格,如:「翻譯得口語化。」
language_instructions特定語言說明
將現有目標語言代碼對應至額外說明的 JSON 物件,每個說明最多 1000 個字元。
keyAPI 金鑰
custom_model自訂模型名稱
只有在模型設定為「自訂模型」時才需要
使用 OpenAI 執行翻譯。
OpenAI API 由多元模型集驅動,這些模型的能力和定價各不相同。自動選擇會選擇最佳可用模型,但您或許想要選擇相符您需求的特定模型。
使用 persona 和 style 欄位進一步微調翻譯。這些將被用於 OpenAI 的 prompt 並允許您變更翻譯的風格。
在 5.7 版的變更: 新增支援自訂模型和基礎 URL。
SAP Translation Hub¶
- 服務編號:
sap-translation-hub- 分數上限:
100
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言urlAPI URL
keyAPI 金鑰
usernameSAP 使用者名稱
passwordSAP 密碼
enable_mt啟用機器翻譯
domain翻譯領域
翻譯領域的 ID,例如 BC。若未指定領域,這個方法會在所有可用領域中搜尋翻譯。
SAP 提供的機器翻譯服務。
您必須有 SAP 帳號(並已在 SAP Cloud Platform 啟用 SAP Translation Hub),才能使用此服務。
除了術語資料庫,您還可以設定是否使用機器翻譯服務。
備註
要存取 Sandbox API,您需要設定 url 和 key.
為了存取正式環境的 API,您需要設定 url, username 與 password。
Systran¶
- 服務編號:
systran- 分數上限:
90
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言keyAPI 金鑰
Systran 提供的機器翻譯服務。
這項服務使用 API,您需要從 <https://translate.systran.net/en/account> 取得 API 金鑰。
tmserver¶
- 服務編號:
tmserver- 分數上限:
100
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言urlAPI URL
使用 tmserver 協議您可以執行自己的翻譯記憶伺服器。
原始的 tmserver 和 translate-toolkit 捆綁在一起。
amaGama 伺服器是增強版 tmserver。
備註
目前似乎沒有針對這個的受維護的伺服器。
Weblate¶
- 服務編號:
weblate- 分數上限:
100
- 設定:
此服務無設定。
Weblate 機器翻譯服務可根據 Weblate 目前現有字串中的完全相符結果提供翻譯;這些字串必須處於 已翻譯、已核准 或 唯讀 狀態。
Weblate 翻譯記憶¶
- 服務編號:
weblate-translation-memory- 分數上限:
100
- 設定:
此服務無設定。
使用 翻譯記憶 作為機器翻譯服務。任何過去翻譯過的字串(或上傳到翻譯記憶)都可以用這種方式翻譯。此建議源可用於模糊相符。
備註
重新建立 翻譯記憶 會降低此機器翻譯服務的能力。
Yandex¶
- 服務編號:
yandex- 分數上限:
90
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言keyAPI 金鑰
Yandex 提供的機器翻譯服務。
這項服務使用翻譯 API,您需要從 Yandex 得到 API 金鑰。
Yandex v2¶
在 5.1 版被加入.
- 服務編號:
yandex-v2- 分數上限:
90
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言keyAPI 金鑰
Yandex 提供的機器翻譯服務。
這項服務使用翻譯 API,您需要從 Yandex Cloud 得到 API 金鑰。
Youdao Zhiyun¶
- 服務編號:
youdao-zhiyun- 分數上限:
90
- 設定:
source_language來源語言選擇
可用的選擇:
auto-- 自動選擇source-- 元件來源語言secondary-- 專案或元件中定義的次要語言key用戶端 ID
secret用戶端秘密金鑰 (secret)
有道提供的機器翻譯服務。
這項服務使用 API,您需要從有道獲得 ID 和 API 金鑰。
也參考
自訂機器翻譯¶
您也可以使用幾行 Python 程式碼來實作自己的機器翻譯服務。將程式碼放在 Weblate 可以匯入的模組中 (請參閱 建立 Python 模組 或 自訂程式碼) 並新增完整限定類別名稱至 WEBLATE_MACHINERY。
"""
Machine translation example.
This example uses fictional http://example.com/ service to translate the
strings.
"""
from __future__ import annotations
from typing import TYPE_CHECKING
from weblate.machinery.base import MACHINERY_DEFAULT_THRESHOLD, MachineTranslation
if TYPE_CHECKING:
from weblate.auth.models import User
from weblate.machinery.base import DownloadTranslations
from weblate.trans.models import Unit
class SampleTranslation(MachineTranslation):
"""Sample machine translation interface."""
name = "Sample"
def download_languages(self):
"""Return list of languages your machine translation supports."""
response = self.request("get", "http://example.com/languages")
return response.json()["languages"]
def download_translations(
self,
source_language,
target_language,
text: str,
unit: Unit | None,
user: User | None,
threshold: int = MACHINERY_DEFAULT_THRESHOLD,
) -> DownloadTranslations:
"""Return tuple with translations."""
response = self.request(
"get",
"http://example.com/translate",
params={
"source_language": source_language,
"target_language": target_language,
"text": text,
},
)
for translation in response.json()["translations"]:
yield {
"text": translation,
"quality": 100,
"service": self.name,
"source": text,
}