ローカライズのMOD制作¶
旧バージョンの資料
原文はゲームバージョン3.1向けです。利用可能なコマンドは現行版で増減している可能性があります。
ローカライズとは、イベント、メニュー、兵器、物語など、ゲーム画面でプレイヤーへ示される実際の文章です。ファイルはlocalisationフォルダにYML形式で保存し、UTF-8 BOM付きでエンコードします。ファイル名は<file>_l_<language>.ymlで、<file>はこのローカライズ群の名前、<language>は対象言語です。
対応言語コードはポルトガル語(braz_por)、英語(english)、フランス語(french)、ドイツ語(german)、ポーランド語(polish)、ロシア語(russian)、スペイン語(spanish)、簡体字中国語(simp_chinese)、日本語(japanese)、韓国語(korean)です。
便利なコンソールコマンド:
reload text— ローカライズ表を再読込。switchlanguage l_english— 使用言語を切り替えて再読込。toggle_string_id— ローカライズの代わりにStringIDを表示。
ローカライズファイルの作成¶
- MODルート直下(
commonではない)に、sで綴るlocalisationフォルダを作ります。他のParadox作品のlocalizationとは異なります。 - 必要なら言語別サブフォルダを作れます。整理用で、必須ではありません。
- ファイルは必ずUTF-8 BOM付きにします。BOMなしUTF-8は解析されません。既存のStellaris YMLを複製するのが簡単です。
- ファイル名を
_l_<language>.ymlで終わらせます。例:mod_buildings_l_english.yml。 - 先頭行を
l_<language>:にします。
バニラと同名のYMLはファイル全体を上書きするため、ほぼ全項目を変更する場合以外は推奨しません。個別キーの上書きは後述するreplaceを使います。
MOD向けの代替言語フォールバックはありません。キーが欠けるとキー自体が表示されるため、実務上は英語ファイルを他言語用に複製し、ヘッダーだけ変更することがあります。
ファイルのエンコード¶
YMLファイルをテキストエディターで開き、UTF-8 BOM付きへ変換します。Notepad++やVisual Studio Codeが推奨されますが、標準のメモ帳でも構いません。通常のテキストファイルを新しく作り、YMLとしてUTF-8 BOM付きで保存する方法もあります。
Notepad++では「エンコード」、VS Codeでは右下のエンコード表示(既定はUTF-8)から「エンコード付きで保存」、Windowsメモ帳では「名前を付けて保存」のエンコード欄を使います。VS Codeでは、新規作成するYMLを既定でUTF-8 BOM付きにする設定も可能です。「UTF-8」と「UTF-8 BOM付き」が並ぶ場合は後者、「UTF-8 BOMなし」と「UTF-8」が並ぶ場合は後者を選びます。
ローカライズキー¶
l_<language>:
localisation_key_1: "Text String 1"
localisation_key_2: "Text String 2"
コロン左側がコードから参照するキー、右側の引用符内がゲームへ表示する文字列です。
- バニラでコロン直後にある番号はParadox内部の翻訳追跡用で、省略できます。[1]
- 全キーより前に
l_english:などの言語ヘッダーが必要です。 - ヘッダー以降の各項目は空白またはタブで字下げします。
- 表示文字列を引用符で囲み、文字として引用符を出す場合は
\"とします。 „ “ ‚ ‘ – ” ’ … —は無効で、?として表示されます。
バニラ文章の上書き¶
localisation内にreplaceフォルダを作ります。ここのファイルは他のローカライズより後に読み込まれ、バニラや他のMODの重複キーだけを最後に読み込まれた値で上書きします。この規則はLIOS(Last in, only served)と呼ばれ、ファイル全体を置き換える必要はありません。replaceなしでも上書きできる場合はありますが、信頼できません。
角括弧コマンド¶
スコープ付きローカライズ文を[ ]で囲み、主スコープから始め、0個以上の副スコープをピリオドでつなぎ、文章取得コマンドで終えます。取得部にはハードコード済みコマンド、スコープ内の変数、common/scripted_loc/のスクリプトローカライズ(scripted_loc)を使えます。同フォルダのファイルに実例があります。ただしスクリプトローカライズ自身の中で角括弧コマンドを使うと、[Root.GetName]がそのまま文字として出ます。
スクリプト効果・トリガー内でlog = [This.GetName]のように使う場合は、\\[This.GetName]と書かないと、その効果内で遅くとも2回目の利用時に不具合が起きます。3.1以降は多くの場合、[Scope.my_variable]で変数値、[Scope.my_date_flag]で保存日付も取得できます。[[example]は角括弧をエスケープし、ゲーム内で[example]と表示します。
スコープなしコマンドにはGetDate、GetMidGameDate、GetLateGameDate、GetYear、LastKilledCountryNameがあります。以下はハードコードされたスコープ付きローカライズコマンドの一部で、スクリプトローカライズは含みません。より詳しい一覧はStellaris/logs/script_documentation/localizations.logで確認できます。
主スコープ¶
| コマンド | 例 | 説明 |
|---|---|---|
Root |
[Root.GetName] |
イベントのルートスコープ。 |
This |
[This.GetName] |
現在のスコープ。 |
From |
[From.From.GetName] |
呼び出し元イベントのルート。呼出し履歴をさらに戻る場合は副スコープとしても使えます。 |
Prev |
[Prev.From.GetName] |
直前のスコープ。Prev.Fromの厳密な指示先は不明ですが、一部プロジェクト説明で使用されます。 |
| イベントターゲットタグ | [mytarget.GetName] |
ローカライズ内ではevent_target:を付けません。 |
Actor |
[Actor.GetAllianceName] |
外交応答でアクションを開始した勢力。 |
Recipient |
[Recipient.GetName] |
外交応答で対象となった勢力。 |
Third_party |
[Third_party.GetName] |
外交応答に関係する第三勢力。 |
副スコープ¶
原文では、帝国からのスコープ移行としてCapital、Ruler、Heir、Species、Federation、惑星からのスコープ移行としてOwner、System、MoonOf、Sectorを挙げています。戦争からのスコープ移行を含む個別の用例は次のとおりです。
| コマンド | 例 | 説明 |
|---|---|---|
Capital |
[Root.Capital.GetName] |
帝国またはセクターの首都。 |
Leader |
[Root.Leader.GetName] |
艦隊、帝国、連邦、派閥、ファーストコンタクト、諜報作戦、諜報網、セクターなど現在スコープのリーダー。 |
MainAttacker |
[This.MainAttacker.GetAllianceName] |
戦争スコープの主攻撃国。戦争名などに使用。 |
MainDefender |
[This.MainDefender.GetSpeciesName] |
戦争スコープの主防衛国。戦争名などに使用。 |
Owner |
[Root.Owner.GetName] |
現在スコープの所有者。 |
System |
[Root.System.GetName] |
主スコープが存在する星系。 |
Planet |
[Root.Planet.GetName] |
POP、地上軍、考古学地点、鉱床、巨大構造物など主スコープが存在する惑星。 |
文章取得¶
以下の「通常帝国/集合意識/機械知性」は、対象帝国の種類に応じて返す語が変わることを示します(権威参照)。英語の返却文字列は大文字・小文字や単複の違いを示すため原文表記を残しています。
| コマンド | 用例 | 返す内容 |
|---|---|---|
GetAAnPlanetClass |
[Root.GetAAnPlanetClass] |
対象惑星クラスの先頭文字に応じたaまたはan。 |
GetAAnSpeciesClass |
[Root.owner_species.GetAAnSpeciesClass] |
対象種族クラスの先頭文字に応じたaまたはan。 |
GetAdj |
[Root.GetAdj] |
現在スコープに対応する形容詞。 |
GetAdjective |
[Root.GetAdjective] |
現在スコープに対応する形容詞。 |
GetAllianceName |
[This.MainAttacker.GetAllianceName] |
現在スコープが所属する同盟名。 |
GetControllerName |
[Root.GetControllerName] |
現在の支配者名。惑星で動作確認済み。 |
GetClassName |
[Root.GetClassName] |
現在の惑星クラス名。 |
GetEngineer |
[Owner.GetEngineer] |
通常帝国/集合意識/機械知性に応じたengineer/engineering drone/engineering unit。 |
GetEngineerPlural |
[Owner.GetEngineerPlural] |
通常帝国/集合意識/機械知性に応じたengineers/engineering drones/engineering units。 |
GetFleetName |
[Root.GetFleetName] |
現在スコープに関連する艦隊名。 |
GetHasHave |
[Root.GetHasHave] |
対象リーダーの性別(または性別なし)に応じたhas/have。 |
GetHeirName |
[Root.GetHeirName] |
現在の後継者の名前。 |
GetHeirTitle |
[Root.GetHeirTitle] |
現在の後継者の称号。 |
GetHomeWorldName |
[Root.GetHomeWorldName] |
現在スコープの母星名。 |
GetLeaderName |
[Root.GetLeaderName] |
現在スコープに関連するリーダー名。 |
GetLinguists |
[Owner.GetLinguists] |
通常帝国/集合意識/機械知性に応じたlinguists/language drones/linguistic algorithms。 |
GetName |
[Root.GetName] |
現在スコープに対応する名称。 |
GetRealName |
[Root.GetRealName] |
GetNameと同様ですが、識別状態を無視して実名を取得します(「未確認」でも取得)。 |
GetFirstName |
[Root.GetFirstName] |
対象リーダー名の第1部分。 |
GetSecondName |
[Root.GetSecondName] |
対象リーダー名の第2部分。 |
GetAge |
[Root.GetAge] |
対象リーダーの年齢。 |
GetNamePlural |
[Root.GetNamePlural] |
現在スコープの複数形名。種族スコープである必要があります。 |
GetNebula |
[Root.GetNebula] |
原文では不明。 |
GetOwnerName |
[Root.GetOwnerName] |
現在の所有者名。 |
GetPersonalityName |
[Root.GetPersonalityName] |
現在のAI性格名。 |
GetPlanetHabitat |
[Root.GetPlanetHabitat] |
現在スコープが惑星/衛星/軌道上居住地のどれかに応じたplanet/moon/habitat。 |
GetPlanetMoon |
[Root.GetPlanetMoon] |
現在スコープが惑星/衛星のどちらかに応じたplanet/moon。 |
GetPlanetMoonCap |
[Root.GetPlanetMoonCap] |
現在スコープが惑星/衛星のどちらかに応じたPlanet/Moon。 |
GetPopFactionName |
[Root.GetPopFactionName] |
対象POPが属する派閥名。 |
GetRandomSpeciesSound |
[Root.GetRandomSpeciesSound] |
現在スコープの種族に対応する音声一覧からランダムに選んだ音声。 |
GetRegnalName |
[Root.GetRegnalName] |
現在スコープの王名。 |
GetResearchers |
[Owner.GetResearchers] |
通常帝国/集合意識/機械知性に応じたresearchers/research drones/research subroutines。 |
GetRulerName |
[Root.GetRulerName] |
現在スコープに対応する統治者名。 |
GetRulerTitle |
[Root.GetRulerTitle] |
現在スコープに対応する統治者の称号。 |
GetScientist |
[Owner.GetScientist] |
通常帝国/集合意識/機械知性に応じたscientist/science drone/science unit。 |
GetScientistPlural |
[Owner.GetScientistPlural] |
通常帝国/集合意識/機械知性に応じたscientists/science drones/science units。 |
GetSpeciesAdj |
[Root.GetSpeciesAdj] |
現在スコープの種族形容詞。 |
GetSpeciesClass |
[Root.GetSpeciesClass] |
現在スコープの種族が属するクラス。 |
GetSpeciesClassPlural |
[Root.GetSpeciesClassPlural] |
現在スコープの種族クラスの複数形。 |
GetSpeciesMouthName |
[Root.GetSpeciesMouthName] |
現在スコープの種族の口を指す語。 |
GetSpeciesName |
[Root.GetSpeciesName] |
現在スコープの種族名。 |
GetSpeciesNameCompliment |
[From.GetSpeciesNameCompliment] |
現在スコープの種族を使った賛辞。 |
GetSpeciesNameInsult |
[From.From.GetSpeciesNameInsult] |
現在スコープの種族を使った侮辱。 |
GetSpeciesNamePlural |
[This.GetSpeciesNamePlural] |
現在スコープの種族名の複数形。 |
GetSpeciesNamePluralCompliment |
[Root.GetSpeciesNamePluralCompliment] |
現在スコープの種族名の複数形を使った賛辞。 |
GetSpeciesNamePluralInsult |
[From.GetSpeciesNamePluralInsult] |
現在スコープの種族名の複数形を使った侮辱。 |
GetSpeciesHandName |
[From.GetSpeciesHandName] |
現在スコープの種族の手を指す語。 |
GetSpeciesMouthName |
[From.GetSpeciesMouthName] |
現在スコープの種族の口を指す語。 |
GetSpeciesOrganName |
[From.GetSpeciesOrganName] |
現在スコープの種族の内臓を指す語。 |
GetSpeciesSpawnName |
[Root.GetSpeciesSpawnName] |
現在スコープの種族の子を指す語。 |
GetSpeciesSpawnNamePlural |
[Root.GetSpeciesSpawnNamePlural] |
現在スコープの種族の子を指す語の複数形。 |
GetStarName |
[Root.Capital.GetStarName] |
現在スコープが所在する恒星名。 |
GetIsAre |
[Root.Leader.GetIsAre] |
対象リーダーの性別(または性別なし)に応じたis/are。 |
GetHerHim |
[admiral.GetHerHim] |
対象人物の性別に応じたher/him。 |
GetSheHe |
[abducted_leader.GetSheHe] |
対象人物の性別に応じたshe/he。 |
GetSheHeCap |
[abducted_leader.GetSheHeCap] |
対象人物の性別に応じたShe/He。 |
GetHomeWorldName |
[Root.GetHomeWorldName] |
選択した帝国の母星名。 |
GetHerHis |
[admiral.GetHerHis] |
対象人物の性別に応じたher/his。 |
GetHerHisCap |
[admiral.GetHerHisCap] |
対象人物の性別に応じたHer/His。 |
LastKilledCountryName |
[LastKilledCountryName] |
最後に滅亡した帝国名。スコープなしでも使用可能。 |
GetTerraformer |
[Owner.GetTerraformer] |
通常帝国/集合意識/機械知性に応じたterraforming specialist/terraforming drone/terraforming unit。 |
GetTerraformerPlural |
[Owner.GetTerraformerPlural] |
通常帝国/集合意識/機械知性に応じたterraforming specialists/terraforming drones/terraforming units。 |
GetWasWere |
[Root.Leader.GetWasWere] |
対象リーダーの性別(または性別なし)に応じたwas/were。 |
原文で閉じ角括弧が欠けているGetSpeciesSpawnNameとGetSpeciesSpawnNamePluralの用例には、上表で]を補っています。
3.1ではGetSpeciesFossilName、GetSpeciesFossilNamePlural、GetSpeciesRemnantName、GetSpeciesRemnantNamePlural、Species、GetFossilName、GetFossilNamePlural、GetRemnantName、GetRemnantNamePluralも追加されました。
色コード¶

