ご利用方法 
すぐにアカウントを発行

無料で試す

ダーク

ライト

ファイル翻訳の旧拡張子のサポート終了のお知らせ(08/24更新)

システムメンテナンスのお知らせ(09/17更新)

ファイル翻訳の旧拡張子のサポート終了のお知らせ(08/24更新)

USER DICTIONARY
専門用語一括登録
大量な専門用語を一括登録します。
本機能はT-4OOエンジン、リアルタイム翻訳エンジン、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文字以内で指定してください。 文字数のカウント方法は「カウント方法」の「文字数のカウント方法」を参照してください。
Request例
[{
  "fromLang": "en",
  "fromText": "square",
  "toLang": "ja",
  "toText": "広場"
},
{
  "fromLang": "en",
  "fromText": "rabbit",
  "toLang": "ja",
  "toText": "ラビット"
}]
Response
Key
Description
status
成功した場合、「success」を返します。失敗した場合、「failure」を返します
Response例
{
  "status": "success"
}
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ファイルを読み取り、複数の単語を一括登録します。
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.info',
    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

株式会社ロゼッタ

^