POST提交配置指南

本文档详细介绍如何在POST提交模式下配置Ltranslate翻译服务,适用于企业内网隔离等特殊场景。

一、概述

跟国外同类型服务相比,LtranslateCN也是基于代理技术实现的。同时也给客户更多的灵活性,你可以根据需求,直接向翻译引擎提交合法的HTML文件。此时,引擎将停止走代理服务,而是直接将翻译好的html返回,这种方式尤其适合内外网隔离的企业内部应用。

二、步骤

要接入submithtml模式,你需要做以下步骤。

  1. 申请API Key:https://manage.ltranslate.cn/create-account
  2. 在创建网站时,站点平台选择【企业应用】
提示:这样,创建出来的项目就支持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此时只作为分类标签,你虽然可以随意提交,但最好结合你真实的业务和页面地址进行上传,这样更利于你查看后台数据。