越境ECの商品情報を翻訳する方法
1万点の商品カタログも、1点ずつではなく1つの処理でまとめて翻訳できます。タイトル、説明、サイズ、色、素材が訳され、各商品はSKUと対応したまま戻るので、そのまま取り込めます。使った分だけの支払いで、定額契約は不要です。
オンラインで実行
アカウントでログインし、当社のサーバー上で実行します。無料ツールはブラウザ内で動作しますが、これは上記の料金がKIT残高から差し引かれます。
商品名や説明文、仕様といった項目が並ぶ商品カタログを、項目の構造を保ったまままとめて翻訳するツールです。海外向けにECサイトを展開する際の、商品ページ全体の多言語化に向いています。
カタログ翻訳が文章の翻訳と違う理由
商品カタログは文章ではなく、項目の決まったデータです。各行にタイトル、説明、サイズ、色、素材の一覧、在庫と結びつく識別番号が並びます。一般的な翻訳ツールは段落を前提にしているため、1万行を1件ずつ訳すとその分だけ手間がかかり、訳した商品を元の行に結び付け間違える機会も増えます。また、サイズ表の値はサイズ表の値のまま、識別番号は機械で読める形のまま残す必要があり、ブランド名は通常訳しません。新しい国に進出したマーケットプレイスでは、属性を直訳したためにストアの絞り込みや検索が動かなくなった例があります。
使い方と向いている場面
カタログを、商品ごとのタイトル・説明・属性と、翻訳先の言語とともに送ります。処理は裏側で進み、終わると同じ構造のまま、訳すべき部分だけが訳され、各商品は元の識別番号に対応した状態で戻ります。そのため、商品管理の仕組みへの取り込みは手作業の照合ではなく、そのままの対応付けで済みます。新しい国でストアを開く前に8,000点のカタログをまとめて訳す、毎晩追加・編集した商品だけを送る、サイズ・色・素材の属性を訳しながら識別番号は変えない、といった使い方に向いています。
項目ごとに処理
商品名、説明文、仕様といった項目を区別したうえで翻訳します。数値や型番など翻訳の不要な項目を対象から外すこともできます。
まとめて処理できる
1件ずつではなく、商品リストをまとめて送信できます。数百件規模の商品カタログでも、同じ形式のまま多言語化できます。
使い方
商品データと翻訳先の言語を指定して送信します。処理が終わると、同じ項目構成のデータが翻訳済みの内容で返されます。
活用例
越境ECサイトの商品ページ
株式会社山田商事は、海外向けに出店したECサイトの商品カタログをまとめて翻訳し、商品名と説明文を多言語で公開しています。
新商品発売時のカタログ更新
合同会社みどりデザインは、新商品を追加するたびに商品カタログの該当項目だけを翻訳し、既存の多言語ページに反映しています。
海外向け卸売カタログの整備
田中大輔さんは、海外の取引先に送る卸売カタログの仕様欄をまとめて翻訳し、英語版の資料を作成しています。
よくある質問
数値や型番も翻訳されてしまいますか?
対象から外すことができます。翻訳が必要な項目のみを指定して処理します。
項目の並び順は変わりませんか?
変わりません。 送信したデータと同じ項目構成、同じ順序で翻訳済みのデータが返されます。
日本語のサポートはありますか?
申し訳ありませんが、日本語でのサポートは行っておりません。サポートは英語またはスペイン語で、担当者が直接対応します。ツール自体は日本語で問題なくご利用いただけます。
新しく追加・変更した商品だけを翻訳できますか?
はい、できます。毎晩、その日に追加または編集した商品だけを送る運用にすれば、変わっていない商品を訳し直すことなく、翻訳済みのストアを最新に保てます。
複数の国向けに同じカタログを使えますか?
はい。同じ元のカタログを国ごとに1回ずつ送れば、それぞれの言語の商品データが得られます。4か国で販売するブランドなら4回送り、結果を1つの管理システムにまとめられます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/translate/catalog \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"name":"Silla","description":"Cómoda"}],"target_lang":"en"}'const res = await fetch("https://api.kit.forhosting.com/translate/catalog", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
{
"name": "Silla",
"description": "Cómoda"
}
],
"target_lang": "en"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/translate/catalog",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
{
"name": "Silla",
"description": "Cómoda"
}
],
"target_lang": "en"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/translate/catalog", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":[{"name":"Silla","description":"Cómoda"}],"target_lang":"en"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":[{"name":"Silla","description":"Cómoda"}],"target_lang":"en"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/translate/catalog", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"items": [
{
"name": "Silla",
"description": "Cómoda"
}
],
"target_lang": "en"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "translate.catalog",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_tokens | 20000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
422 | task_failed | タスクの処理に失敗しました。このタスクは課金されません。 |
技術的な注記
料金
1リクエスト$0.003に、商品1件ごとの$0.0135を加えた金額です。100件の商品カタログであれば、合計はおよそ$1.35です。
技術的な質問
何件までまとめて送信できますか?
1リクエストあたり最大約20,000トークンです。件数が多い場合は複数回に分けて送信してください。
料金はどのように計算されますか?
1リクエスト$0.003に、商品1件ごとの$0.0135を加えた金額です。米ドル建てです。
アップロードした商品データは保存されますか?
翻訳の処理にのみ使用し、完了後は保存しません。