From 85008a6504d4b470006218d5998debb5dfea8c75 Mon Sep 17 00:00:00 2001 From: arch_agent Date: Tue, 21 Jul 2026 22:17:00 +0200 Subject: [PATCH] =?UTF-8?q?v2.1=20=E2=80=94=20Fix=20localization=20via=20A?= =?UTF-8?q?rchiveXL=20.xl=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Use string keys (crystal_katana_name) instead of LocKey# in YAML - Create crystal_blades.xl to register translation JSONs with ArchiveXL - Translation JSONs with primaryKey:0, secondaryKey matching YAML refs - EN + DE translations in proper ArchiveXL format - Remove old r6/loc/ approach (didn't work) - Names should now resolve correctly in-game --- crystal_blades.xl | 6 +++++ .../de-de/translation_strings.json | 26 +++++++++++++++++++ .../en-us/translation_strings.json | 26 +++++++++++++++++++ r6/loc/de-de/crystal_blades.json | 6 ----- r6/loc/en-us/crystal_blades.json | 6 ----- r6/tweaks/crystal_blades/crystal_blades.yaml | 15 ++++------- 6 files changed, 63 insertions(+), 22 deletions(-) create mode 100644 crystal_blades.xl create mode 100644 crystal_blades/localization/de-de/translation_strings.json create mode 100644 crystal_blades/localization/en-us/translation_strings.json delete mode 100644 r6/loc/de-de/crystal_blades.json delete mode 100644 r6/loc/en-us/crystal_blades.json diff --git a/crystal_blades.xl b/crystal_blades.xl new file mode 100644 index 0000000..479ffa8 --- /dev/null +++ b/crystal_blades.xl @@ -0,0 +1,6 @@ +localization: + onscreens: + en-us: + - crystal_blades\localization\en-us\translation_strings.json + de-de: + - crystal_blades\localization\de-de\translation_strings.json \ No newline at end of file diff --git a/crystal_blades/localization/de-de/translation_strings.json b/crystal_blades/localization/de-de/translation_strings.json new file mode 100644 index 0000000..cf4df61 --- /dev/null +++ b/crystal_blades/localization/de-de/translation_strings.json @@ -0,0 +1,26 @@ +[ + { + "femaleVariant": "Kristallschneider", + "maleVariant": "", + "primaryKey": 0, + "secondaryKey": "crystal_katana_name" + }, + { + "femaleVariant": "Ein Katana mit monomolekularer Kristallklinge. Jeder Treffer verursacht unkontrollierbare Blutung — Rüstung ist bedeutungslos.", + "maleVariant": "", + "primaryKey": 0, + "secondaryKey": "crystal_katana_desc" + }, + { + "femaleVariant": "Phantom Splitter", + "maleVariant": "", + "primaryKey": 0, + "secondaryKey": "crystal_knife_name" + }, + { + "femaleVariant": "Ein Wurfdolch mit monomolekularer Kristallklinge. Geworfene Treffer garantieren Blutung. Wenn das Ziel bereits blutet, verursacht der Dolch innere Blutungen und heilt den Träger.", + "maleVariant": "", + "primaryKey": 0, + "secondaryKey": "crystal_knife_desc" + } +] \ No newline at end of file diff --git a/crystal_blades/localization/en-us/translation_strings.json b/crystal_blades/localization/en-us/translation_strings.json new file mode 100644 index 0000000..92f6907 --- /dev/null +++ b/crystal_blades/localization/en-us/translation_strings.json @@ -0,0 +1,26 @@ +[ + { + "femaleVariant": "Crystal Cleaver", + "maleVariant": "", + "primaryKey": 0, + "secondaryKey": "crystal_katana_name" + }, + { + "femaleVariant": "A katana with a monomolecular crystal blade. Every strike causes uncontrollable bleeding — armor is meaningless.", + "maleVariant": "", + "primaryKey": 0, + "secondaryKey": "crystal_katana_desc" + }, + { + "femaleVariant": "Phantom Splitter", + "maleVariant": "", + "primaryKey": 0, + "secondaryKey": "crystal_knife_name" + }, + { + "femaleVariant": "A throwing knife with a monomolecular crystal edge. Thrown hits guarantee bleeding. If the target is already bleeding, the knife causes hemorrhaging and heals the wielder.", + "maleVariant": "", + "primaryKey": 0, + "secondaryKey": "crystal_knife_desc" + } +] \ No newline at end of file diff --git a/r6/loc/de-de/crystal_blades.json b/r6/loc/de-de/crystal_blades.json deleted file mode 100644 index 2c3fb89..0000000 --- a/r6/loc/de-de/crystal_blades.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "crystal_katana_name": "Kristallschneider", - "crystal_katana_desc": "Ein Katana mit monomolekularer Kristallklinge. Geschmiedet in den Tiefen des schwarzen Marktes von Night City. Jeder Treffer verursacht unkontrollierbare Blutung — Rüstung ist bedeutungslos.", - "crystal_knife_name": "Phantom Splitter", - "crystal_knife_desc": "Ein Wurfdolch mit monomolekularer Kristallklinge. Geworfene Treffer garantieren Blutung. Wenn das Ziel bereits blutet, verursacht der Dolch innere Blutungen und heilt den Träger." -} \ No newline at end of file diff --git a/r6/loc/en-us/crystal_blades.json b/r6/loc/en-us/crystal_blades.json deleted file mode 100644 index f06d8ce..0000000 --- a/r6/loc/en-us/crystal_blades.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "crystal_katana_name": "Crystal Cleaver", - "crystal_katana_desc": "A katana with a monomolecular crystal blade. Forged in the depths of Night City's black market. Every strike causes uncontrollable bleeding — armor is meaningless.", - "crystal_knife_name": "Phantom Splitter", - "crystal_knife_desc": "A throwing knife with a monomolecular crystal edge. Thrown hits guarantee bleeding. If the target is already bleeding, the knife causes hemorrhaging and heals the wielder." -} \ No newline at end of file diff --git a/r6/tweaks/crystal_blades/crystal_blades.yaml b/r6/tweaks/crystal_blades/crystal_blades.yaml index b275388..a1a4561 100644 --- a/r6/tweaks/crystal_blades/crystal_blades.yaml +++ b/r6/tweaks/crystal_blades/crystal_blades.yaml @@ -1,28 +1,23 @@ # Crystal Blades — Kristallklingen # Klon von Satori (Katana) und Nehan (Wurfdolch) -# Behält alle versteckten GameplayLogicPackages, Scripte und Effekte -# Nur Name, Beschreibung und zusätzliche Stats werden überschrieben +# Namen als String-Referenzen (nicht LocKey#), aufgelöst via ArchiveXL # ============================================================ # WAFFE 1: Kristallschneider — Klon von Satori -# Satori = Items.Preset_Katana_Saburo_Legendary -# Behält: Bleeding, Hemorrhaging, alle Hidden Packages # ============================================================ Items.Preset_Crystal_Katana: $base: Items.Preset_Katana_Saburo_Legendary - displayName: LocKey#crystal_katana_name - localizedDescription: LocKey#crystal_katana_desc + displayName: crystal_katana_name + localizedDescription: crystal_katana_desc quality: Quality.Legendary # ============================================================ # WAFFE 2: Phantom Splitter — Klon von Nehan -# Nehan = Items.Preset_Tanto_Saburo_Retrofix -# Behält: Thrown hits apply Bleeding, Hemorrhaging, Healing # ============================================================ Items.Preset_Crystal_Knife: $base: Items.Preset_Tanto_Saburo_Retrofix - displayName: LocKey#crystal_knife_name - localizedDescription: LocKey#crystal_knife_desc + displayName: crystal_knife_name + localizedDescription: crystal_knife_desc quality: Quality.Legendary \ No newline at end of file