roblox-localization について
翻訳、多言語コンテンツ、地域判定を実装する Roblox 開発者向けのローカライゼーションスキルです。組み込みサービス、自動・手動翻訳、Studio の翻訳テーブル操作を扱います。
主な機能
- 01プレイヤーとシステムのロケール検出
- 02翻訳テーブルの設定
- 03GUI 自動翻訳の条件設定
- 04Translator による手動翻訳
- 05国と地域の判定
- 06CSV テーブル編集とロケールテスト
活用シーン
- 01GUI テキストへの翻訳追加
- 02プレイヤーのロケールに応じたコンテンツ選択
- 03地域別オファーの表示
- 04翻訳テーブルの編集とテスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tabooharmony/ roblox-brain --skill roblox-localizationインストール後、Claude Code で/roblox-localizationを入力して読み込まれたか確認します。
同梱ファイルreferences/full.md
詳細
Roblox のローカライズ
読み込むタイミング
多言語対応、翻訳システム、ロケール固有のコンテンツ、地域検出を実装する場合に読み込みます。LocalizationService、LocalizationTable、自動翻訳、国/地域の検出について説明します。
クイックリファレンス
ロケールの検出
player.LocaleId:プレイヤーが Roblox アカウントに設定したロケール(例:en-us、pt-br、ja-jp)LocalizationService.RobloxLocaleId:コア機能/内部機能のロケールLocalizationService.SystemLocaleId:プレイヤーの OS のロケールLocalizationService:GetCountryRegionForPlayerAsync(player):IP ジオロケーションによる国コード(例:US、BR、JP)
翻訳テーブル
LocalizationTable:翻訳エントリを格納します(キー → ロケールごとの翻訳)- 自動翻訳を使うには、
LocalizationTableをLocalizationServiceの子にします - GUI オブジェクトの
GuiBase2d.RootLocalizationTableを設定すると、要素ごとにテーブルを指定できます - Studio では Localization Tools プラグインを使って、文字列をテーブルに自動抽出できます
自動翻訳
- 自動翻訳には、GUI とそのすべての祖先で
AutoLocalize = trueに設定し、対応するテーブルエントリを用意する必要があります - 通常どおり
TextLabel.Textを設定すると、エンジンがプレイヤーのロケールに応じた翻訳済み文字列に置き換えます - 翻訳が見つからない場合は、ソーステキストにフォールバックします
手動翻訳
local translator = LocalizationService:GetTranslatorForPlayerAsync(player)
local translated = translator:Translate(game, "Welcome!")
local formatted = translator:FormatByKey("coins_count", {count})
国/地域の検出
local country = LocalizationService:GetCountryRegionForPlayerAsync(player)
if country == "US" then -- USD pricing
-- US offer
elseif country == "GB" then
-- UK offer
end
主なルール
GetCountryRegionForPlayerAsyncは非同期です。pcall で囲み、失敗する可能性を考慮してくださいGetTranslatorForPlayerAsyncは非同期です。トランスレーターをキャッシュしてください- テーブルを選択するには
RootLocalizationTableを設定し、祖先の階層全体でAutoLocalizeを true に保ってください - 翻訳エントリには、
SourceText、SourceLocaleIdに続いて、en-us、pt-brなどの列を設定します - 一括編集するには、Studio からテーブルを CSV としてエクスポート/インポートしてください
- Studio のロケールシミュレーターを使って、異なるロケールでテストしてください
注意点
- すべてのロケールがサポートされているわけではありません。
player.LocaleIdを確認してください - 自動翻訳は GUI 以外のテキストには機能しません。手動で
Translator:Translateを使用してください GetCountryRegionForPlayerAsyncは IP ジオロケーションを使用するため、VPN を使うと誤った結果になります- エントリが見つからない場合、何も通知されずにソーステキストにフォールバックします
詳細が必要ですか? references/full.md を読み込んでください。
コメント
Markdown 対応