查询项目语言列表
查询当前 AppKey 所绑定项目的源语言和已启用的目标语言。集成方在调用 创建翻译任务 之前建议先调一次本接口,拿到可用的 target_languages 集合,避免传了项目未启用的语言被 422 拒绝。
请求地址
GET {BASE_URL}/api/open/v1/languages也支持 POST(body 留空)。
鉴权 Header
和其它开放平台接口一致(参见 签名协议):
| Header | 值 |
|---|---|
X-Loxily-AppKey | 项目 App Key |
X-Loxily-Timestamp | Unix 秒(5 分钟有效) |
X-Loxily-Sign | MD5(timestamp + "" + appSecret) —— GET 无 body,body 以空字符串参与签名 |
请求参数
无。项目从 X-Loxily-AppKey 自动解析。
响应
成功(HTTP 200):
json
{
"success": true,
"code": 0,
"msg": "ok",
"trace_id": "...",
"data": {
"project_id": "ls-dev-96ai",
"source_language": "zh-hans",
"target_languages": ["en", "ja", "ko", "zh-tw"],
"all_languages": ["zh-hans", "en", "ja", "ko", "zh-tw"]
}
}字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
project_id | string | 回显当前项目 ID |
source_language | string | null | 源语言代码;若项目未配置语言树则为 null |
target_languages | string[] | 项目已启用的目标语言列表(不含源语言),按语言树前序遍历顺序 |
all_languages | string[] | 全量语言列表(含源语言),同样按前序遍历顺序 |
空配置的行为
若项目从未在控制台配置过语言树,接口仍返回 200,data.source_language = null,target_languages = []。集成方在这种情况下应提示"请先在控制台配置语言"。
错误码
| code | 说明 |
|---|---|
| 401 | 签名校验失败或时间戳过期 |
| 404 | AppKey 无效 |
| 500 | 系统错误 |
示例
cURL
bash
APP_KEY="5685414646a54423c891d87194d87f3f"
APP_SECRET="<你的 App Secret>"
BASE_URL="https://api.loxily.com"
TIMESTAMP=$(date +%s)
SIGN=$(printf '%s' "${TIMESTAMP}${APP_SECRET}" | md5)
curl -s "${BASE_URL}/api/open/v1/languages" \
-H "X-Loxily-AppKey: ${APP_KEY}" \
-H "X-Loxily-Timestamp: ${TIMESTAMP}" \
-H "X-Loxily-Sign: ${SIGN}"Node.js
javascript
import crypto from 'crypto';
const timestamp = Math.floor(Date.now() / 1000).toString();
const sign = crypto.createHash('md5')
.update(`${timestamp}${process.env.LOXILY_APP_SECRET}`, 'utf8')
.digest('hex');
const resp = await fetch(`${process.env.LOXILY_BASE_URL}/api/open/v1/languages`, {
headers: {
'X-Loxily-AppKey': process.env.LOXILY_APP_KEY,
'X-Loxily-Timestamp': timestamp,
'X-Loxily-Sign': sign,
},
});
const { data } = await resp.json();
console.log('Source:', data.source_language);
console.log('Targets:', data.target_languages);使用建议
典型集成流程:
- 进程启动或定时(如每小时)拉一次本接口,缓存
target_languages列表 - 构造 创建翻译任务 请求时,对用户的目标语言输入做一次交叉校验
- 若用户请求的语言不在
target_languages中,提前提示,不要直接丢给/tasks/create
全局语言代码参考表
下表是 Loxily 全局支持的语言代码,所有 API 参数(如 target_languages)都从下表中选取。实际某个项目可用的子集以本接口的 target_languages 返回值为准。
| Code | 中文 | English | Native |
|---|---|---|---|
zh-hans | 简体中文 | Chinese (Simplified) | 简体中文 |
en | 英语 | English | English |
ja | 日语 | Japanese | 日本語 |
ko | 韩语 | Korean | 한국어 |
de | 德语 | German | Deutsch |
fr | 法语 | French | Français |
es | 西班牙语 | Spanish | Español |
es-419 | 西班牙语(拉丁美洲) | Spanish (Latin America) | Español (Latinoamérica) |
zh-tw | 繁体中文 | Chinese (Traditional) | 繁體中文 |
zh-cn | 中文(大陆) | Simplified Chinese | 中文 |
pt | 葡萄牙语 | Portuguese | Português |
pt-pt | 葡萄牙语(葡萄牙) | Portuguese (Portugal) | Português (Portugal) |
pt-br | 葡萄牙语(巴西) | Portuguese (Brazil) | Português (Brasil) |
ru | 俄语 | Russian | Русский |
it | 意大利语 | Italian | Italiano |
ar | 阿拉伯语 | Arabic | العربية |
th | 泰语 | Thai | ไทย |
vi | 越南语 | Vietnamese | Tiếng Việt |
id | 印尼语 | Indonesian | Bahasa Indonesia |
tr | 土耳其语 | Turkish | Türkçe |
pl | 波兰语 | Polish | Polski |
hi | 印地语 | Hindi | हिन्दी |
ms | 马来语 | Malay | Bahasa Melayu |
fa | 波斯语 | Persian | فارسی |
fil | 菲律宾语 | Filipino | Filipino |
ro | 罗马尼亚语 | Romanian | Română |
af | 南非荷兰语 | Afrikaans | Afrikaans |
规范
- 大小写:代码全部小写,如
zh-hans、es-419 - 分隔符:地区变体用短横线
-(不是下划线),如pt-br而不是pt_br - 变体与基础语言:
es(通用西语)和es-419(拉美)是不同的语言,翻译结果不互通。请按你目标受众选择合适的代码 - 源语言:源语言由项目配置决定,API 无需(也不支持)通过参数指定
常见错误
| 现象 | 原因 |
|---|---|
422 Unsupported target language: en-US | 代码必须小写 → 用 en-us 或更宽泛的 en |
422 Unsupported target language: zh_CN | 用短横线 → zh-cn(但推荐更明确的 zh-hans) |
422 Unsupported target language: xxx 且代码正确 | 该语言未在当前项目语言树中启用,请先在控制台开启,或用本接口确认项目实际启用的语言 |