POST提交配置指南
本文档详细介绍如何在POST提交模式下配置Ltranslate翻译服务,适用于企业内网隔离等特殊场景。
一、概述
跟国外同类型服务相比,LtranslateCN也是基于代理技术实现的。同时也给客户更多的灵活性,你可以根据需求,直接向翻译引擎提交合法的HTML文件。此时,引擎将停止走代理服务,而是直接将翻译好的html返回,这种方式尤其适合内外网隔离的企业内部应用。
二、步骤
要接入submithtml模式,你需要做以下步骤。
- 申请API Key:https://manage.ltranslate.cn/create-account
- 在创建网站时,站点平台选择【企业应用】
提示:这样,创建出来的项目就支持submithtml模式了。
三、使用
支持submithtml模式的项目,系统将不再对来源URL做检查,也不会对其合法性进行预处理。简而言之,此时的翻译引擎,只会对提交上来的内容进行翻译,并返回结果。此时的url更多只作为后台分类用。你可以通过HTTP POST RAW上传需要翻译的数据。
请求参数:
| 参数名 | 参数值 | 上传方式 | 是否必须 | 说明 |
|---|---|---|---|---|
| HTTP POST RAW | 合法的HTML数据包 | POST BODY | 是 | HTML数据,不支持JSON |
| source-lang | 受支持的语言,例如zh-cn、en等 | header | 是 | 源语言,查看支持列表 |
| target-lang | 受支持的语言,例如ja、de等 | header | 是 | 目标语言,查看支持列表 |
| api-key | 应用密钥 | header | 是 | 你申请到的应用密钥 |
| rawbody | 1 | header | 是 | 请写1 |
| url | 合法的url | header | 否 | 只作用后台分类,方便查看数据。如果不提供,所有请求将归类到域名首页 |
组装好以上数据,提交到以下API:
https://engine.ltranslate.cn/site/html
四、代码示例
curl -X POST "http://engine.ltranslate.cn/site/html/site/html?api-key=xxxxxx" -H "Content-Type: application/json;charset=UTF-8" -H "url: https://ltranslate.cn/html" -H "source-lang: zh-cn" -H "target-lang: de" -H "rawbody: html" -H "apikey: xxxxxx" -d '
恭喜,站点创建成功!
.container {
width: 60%;
margin: 10% auto 0;
background-color: #f0f0f0;
padding: 2% 5%;
border-radius: 10px
}
ul {
padding-left: 20px;
}
ul li {
line-height: 2.3
}
a {
color: #20a53a
}
恭喜, 站点创建成功!
这是默认index.html,本页面由系统自动生成
本页面在FTP根目录下的index.html
您可以修改、删除或覆盖本页面
FTP相关信息,请到“面板系统后台 > FTP” 查看
' -H "Content-Type: application/json"
<?php
$url = 'http://engine.ltranslate.cn/site/html/site/html';
$url .= '?' . 'api-key=f8ed5ad4-0fa1-4af9-aa94-0d4f9da7a6d5';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
$headers = [
'Content-Type: application/json;charset=UTF-8',
'api-key: xxxxxx',
'rawbody':"html",
'token: 4a10e24b-7f1b-49b6-a340-0e3f904c41ba',
'url: https://ltranslate.cn/html',
'source-lang: zh-cn',
'target-lang: de',
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, '
恭喜,站点创建成功!
.container {
width: 60%;
margin: 10% auto 0;
background-color: #f0f0f0;
padding: 2% 5%;
border-radius: 10px
}
ul {
padding-left: 20px;
}
ul li {
line-height: 2.3
}
a {
color: #20a53a
}
恭喜, 站点创建成功!
这是默认index.html,本页面由系统自动生成
本页面在FTP根目录下的index.html
您可以修改、删除或覆盖本页面
FTP相关信息,请到“面板系统后台 > FTP” 查看
');
$response = curl_exec($ch);
if(curl_errno($ch)) {
echo 'Request Error: ' . curl_error($ch);
}
curl_close($ch);
echo $response;
?>
package main
import (
"bytes"
"fmt"
"io/ioutil"
"net/http"
"strings"
)
func main() {
// JSON 格式化后的字符串
req, err := http.NewRequest("POST", "http://engine.ltranslate.cn/site/html/site/html?api-key=xxxxxx", strings.NewReader(
恭喜,站点创建成功!
.container {
width: 60%;
margin: 10% auto 0;
background-color: #f0f0f0;
padding: 2% 5%;
border-radius: 10px
}
ul {
padding-left: 20px;
}
ul li {
line-height: 2.3
}
a {
color: #20a53a
}
恭喜, 站点创建成功!
这是默认index.html,本页面由系统自动生成
本页面在FTP根目录下的index.html
您可以修改、删除或覆盖本页面
FTP相关信息,请到“面板系统后台 > FTP” 查看
))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Content-Type", "application/json;charset=UTF-8")
req.Header.Set("api-key", "xxxxxx")
req.Header.Set("rawbody", "html")
req.Header.Set("url", "https://ltranslate.cn/html")
req.Header.Set("source-lang", "zh-cn")
req.Header.Set("target-lang", "de")
if err != nil {
fmt.Println("Error:", err)
return
}
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error:", err)
return
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Response:", string(body))
}
五、注意事项
使用submithtml模式,需要你注意以下事项。
- 提交的html必须是正规的html文档,不能是纯文本;
- 系统只会帮你处理html里的可显示字符,不会处理html元素属性值,例如跳转链接、input提示等;
- url此时只作为分类标签,你虽然可以随意提交,但最好结合你真实的业务和页面地址进行上传,这样更利于你查看后台数据。