收费标准 
API价格

马上免费试用

暗色

亮色

USER DICTIONARY
批量新增用户辞典条目
一次新增大量用户辞典条目。
此功能可用于T-400引擎, 即时翻译引擎和T-3MT引擎。
Endpoint
Request details
POST
https://translate.rozetta-api.io/api/v1/dictionary/bulk
Header
Header
Description
Content-Type
application/json
accessKey, nonce, signature
请参考「加密签名」章节
Body
Key
Required
Description
fromLang
O
原文的语言。 (数组内物件的Key) 除个别语言外(zh-CN、zh-TW等)请使用ISO 639-1代码来指定。 若要取的所有支持语言的列表,请参照「语言列表」章节
fromText
O
原文。 (数组内物件的Key) 每个词的文字数上限为:255字。 关于文字数的计算方法,请参考「计数方式」的「文字计数方法」。
toLang
O
译文的语言。 (数组内物件的Key) 除个别语言外(zh-CN、zh-TW等)请使用ISO 639-1代码来指定。 若要取的所有支持语言的列表,请参照「语言列表」章节
toText
O
翻译结果。 (数组内物件的Key) 每个词的文字数上限为文字数上限:255字。 关于文字数的计算方法,请参考「计数方式」的「文字计数方法」。
Response
Key
Description
status
成功加入条目后,此栏的值将会是success,否则会是failure。
Limitation
限制
若您使用的是即时翻译引擎,一个句子当中,请避免使用超过3个用户辞典。 示例: "猫"→"Kitty" "犬"→"Marutaro" "ウサギ"→"Peter" "クマ"→"Teddy" 一次的请求当中,发送下列的原文进行翻译 ["これはです。それはです。ウサギクマも動物です。", "ウサギクマも可愛いです。"] 则会取得以下的结果。 ["This is Kitty. It is Marutaro. Both Peter and bears are animals.", "Both Peter and Teddy are cute."] ※第一个句子由于已匹配「猫」、「犬」、「ウサギ」3个用户辞典,「クマ」则不会被匹配。

api/v1/dictionary/bulk
用例:读取CSV文件,一次新增大量辞典条目。
JavaScript
const superagent = require('superagent');
const crypto = require('crypto');
const csvParse = require('csv-parse');
const fs = require('fs');
const path = require('path');

const serverConfig = {
    protocol: 'https:',
    hostname: 'translate.rozetta-api.io',
    port: 443
};

const authConfig = {
    accessKey: 'ACCESS_KEY',
    secretKey: 'SECRET_KEY',
    nonce: Date.now().toString()
};

const fsPromises = fs.promises;

const DATA_FOLDER = path.join(__dirname);

const normalizeText = (text) => {
  const normalized = text.trim();
  if (normalized.startsWith('"') && normalized.endsWith('"')) {
    return normalized.replace(/^"/, '')
      .replace(/"$/, '');
  }
  return normalized;
};

const extractLines = async (content) => new Promise((resolve, reject) => {
  csvParse(
    content,
    {
      delimiter: ',',
      relax: true,
      trim: true,
    },
    (error, lines) => {
      if (error !== undefined) {
        reject(error);
        return;
      }
      resolve(lines);
    },
  );
});

const linesToEntries = (fromLang, toLang, records) => {
  const entries = records.filter((record) => record.length >= 2)
    .map((record) => ({
      fromLang,
      fromText: normalizeText(record[0]),
      toLang,
      toText: record[1],
    }));
  return entries;
};

const sendRequest = (serverConfig, authConfig, payload) => {
  const url = '/api/v1/dictionary/bulk';
  const signature = authUtils.generateSignature(
    url,
    authConfig.secretKey,
    authConfig.nonce
  );

  const headers = {
    accessKey: authConfig.accessKey,
    signature,
    nonce: authConfig.nonce,
  };
  return superagent.post(`${serverConfig.protocol}//${serverConfig.hostname}${url}`)
    .set(headers)
    .send(payload)
    .then((res) => {
      return res.body;
    }).catch((err) => {
      return err.message;
    });
};

const main = async () => {
  try {
    const csvFiles = await fsPromises.readdir(DATA_FOLDER);
    const allEntries = [];
    for (const file of csvFiles) {
      if (!file.endsWith('.csv')) {
        continue;
      }
      const filePath = path.join(DATA_FOLDER, file);

      /*
        csv file like:
        square,広場
        rabbit,ラビット
      */
      const content = await fsPromises.readFile(
        filePath,
        {
          encoding: 'utf8',
        },
      );
      const lines = await extractLines(content);

      // set all lines lang from en to ja
      const entries = linesToEntries(
        'en',
        'ja',
        lines,
      );

      if (entries.length === 0) {
        continue;
      }

      allEntries.push(...entries);
    }

    const response = await sendRequest(
      serverConfig,
      authConfig,
      allEntries
    );
    console.log('Server response:');
    console.log(response);

  } catch (error) {
    console.error(error);
  }
};

main();
关于认证方法,请参考「加密签名」章节。
关于各语言完整的示例代码,请参考这裡
©️ 2019 Rozetta API  ・  Powered by Rozetta

Rozetta股份有限公司

^