跳至主要内容

SDK

import { createLibreTranslateClient } from "@hoyasumii/libretranslate";

const lt = createLibreTranslateClient({
baseUrl: "https://libretranslate.example.com",
apiKey: process.env.LIBRETRANSLATE_API_KEY, // only for instances that issue keys
});

const { translatedText } = await lt.translate({ q: "Bom dia", source: "pt", target: "en" });
const languages = await lt.languages();
const settings = await lt.settings();

baseUrl 是實體 URL, 如果它有它的基准路徑( N)https://example.com/translate). createLibreTranslateClientFromEnv() 已讀 LIBRETRANSLATE_URL (默认) http://localhost:5000和 LIBRETRANSLATE_API_KEY.

選項​

選擇為什麼
baseUrl實例網址( 需要)
apiKeyAPI 金鑰, 用于發出金鑰的事件; 在每個要求的正文中傳送
timeoutMs每件要求超時, 預設 60000 ; 0 或 Infinity 關掉
fetch替代方案 fetch (測試,代理)

每一種方法都要最後一個 { signal } 參數,以 a AbortSignal.

方法​

方法為什麼
translate({ q, source?, target, format?, alternatives? })一文(翻譯)
translateMany({ q: string[], … })一份请求书中的几份案文
detect(text)最有可能的候選語言
languages()每種來源語言都有它翻譯成的代碼
translateFile({ file, filename?, source?, target })上傳文件( E)文件)
downloadFile(url)以位元組下載已翻譯的檔案
suggest({ q, s, source, target })送回更好的翻譯( 當實驗體接受時)
settings()需要按鍵、 字元限制、 檔案格式、 建議
health(){ status: "ok" } 當案件發生時
call(operationId, body?)任何操作 operationId与生体

非-2xx的答案變成 LibreTranslateApiError (看 錯誤).

如何生成​

套件保留自己的 OpenAPI 3.1 API 描述 spec/openapi.yml來自公共API文件 orval 變成:

  • src/generated/endpoints.ts: 每次操作都有一個函數, 所有函數都通過套件本身傳送 fetch 包裝器, 新增基址、 超時及錯誤處理 ;
  • src/generated/model/: 要求和回覆型態(TranslateRequest, Detection, FrontendSettings, ),由套件匯出;
  • src/generated/zod.ts: zod MCP 工具使用的每個要求的計劃。

上面的客戶端用預設值來包裝這些函數( U)source: "auto")和API金鑰。 每個匯出型態及函數, 請參考 API 參考.