動的コンテンツを自動的に翻訳する

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

標準の翻訳ワークフローは、プレイヤーによってどれだけ頻繁に表示されるかに基づいて、ゲーム内の文字列を検出し、それらを翻訳のためにローカリゼーションテーブルに追加します。珍しい文字列やプレイ中に生成される文字列(動的に生成されたテキストやプレイヤーによって作成されたテキストなど)は見逃されることがあります。translate text APIを使用すると、これらの文字列のリアルタイム翻訳を生成でき、ゲームが完全にローカライズされます。

プレイヤーの言語にテキストを翻訳する

プレイヤーの言語にテキストを翻訳するには、彼らの Player.LocaleId をターゲット言語コードとして渡します。以下は、クライアントスクリプト内でプレイヤーのロケールIDを取得し、それを ServerScriptService 内の Script に渡して翻訳リクエストを行う方法の例です。

  • 翻訳APIは Open Cloud API であり、そのためリクエストを行うために パス が必要です。この場合、ゲームタイルのオーバーフローメニューにあるユニバースIDが必要です。Creator Hub で確認できます。
  • ゲーム内には Open Cloudクライアントパッケージ も含める必要があります。サーバースクリプトでそれが必要です。
クライアントスクリプト

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local httpRequestFunction = ReplicatedStorage:WaitForChild("TranslateTextFunction")
-- 翻訳するテキスト
local textToTranslate = "これは翻訳するための例文です"
-- プレイヤーのロケールを取得
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- ローカルプレイヤーのロケールに対してロケールIDを取得、または任意のサポートされているロケール文字列に設定
local locale = player.LocaleId
local translatedText = httpRequestFunction:InvokeServer(textToTranslate, locale)
print("翻訳されたテキスト: ", translatedText)
ServerScriptService内のサーバースクリプト

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local oc = require(ServerScriptService.OpenCloud.V2)
-- https://create.roblox.com/dashboard/creations からゲームタイルのオーバーフローメニューで見つける
local universeID = <your_universe_id>
-- RemoteFunctionを作成
local remoteFunction = Instance.new("RemoteFunction")
remoteFunction.Name = "TranslateTextFunction"
remoteFunction.Parent = ReplicatedStorage
remoteFunction.OnServerInvoke = function(player, text, locale, uni)
print(player.Name .. " がテキストの翻訳をリクエストしました: " .. text .. " をロケール: " .. locale .. " に対して")
-- 翻訳リクエストの準備
local request : oc.TranslateTextRequest = {
path = oc:UniversePath(universeID),
text = text,
-- ターゲット言語コードは翻訳するための複数のロケールのリストをサポートしています。
-- ここでは 1 つのロケールだけを渡しています:
-- ローカルスクリプトで取得したプレイヤーロケール
target_language_codes = {locale}
}
local result = oc:TranslateText(request)
if result.Error == nil then
return result.Response.translations[locale] -- translations[locale] に翻訳されたテキストが含まれていると仮定
else
return "エラー: " .. result.Error.message
end
end

テスト

リアルタイム翻訳APIは現在、RCC認証のみをサポートしています。そのため、StudioからAPIをテストするには、コードをテストインスタンスにデプロイする必要があります。共同テストを使用してスクリプトをテストインスタンスにデプロイし、変更をテストしてください。

翻訳APIリファレンス

APIリクエストパラメータ

パラメータ名タイプ説明
pathstringユニバースのパス。必須。
textstring翻訳するテキスト。必須。
source_language_codestring入力テキストの言語を表すIETF BCP-47言語コード。指定しない場合、システムが自動的にソース言語を検出します。
target_language_codesArray<string>翻訳のためのIETF BCP-47形式のターゲット言語コードのリスト。

APIレスポンスフィールド

フィールド名タイプ説明
source_language_codestring検出されたまたはユーザー指定のソーステキストの言語を表すIETF BCP-47言語コード。
translationsDictionary<string, string>要求された翻訳を含むマップ。キーはIETF BCP-47言語コード、値はその言語の翻訳されたテキスト。マップにはすべての要求された翻訳が含まれます。ソーステキストがフィルタリングされた場合、このマップは空になります。

制限事項

Robloxは、ゲーム内のプレイヤー数に基づいてこのAPIへのリクエストを制限するために次の式を使用します:

ゲームごとの最大リクエスト数(1分あたり) = 600 + (1.5 * 同時ユーザー数)

また、すべてのOpen Cloud APIに対して、ゲームサーバーごとの1分あたりの合計リクエスト数は150に制限されています。

サポートされている言語

リアルタイム翻訳APIは現在、以下の言語をサポートしており、これは 自動翻訳用のサポート言語 とはわずかに異なります。

言語言語コード
中国語(簡体字)zh-cn
中国語(繁体字)zh-tw
英語en-us
フランス語fr-fr
ドイツ語de-de
インドネシア語id-id
イタリア語it-it
日本語ja-jp
韓国語ko-kr
ポーランド語pl-pl
ポルトガル語pt-br
ロシア語ru-ru
スペイン語es-es
タイ語th-th
トルコ語tr-tr
ベトナム語vi-vn
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。