色コードは§(WindowsではAlt+0167)と1文字で始まり、次の色コードまたは文字列末尾まで有効です。§!で直前の色へ戻します。$コードによる変数表示では$AGE|Y$のように、閉じる$の前へ|と色文字を置けます。DC1 UTF-8文字を色文字へ加える方法もありますが、末尾で既定色へ戻さないと後続文章まで着色する恐れがあります。
この$内の色指定は、文字列の定義ではなく表示する変数に対する指定です。たとえば§RR§Sa§Hi§Yn§Gb§Bo§Mw§!は、Rainbowと表示されます。
| コード | 色 | バニラでの用途 |
|---|---|---|
W |
■ 白 | 外交態度 |
T |
■ 明るい灰 | 通常文章 |
g |
■ 暗い灰 | 無効・非アクティブ |
L |
■ 茶/カーキ | 世界設定、背景、ロールプレイ |
P |
■ 明るいくすみピンク | 攻撃的な説明・イベント文章の強調 |
R |
■ 赤 | 負の補正 |
S |
■ 暗い橙 | 控えめな強調 |
H / K |
■ マンゴー/橙 | 強調文章 |
Y / I |
■ 黄 | 最適でない、または中立の補正 |
G |
■ 緑 | 正の補正 |
V |
■ 暗緑 | イベント文章 |
E |
■ 青緑 | 長い文章 |
C |
■ シアン | 別ツールチップを生成する概念文章 |
B |
■ 青寄りシアン | POPへ影響するイベント効果 |
M |
■ 紫 | レア技術 |
_ |
■ マゼンタ | プレースホルダー |
c |
■ 青緑 | リーダー特性 |
v |
■ 淡緑 | ベテラン特性 |
d |
■ 黄褐色 | 運命特性 |
r |
■ 明紫 | 高名 |
l |
■ 明緑 | 伝説 |
! |
既定 | 直前の色変更前へ戻す |
定義場所はinterface/fonts.gfxです。
$コード¶
$は、別の場所で定義した文字列・変数や、GUIのシステム統計を現在の文字列内へ展開します。
@cyborg_energy_upkeep = 5
"Upkeep by +$@cyborg_energy_upkeep$"
数値書式¶
|で数値を整形できます。$VALUE|*x$はVALUEを小数x桁で表示します。
# EXAMPLE = 100
"$EXAMPLE|*0$" # 100
"$EXAMPLE|*1$" # 100.0
原文では小数0桁の例に10044とありますが、入力値100および直前の書式説明に合わせ、上では100としています。
£コード¶
エネルギー、鉱物、影響力、研究分野などシステム統計のアイコンを文章内へ表示します。タグの両側に£(WindowsではAlt+0163)を置きます。£leader_skill|3£のようにフレーム番号を付ければ、複数フレームのスプライトから選べます。ここにないものはゲームファイル内で£を検索してください。
| コード | 画像 |
|---|---|
£energy£ |
|
£minerals£ |
|
£food£ |
|
£influence£ |
|
£stability£ |
|
£unity£ |
|
£alloys£ |
|
£trade_value£ |
|
£physics£ |
|
£society£ |
|
£engineering£ |
|
£pops£ |
|
£happiness£ |
|
£opinion£ |
|
£empire£ |
|
£military_ship£ |
|
£military_power£ |
|
£blocker£ |
|
£time£ |
|
£planetsize£ |
£ship_stats_hitpoints\armor\shield£、£fleet_template_size£、£trigger_yes\no£などもあります。
£カスタムアイコン¶
16×16pxのDDSをMODルートのgfx/interface/icons/text_iconsへ保存し、イベント画像と同様にMODルートのinterface内のGFXファイルへ定義します。カスタム修飾子を定義する例は次のとおりです。
spriteTypes = {
spriteType = {
name = "GFX_text_worker_produces_mult"
texturefile = "gfx/interface/icons/text_icons/mod_planet_jobs_worker_produces_mult.dds"
}
}
複数アイコンは大きなspriteTypesブロック内へ複数のspriteTypeを置きます。名前にはGFX_text_接頭辞が必須ですが、ローカライズからは接頭辞を除いて£worker_produces_mult£と参照します。
原文の例では末尾の閉じ波括弧が不足していますが、上では外側のspriteTypesブロックを閉じる}を補っています。
バックスラッシュコード¶
\n— 改行。ただし他のコード内では除きます。\t— タブ。\"— 引用符など特殊文字を通常文字として扱います。
スタイルガイド¶
次はバニラ英語ローカライズへ馴染ませるための代表的な規則です。文字数は厳密な上限ではありませんが、超過すると切断、UI破損、外観不良が起こりえます。
| 場所 | 大文字化 | 句読点 | 目安 | 例 |
|---|---|---|---|---|
| イベント名 | タイトルケース | なし | 50 | Exotic Woodwind |
| イベント説明 | センテンスケース | 通常 | 2000 | Music has taken many forms among the beings we have encountered since leaving [Root.GetHomeWorldName], and the methods and preferences continue to baffle us. Sometimes alien […] Whatever this instrument is, it’s unlike any of our own.(「[Root.GetHomeWorldName]を離れて以来遭遇した生命たちの間で、音楽はさまざまな形を取っており、その手法や好みにはいまだ困惑させられる。時に異星の[…]この楽器が何であれ、我々のどの楽器とも異なる。」) |
| イベント選択肢 | センテンスケース | 文末句読点あり | 70 | An excellent time to learn more about their culture.(彼らの文化をもっと知る絶好の機会だ。)Let us be careful and study this instrument.(慎重にこの楽器を調べよう。)The colony is part of our future. It stays.(この植民地は我々の未来の一部だ。存続させる。) |
| 特性・補正・建造物・志向などの名称 | タイトルケース | なし | 30 | Building Cost、Massive Crater、Very Strong |
| 特性・補正・建造物・志向などの説明 | センテンスケース | 通常 | 200 | The impact site of the meteorite which brought Lithoids to this planet.(岩石種族をこの惑星へ運んだ隕石の衝突地点。)Members of this species possess a strength that almost defies the laws of physics.(この種族の個体は、物理法則にほとんど反するほどの強さを備えている。) |
| UIボタン | センテンス/タイトルケース | なし | UI依存 | Withdraw |
| UI警告 | タイトルケース | なし | UI依存 | Relic Activation Available |
参考文献¶
- Martin Anwardによるローカライズの番号の説明(原文が引用している投稿)。
出典: Stellaris Wiki — Localisation modding(原文更新日: 2024年9月23日、版ID 92220)
翻訳日: 2026年9月16日 / 対応バージョン: 3.1
本ページは原文Wiki(CC BY-SA 3.0)の内容を翻訳した非公式ファン翻訳です。