From 950c3890826f25386c966fc36d97c15e1d4c349f Mon Sep 17 00:00:00 2001 From: ghostnup Date: Wed, 16 Aug 2023 20:04:11 +0800 Subject: [PATCH 1/7] update notes --- RemnantSaveGuardian/game.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/RemnantSaveGuardian/game.json b/RemnantSaveGuardian/game.json index e6461fd..ac809bd 100644 --- a/RemnantSaveGuardian/game.json +++ b/RemnantSaveGuardian/game.json @@ -809,11 +809,11 @@ ], "Rookery": [ { - "name": "/Items/Trinkets/Amulets/EffigyPendant/Amulet_EffigyPendant" + "name": "/Items/Trinkets/Amulets/EffigyPendant/Amulet_EffigyPendant", + "notes": "Inside lockbox" }, { - "name": "/Items/Trinkets/Amulets/CleansingStone/Amulet_CleansingStone", - "notes": "Inside lockbox" + "name": "/Items/Trinkets/Amulets/CleansingStone/Amulet_CleansingStone" } ], "FaeArchon": [ @@ -1288,7 +1288,7 @@ }, { "name": "/Items/Armor/Base/RelicTesting/SiphonHeart/Relic_Consumable_SiphonHeart", - "notes": "give Shining Essence to Custodian" + "notes": "give Shining Essence Echo to Custodian" } ], "DrzyrReplicator": [ @@ -1320,7 +1320,8 @@ "name": "/Items/Trinkets/Rings/SuppressionWard/Ring_SuppressionWard" }, { - "name": "/Items/Trinkets/Amulets/VoidIdol/Amulet_VoidIdol" + "name": "/Items/Trinkets/Amulets/VoidIdol/Amulet_VoidIdol", + "notes": "use Shining Essence Echo to craft at Drzyr Replicator" } ], "NerudGuardian": [ From a4c9ff5a489fd25c3224e149e718a680e5e8eed7 Mon Sep 17 00:00:00 2001 From: ghostnup Date: Wed, 16 Aug 2023 20:15:44 +0800 Subject: [PATCH 2/7] locales: update zh-CN translation Adding translation of notes. --- .../locales/GameStrings.zh-CN.resx | 217 ++++++++++++++++-- .../locales/Strings.zh-CN.resx | 6 + 2 files changed, 200 insertions(+), 23 deletions(-) diff --git a/RemnantSaveGuardian/locales/GameStrings.zh-CN.resx b/RemnantSaveGuardian/locales/GameStrings.zh-CN.resx index 7e10b39..89ba6ee 100644 --- a/RemnantSaveGuardian/locales/GameStrings.zh-CN.resx +++ b/RemnantSaveGuardian/locales/GameStrings.zh-CN.resx @@ -346,55 +346,55 @@ 护甲 - 学者 + 学者套装 - 执政官 + 执政官套装 身体 - 斗士 + 斗士套装 - 技师 + 技师套装 - 探索者 + 探索者套装 - 翡族皇家 + 翡族皇家套装 手部 - 正午 + 正午套装 - 驯兽员 + 驯兽员套装 头部 - 夜行者 + 夜行者套装 - 入侵者 + 入侵者套装 腿部 - 莱托2型 + 莱托2型套装 磁石王冠 - 战地医务兵 + 战地医务兵套装 领航员头盔 @@ -406,13 +406,13 @@ 红王子的王冠 - 红寡妇 + 红寡妇套装 - 空间工作者 + 空间工作者套装 - 长老 + 长老套装 虚空 @@ -438,6 +438,9 @@ 精神病院 + + 完成游戏 + 贝恩十字路口 @@ -469,7 +472,7 @@ 白骨收获者巢穴 - 首领 + 世界Boss 布拉巴斯 @@ -492,9 +495,36 @@ 屠夫区 + + 从诺拉那里购买医务兵饰针 + + + 从老雷那里购买旧金属工具 + + + 从泥牙那里购买古老哨子 + + + 从布拉巴斯那里购买锈蚀奖章 + + + 货船 + + + 货船传送门 + 卡莎 + + 卡莎35%几率刷新 + + + 卡莎65%几率刷新 + + + 卡莎75%几率刷新 + 预兆教堂 @@ -510,9 +540,15 @@ 城市02 + + 在小丑表演时鼓掌 + 钟楼 + + 完成至少15个世界故事后在老雷那里购买 + 在硬核模式下完成迷宫 @@ -522,6 +558,9 @@ 在硬核模式下完成涅鲁德 + + 在噩梦难度下完成战役后在老雷那里购买 + 完成游戏 @@ -567,12 +606,30 @@ 黑暗之渠 + + 打败30个世界Boss后在卡沙那里购买 + + + 打败所有的Boss一次后在老雷那里购买 + + + 死亡15次后在老雷那里购买 + + + 联机中与队友完成击掌后在老雷那里购买 + + + 不插入超载钥匙 + 沉睡的涅鲁德设施 不燃者格温迪尔 + + 对熟睡中的女猎人使用捕梦者 + 德兰先知 @@ -582,6 +639,9 @@ 泽厄尔复制品 + + 吃死亡之果3次 + 电梯井 @@ -651,6 +711,9 @@ 根蔓中枢 + + 超重状态下飞扑100次后在老雷那里购买 + 废弃区 @@ -663,9 +726,39 @@ 突变因子 + + 被达拉裟吃掉 + + + 佩戴生锈的领航员吊坠被达拉裟吃掉 + + + 在涅鲁德沉睡设施中被手动净化程序杀死 + + + 到达根蔓地球后在卡沙那里购买 + 鎏金大厅 + + 把在议会厅镜子世界获得的刺客匕首给尼姆埃 + + + 把德瑞雅的脚链给瑞文 + + + 把翡凌魔符和翡麟魔符给尼姆埃 + + + 把闪耀精华回声给保管人 + + + 把银缎带和金缎带给尼姆埃 + + + 把圣物折磨之心给尼姆埃 + 黄金殿堂 @@ -706,7 +799,7 @@ 皇家花园 - 我是传奇故事 + 我是传奇 愤怒灵偶 @@ -714,6 +807,9 @@ 随机事件 + + 在木盒子里面,任务物品打开木盒子互动 + 入侵者 @@ -762,12 +858,24 @@ 召唤师 + + 小丑卡牌门 - 双角恶魔 + + + 小丑卡牌门 - 面具 + 丛林 卡尤拉的休憩 + + 击杀议会成员 + + + 用近战武器刺客匕首给红王子最后一击 + 柯亚拉库里 @@ -789,6 +897,9 @@ 萎缩 + + 听睡觉哥讲完兔子的故事 + 哭泣天使 @@ -892,7 +1003,7 @@ 复仇女神 - 迷你首领 + 小Boss 改装 @@ -990,9 +1101,18 @@ 泥牙 + + 完成与泥牙全部聊天奖励 + + + 完成与泥牙一半聊天奖励 + 突变因子 + + 在喜乐宫的巨型下水道入口附近 + 沙哈拉:涅鲁德的幽灵守护生物 @@ -1002,6 +1122,21 @@ 织夜者的网 + + 织夜者的网 - 德瑞雅的脚链 + + + 织夜者的网 - 科尔凯特的剃刀 + + + 织夜者的网 - 织夜者石像 + + + 织夜者的网 - Override Pin (涅鲁德) + + + 织夜者的网 - 贪婪勋章 + 尼姆埃 @@ -1014,6 +1149,12 @@ + + 在科尔凯特上锁房间头顶的船上 + + + 在喜乐宫里小丑坐的骨堆上 + 先知的庇护所 @@ -1653,6 +1794,9 @@ 召唤师 + + 乘坐泽厄尔复制品右边的电梯,然后沿着桥右侧的小路走,你会看到制作材料在机器上 + 达拉裟的庇护所 @@ -1662,6 +1806,9 @@ 终点站 + + 塞恩树完全长大,结出神圣塞恩果3次后,再次成熟获得 + 烟囱 @@ -1944,12 +2091,21 @@ 地下城 + + 对熟睡中的尼姆埃使用捕梦者 + + + 在泽厄尔复制品处用闪耀精华回声制作 + 无形者的地下室 虚空躯壳建筑 + + 打掉堵塞排水口的怪物,等待90分钟等到大水灌满 + 莱米尔 @@ -2151,6 +2307,9 @@ 世界之刃 + + 在宫殿庭院里同时佩戴独一真皇魔符(项链)、翡凌魔符(戒指)、翡麟魔符(戒指) + 低语 @@ -2161,7 +2320,7 @@ 凋零 - 世界首领 + 世界Boss 地球 @@ -2188,11 +2347,14 @@ 协调指环 - 迷宫 + 迷宫套装 叨沃 + + 噩梦螺旋 + 玛瑙钟摆 @@ -2202,9 +2364,6 @@ 虚空神像 - - 四座雕像 - 电池 @@ -2217,6 +2376,9 @@ 反馈 + + 鬼魅甲壳 + 调谐者 @@ -2232,13 +2394,22 @@ 武器之王 + + 红鹿雕像 + 转变之心 + + 亮钢戒指 + 蓝宝梦石 精巧锤矛 + + 红寡妇王庭 + \ No newline at end of file diff --git a/RemnantSaveGuardian/locales/Strings.zh-CN.resx b/RemnantSaveGuardian/locales/Strings.zh-CN.resx index a98b36e..fb05b04 100644 --- a/RemnantSaveGuardian/locales/Strings.zh-CN.resx +++ b/RemnantSaveGuardian/locales/Strings.zh-CN.resx @@ -201,6 +201,9 @@ 确认删除 + + 全部折叠 + 复制 @@ -234,6 +237,9 @@ 请在恢复保存备份前退出游戏。 + + 全部展开 + 将存档导出为纯文本 From 67698147cbbac7304845bdc45289544d27051257 Mon Sep 17 00:00:00 2001 From: aescolastico Date: Wed, 16 Aug 2023 15:57:05 -0400 Subject: [PATCH 3/7] added new note items and also fleshed out some existing ones --- RemnantSaveGuardian/game.json | 151 +++++++++++++++++++--------------- 1 file changed, 85 insertions(+), 66 deletions(-) diff --git a/RemnantSaveGuardian/game.json b/RemnantSaveGuardian/game.json index e6461fd..8e47723 100644 --- a/RemnantSaveGuardian/game.json +++ b/RemnantSaveGuardian/game.json @@ -188,7 +188,8 @@ ], "LivingStone": [ { - "name": "/Items/Trinkets/Rings/LithicSignet/Ring_LithicSignet" + "name": "/Items/Trinkets/Rings/LithicSignet/Ring_LithicSignet", + "notes": "Found in The Lament, The Twisted Chantry, or The Chimney locations on Yaesha at the end of a hidden passageway. To open the passageway, locate a room with 4 statues of Pan Warriors and shoot the crystals in their foreheads, opening a hidden stair case in the middle of the room." } ], "ThaenLeaf": [ @@ -211,7 +212,8 @@ "name": "/Items/Trinkets/Amulets/MatriarchsInsignia/Amulet_MatriarchsInsignia" }, { - "name": "/Items/Trinkets/Amulets/RedDoeSigil/Amulet_RedDoeSigil" + "name": "/Items/Trinkets/Amulets/RedDoeSigil/Amulet_RedDoeSigil", + "notes": "Awarded after giving the Ornate Lockbox item (unopened) found in The Widow's Court location on Yaesha, to The Eternal Empress at the Red Throne location on Yaesha." }, { "name": "/Items/Trinkets/Rings/ZoheesRing/Ring_ZoheesRing" @@ -225,7 +227,8 @@ "name": "/Items/Trinkets/Rings/FrivolousBand/Ring_FrivolousBand" }, { - "name": "/Items/Trinkets/Rings/LodestoneRing/Ring_LodestoneRing" + "name": "/Items/Trinkets/Rings/LodestoneRing/Ring_LodestoneRing", + "notes": "Awarded from speaking with Bedel of The Vaunnt in the Forbidden Grove location on Yaesha while wearing the Lodestone Crown armor piece." }, { "name": "/Items/Trinkets/Rings/BloodJewel/Ring_BloodJewel" @@ -245,7 +248,8 @@ "name": "/Items/Trinkets/Amulets/RavagersMark/Amulet_RavagersMark" }, { - "name": "/Items/Weapons/Melee/Special/FeralJudgment/Weapon_FeralJudgment" + "name": "/Items/Weapons/Melee/Special/FeralJudgment/Weapon_FeralJudgment", + "notes": "Crafted by McCabe at Ward 13. Requires the Ravager's Maw item, obtained from performing an Alt Kill on the Corrupted Ravager boss in the Ravager's Lair location on Yaesha. The Alt Kill is performed by shooting the Ravager to initate the fight, killing the Red Doe before the Ravager is able to eat it, and then killing the Ravager boss." }, { "name": "/Items/Weapons/Melee/Special/RedDoeStaff/Weapon_RedDoeStaff" @@ -330,7 +334,8 @@ ], "RootHorror": [ { - "name": "/Items/Trinkets/Rings/TearOfKaeula/Ring_TearOfKaeula" + "name": "/Items/Trinkets/Rings/TearOfKaeula/Ring_TearOfKaeula", + "notes": "Found in the Kaeula's Rest location on Yaesha, at the foot of a statue, beneath a waterfall." }, { "name": "/Items/Mods/Mod_Rootlash/Mod_Rootlash" @@ -398,7 +403,8 @@ "name": "/Items/Mods/Mod_AstralBurst/Mod_AstralBurst" }, { - "name": "/Items/Trinkets/Rings/RingOfOmens/Ring_RingOfOmens" + "name": "/Items/Trinkets/Rings/RingOfOmens/Ring_RingOfOmens", + "notes": "Found in the Cathedral of Omens location on Yaesha, behind a red trap door on the ground, after solving the Blood Moon puzzle. The trapdoor will only open during the Blood Moon event." }, { "name": "/Items/Weapons/LongGuns/Special/Sagittarius/Weapon_Sagittarius" @@ -432,7 +438,8 @@ "name": "/Items/Mods/Mod_Soulbinder/Mod_Soulbinder" }, { - "name": "/Items/Trinkets/Amulets/DownwardSpiral/Amulet_DownwardSpiral" + "name": "/Items/Trinkets/Amulets/DownwardSpiral/Amulet_DownwardSpiral", + "notes": "Found in the Chimney location on Yaesha, hidden halfway down the staircase in the Crystal Elevator event." } ], "TheLament": [ @@ -461,7 +468,8 @@ ], "TheTangle": [ { - "name": "/Items/Trinkets/Amulets/FullMoonCirclet/Amulet_FullMoonCirclet" + "name": "/Items/Trinkets/Amulets/FullMoonCirclet/Amulet_FullMoonCirclet", + "notes": "Found in The Imperial Gardens location on Yaesha, in a hidden room below a trapdoor marked with a golden full moon crest. The trapdoor will only open during the Blood Moon event." }, { "name": "/Items/Weapons/Melee/Standard/Katana/EdgeOfTheForest/Weapon_EdgeOfTheForest" @@ -922,23 +930,23 @@ "Nightweb": [ { "name": "/Items/Weapons/Melee/Special/Dreamcatcher/Weapon_Dreamcatcher", - "notes": "Nightweb - Nightweaver Stone Doll" + "notes": "Awarded by offering the Nightweaver Stone Doll item found in the Tormented Asylum location on Losomn to the Nightweaver's Web event found in the Tormented Asylum location on Losomn. This can be done in any mode that has rolled both locations." }, { "name": "/Items/Armor/Base/RelicTesting/TormentedHeart/Relic_Consumable_TormentedHeart", - "notes": "Nightweb - Override Pin (Nerud)" + "notes": "Awarded by offering the Overide Pin item found in the Timeless Horizon location on N'Erud to the Nightweaver's Web event found in the Tormented Asylum location on Losomn. This must be done on a campaign that has rolled both locations." }, { "name": "/Items/Trinkets/Rings/RingOfRetribution/Ring_RingOfRetribution", - "notes": "Nightweb - Charnel House Anklet" + "notes": "Awarded by offering the Dria's Anklet item found in the Harvester's Reach location on Losomn to the Nightweaver's Web event found in the Tormented Asylum location on Losomn. This can be done in any mode that has rolled both locations." }, { "name": "/Items/Trinkets/Amulets/NightweaversGrudge/Amulet_NightweaversGrudge", - "notes": "Nightweb - Kolkets Razor (Yaesha)" + "notes": "Awarded by offering the Kolkets Razor item found in The Lament location on Yaesha to the Nightweaver's Web event found in the Tormented Asylum location on Losomn. This must be done on a campaign that has rolled both locations." }, { "name": "/Items/Weapons/HandGuns/Special/RunePistol/Weapon_RunePistol", - "notes": "Nightweb - Ravenous Medallion" + "notes": "Awarded by offering the Ravenous Medallion item found in the Great Hall location on Losomn to the Nightweaver's Web event found in the Tormented Asylum location on Losomn. This can be done in any mode that has rolled both locations." } ], "AllFatherStory": [ @@ -1106,7 +1114,8 @@ "name": "/Items/Trinkets/Amulets/InsulationDriver/Amulet_InsulationDriver" }, { - "name": "/Items/Trinkets/Rings/GeneratingBand/Ring_GeneratingBand" + "name": "/Items/Trinkets/Rings/GeneratingBand/Ring_GeneratingBand", + "notes": "Found in The Hatchery, Void Vessel Facility, Vault of the Formless, or The Putrid Domain locations on N'Erud during the Flooded Room event. Once the event starts, you will have one chance to collect the items in the room before it fills with water." }, { "name": "/Items/Trinkets/Rings/SubterfugeLink/Ring_SubterfugeLink" @@ -1247,7 +1256,8 @@ "name": "/Items/Weapons/Melee/Standard/Hammer/AtomSmasher/Weapon_AtomSmasher" }, { - "name": "/Items/Trinkets/Amulets/Hyperconductor/Amulet_Hyperconductor" + "name": "/Items/Trinkets/Amulets/Hyperconductor/Amulet_Hyperconductor", + "notes": "Found in the Terminus Station location on N'Erud, hidden in a crawlspace to the left of a ladder, in the Train event." }, { "name": "/Items/Traits/Core/Footwork/Trait_Footwork" @@ -1440,7 +1450,7 @@ "Ward13": [ { "name": "/Items/Trinkets/Rings/TarnishedRing/Ring_TarnishedRing", - "notes": "listen to Earl's rabbit story" + "notes": "Awarded from speaking with Earl at Ward 13 and listening to his rabbit story. He can either be found sleeping in bed, or hanging on the walk way above the merchant Whispers. He will not speak to you while he sleeps, and while away, he may be resistant at first to telling you his story." }, { "name": "/Items/Materials/Engrams/Item_HiddenContainer_Material_Engram_Medic", @@ -1482,25 +1492,25 @@ "Mudtooth": [ { "name": "/Items/Materials/Engrams/Item_HiddenContainer_Material_Engram_Gunslinger", - "notes": "mudtooth chat full reward" + "notes": "Crafted by Wallace at Ward 13. Requires the Worn Cylinder item, purchased from Mudtooth at Ward 13. Available for purchase after exhausting his second set of stories." }, { "name": "/Items/Trinkets/Amulets/GunslingersCharm/Amulet_GunslingersCharm", - "notes": "mudtooth chat full reward" + "notes": "Awarded from speaking with Mudtooth at Ward 13, and exhausting his second set of stories, in the campaign mode. The second set of stories is available to the player after completing their second biome in the campaign." }, { "name": "/Items/Trinkets/Rings/GunslingersRing/Ring_GunslingersRing", - "notes": "mudtooth chat half reward" + "notes": "Awarded from speaking with Mudtooth at Ward 13, and exhausting his first set of stories, in the campaign mode." }, { "name": "/Items/Materials/Engrams/Item_HiddenContainer_Material_Engram_Handler", - "notes": "buy Old Whistle from Mudtooth" + "notes": "Crafted by Wallace at Ward 13. Requires the Old Whistle item, purchased from Mudtooth at Ward 13." } ], "Brabus": [ { "name": "/Items/Materials/Engrams/Item_HiddenContainer_Material_Engram_Hunter", - "notes": "buy Rusty Medal from Brabus" + "notes": "Crafted by Wallace at Ward 13. Requires the Rusty Medal item, purchased from Brabus at Ward 13." }, { "name": "/Items/Weapons/Handguns/Standard/HuntingPistol/Weapon_HuntingPistol" @@ -1548,7 +1558,7 @@ "Reggie": [ { "name": "/Items/Materials/Engrams/Item_HiddenContainer_Material_Engram_Challenger", - "notes": "buy Old Metal Tool from Reggie" + "notes": "Crafted by Wallace at Ward 13. Requires the Old Metal Tool item, purchased from Reggie at Ward 13." }, { "name": "/Items/Trinkets/Rings/01_Graveyard/RingOfTheAdmiral/Ring_RingOfTheAdmiral" @@ -1564,110 +1574,110 @@ }, { "name": "/Items/Trinkets/Amulets/ButchersFetish/Amulet_ButchersFetish", - "notes": "Beat the game" + "notes": "Purchased from Reggie at Ward 13 after completing 5 biomes." }, { "name": "/Items/Trinkets/Amulets/LetosAmulet/Amulet_LetosAmulet", - "notes": "flop 100 times" + "notes": "Purchased from Reggie at Ward 13 after performing a failed roll 100 times, while wearing the Leto Mark II armor set." }, { "name": "/Items/Trinkets/Rings/BlackCatBand/Ring_BlackCatBand", - "notes": "die 15 times" + "notes": "Purchased from Reggie at Ward 13 after dying 15 times." }, { "name": "/Items/Trinkets/Rings/BandOfAccord/Ring_BandOfAccord", - "notes": "do High Five emote in co-op", + "notes": "Purchased from Reggie at Ward 13 after performing the High Five emote in co-op.", "coop": true }, { "name": "/Items/Trinkets/Amulets/OnyxPendulum/Amulet_OnyxPendulum", - "notes": "Complete the campaign on Nightmare difficulty" + "notes": "Purchased from Reggie at Ward 13 after completing the campaign on Nightmare difficulty." }, { "name": "/Items/Trinkets/Amulets/NightmareSpiral/Amulet_NightmareSpiral", - "notes": "Defeat all bosses once" + "notes": "Purchased from Reggie at Ward 13 after defeating all bosses at least once." }, { "name": "/Items/Trinkets/Rings/BrightSteelRing/Ring_BrightSteelRing", - "notes": "Complete at least 15 biomes" + "notes": "Purchased from Reggie at Ward 13 after completing 15 biomes on any difficulty." } ], "Cass": [ { "name": "/Items/Trinkets/Rings/AmberMoonstone/Ring_AmberMoonstone", - "notes": "cass 75%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Rings/BraidedThorns/Ring_BraidedThorns", - "notes": "cass 65%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Rings/AkariWarBand/Ring_AkariWarBand", - "notes": "cass 65%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Rings/CompulsionLoop/Ring_CompulsionLoop", - "notes": "cass 65%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Rings/RockOfAnguish/Ring_RockOfAnguish", - "notes": "cass 65%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Rings/DeceiversBand/Ring_DeceiversBand", - "notes": "cass 65%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Rings/BlessedRing/Ring_BlessedRing", - "notes": "cass 65%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Rings/RingOfFlawedBeauty/Ring_RingOfFlawedBeauty", - "notes": "cass 65%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Rings/DeadKingsMemento/Ring_DeadKingsMemento", - "notes": "cass 65%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Rings/MechanicsCog/Ring_MechanicsCog", - "notes": "cass 65%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Armor/Base/RelicTesting/EnlargedHeart/Relic_Consumable_EnlargedHeart", - "notes": "Get to Root Earth" + "notes": "Purchased from Cass at Ward 13 after unlocking the Root Earth location in the campaign." }, { "name": "/Items/Trinkets/Amulets/BrokenPocketWatch/Amulet_BrokenPocketWatch", - "notes": "cass 35%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Amulets/AbrasiveWhetstone/Amulet_AbrasiveWhetstone", - "notes": "cass 35%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Amulets/DecayedMargin/Amulet_DecayedMargin", - "notes": "cass 35%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Amulets/TwistedIdol/Amulet_TwistedIdol", - "notes": "cass 35%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Rings/BurdenOfTheGambler/Ring_BurdenOfTheGambler", - "notes": "cass 35%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Rings/BurdenOfTheAudacious/Ring_BurdenOfTheAudacious", - "notes": "cass 35%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Trinkets/Rings/BurdenOfTheDestroyer/Ring_BurdenOfTheDestroyer", - "notes": "cass 35%" + "notes": "Purchased from Cass at Ward 13. Merchant has a random chance to have this item in stock." }, { "name": "/Items/Armor/Base/RelicTesting/DivertingHeart/Relic_Consumable_DivertingHeart", - "notes": "Defeat 30 world bosses" + "notes": "Purchased from Cass at Ward 13 after defeating 30 world bosses on any difficulty." } ], "Whispers": [ @@ -1858,25 +1868,30 @@ "name": "/Items/Traits/Archetype/Amplitude/Trait_Amplitude" }, { - "name": "/Items/Traits/Archetype/FlashCaster/Trait_FlashCaster" + "name": "/Items/Traits/Archetype/FlashCaster/Trait_FlashCaster", + "notes": "Unlocked automatically after leveling up the Archon archetype once." }, { "name": "/Items/Traits/Archetype/Fortify/Trait_Fortify" }, { - "name": "/Items/Traits/Archetype/Kinship/Trait_Kinship" + "name": "/Items/Traits/Archetype/Kinship/Trait_Kinship", + "notes": "Unlocked automatically after leveling up the Handler archetype once." }, { - "name": "/Items/Traits/Archetype/Longshot/Trait_Longshot" + "name": "/Items/Traits/Archetype/Longshot/Trait_Longshot", + "notes": "Unlocked automatically after leveling up the Hunter archetype once." }, { - "name": "/Items/Traits/Archetype/Potency/Trait_Potency" + "name": "/Items/Traits/Archetype/Potency/Trait_Potency", + "notes": "Unlocked automatically after leveling up the Alchemist archetype once." }, { "name": "/Items/Traits/Archetype/Regrowth/Trait_Regrowth" }, { - "name": "/Items/Traits/Archetype/StrongBack/Trait_StrongBack" + "name": "/Items/Traits/Archetype/StrongBack/Trait_StrongBack", + "notes": "Unlocked automatically after leveling up the Challenger archetype once." }, { "name": "/Items/Traits/Archetype/Swiftness/Trait_Swiftness" @@ -1885,7 +1900,9 @@ "name": "/Items/Traits/Archetype/Triage/Trait_Triage" }, { - "name": "/Items/Traits/Archetype/Untouchable/Trait_Untouchable" + "name": "/Items/Traits/Archetype/Untouchable/Trait_Untouchable", + "notes": "Unlocked automatically after leveling up the Invader archetype once." + }, { "name": "/Items/Traits/Core/Vigor/Trait_Vigor" @@ -1901,61 +1918,63 @@ }, { "name": "/Items/Traits/Core/Revivalist/Trait_Revivalist", + "notes": "Unlocked automatically after reviving a teammate 15 times.", "coop": true }, { - "name": "/Items/Traits/Core/Scholar/Trait_Scholar" + "name": "/Items/Traits/Core/Scholar/Trait_Scholar", + "notes": "Unlocked automatically after defeating the Annihilation Boss on any difficulty." }, { "name": "/Items/Trinkets/Rings/PanMageSigil/Ring_PanMageSigil", - "notes": "Complete Yaesha on HC", + "notes": "Purchased from Reggie at Ward 13 after defeating a Yaesha World Boss on any difficulty in the Hardcore mode.", "mode": "Hardcore" }, { "name": "/Items/Trinkets/Rings/DranScavengerSigil/Ring_DranScavengerSigil", - "notes": "Complete Losomn on HC", + "notes": "Purchased from Reggie at Ward 13 after defeating a Losomn World Boss on any difficulty in the Hardcore mode.", "mode": "Hardcore" }, { "name": "/Items/Trinkets/Rings/DrzyrSniperSigil/Ring_DrzyrSniperSigil", - "notes": "Complete N'Erud on HC", + "notes": "Purchased from Reggie at Ward 13 after defeating a N'Erud World Boss on any difficulty in the Hardcore mode.", "mode": "Hardcore" }, { "name": "/Items/Trinkets/Rings/02_OnHold/ProvisionerRing/Ring_ProvisionerRing", - "notes": "Complete Labyrinth on HC", + "notes": "Purchased from Reggie at Ward 13 after defeating the Labyrinth Sentinel on any difficulty in the Hardcore mode.", "mode": "Hardcore" }, { "name": "/Items/Trinkets/Amulets/DaredevilsCharm/Amulet_DaredevilsCharm", - "notes": "Complete the game on HC", + "notes": "Purchased from Reggie at Ward 13 after completing the campaign on any difficulty in the Hardcore mode.", "mode": "Hardcore" }, { "name": "/Items/Weapons/Longguns/Special/Sporebloom/Weapon_Sporebloom", - "notes": "Complete the game on Veteran" + "notes": "Purchased from Brabus at Ward 13 after completing the campaign on Veteran difficulty." }, { "name": "/Items/Weapons/Longguns/Special/Starkiller/Weapon_Starkiller", - "notes": "Complete the game on HC", + "notes": "Purchased from Brabus at Ward 13 after completing the campaign on any difficulty in the Hardcore mode.", "mode": "Hardcore" }, { "name": "/Items/Weapons/Longguns/Special/Savior/Weapon_Savior", - "notes": "Complete the game on Veteran HC", + "notes": "Purchased from Brabus at Ward 13 after completing the campaign on Veteran difficulty in the Hardcore mode.", "mode": "Hardcore" }, { "name": "/Items/Weapons/Melee/Special/HerosSword/Weapon_HerosSword", - "notes": "Complete the game" + "notes": "Purchased from Brabus at Ward 13 after completing the campaign on Nightmare difficulty." }, { "name": "/Items/Weapons/Melee/Special/Smolder/Weapon_Smolder", - "notes": "Complete the game" + "notes": "Purchased from Brabus at Ward 13 after completing the campaign on Veteran difficulty." }, { "name": "/Items/Weapons/Melee/Special/WorldsEdge/Weapon_WorldsEdge", - "notes": "Complete the game on Apocalypse" + "notes": "Purchased from Brabus at Ward 13 after completing the campaign on Apocalypse difficulty." } ] } From 861d0a65ed52479ea6ca48ab78052686f6166c21 Mon Sep 17 00:00:00 2001 From: ghostnup Date: Thu, 17 Aug 2023 07:01:29 +0800 Subject: [PATCH 4/7] locales: Add codename of notes --- RemnantSaveGuardian/LocalizationProvider.cs | 13 +++++++++++++ .../Views/Pages/WorldAnalyzerPage.xaml.cs | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/RemnantSaveGuardian/LocalizationProvider.cs b/RemnantSaveGuardian/LocalizationProvider.cs index 6016a20..70a57e3 100644 --- a/RemnantSaveGuardian/LocalizationProvider.cs +++ b/RemnantSaveGuardian/LocalizationProvider.cs @@ -77,6 +77,19 @@ public static string GameT(string key) { return T(key, new LocalizationOptions { { "namespace", "GameStrings" } }); } + public static bool Has(string key, LocalizationOptions options) + { + var val = GetLocalizedValue(key, options); + if (val == null || val == "") + { + return false; + } + return true; + } + public static bool GameTHas(string key) + { + return Has(key, new LocalizationOptions { { "namespace", "GameStrings" } }); + } } public class LocalizationOptions : Dictionary diff --git a/RemnantSaveGuardian/Views/Pages/WorldAnalyzerPage.xaml.cs b/RemnantSaveGuardian/Views/Pages/WorldAnalyzerPage.xaml.cs index 0a50fec..1644bea 100644 --- a/RemnantSaveGuardian/Views/Pages/WorldAnalyzerPage.xaml.cs +++ b/RemnantSaveGuardian/Views/Pages/WorldAnalyzerPage.xaml.cs @@ -256,7 +256,7 @@ private void CharacterControl_SelectionChanged(object sender, SelectionChangedEv item.Expanded += GameType_CollapsedExpanded; itemNode[(int)rItem.ItemMode].Add(item) ; } - itemChild[idx].Add(new TreeListClass() { Name = rItem.Name, Notes = $"{Loc.GameT(rItem.ItemNotes)}", Tag = rItem }); + itemChild[idx].Add(new TreeListClass() { Name = rItem.Name, Notes = Loc.GameTHas($"{rItem.RawName}_Notes") ? Loc.GameT($"{rItem.RawName}_Notes") : rItem.ItemNotes, Tag = rItem }); } treeMissingItems.ItemsSource = null; From b27b8824b2e2b4b080e3f920922742396c3e3e13 Mon Sep 17 00:00:00 2001 From: ghostnup Date: Thu, 17 Aug 2023 07:52:20 +0800 Subject: [PATCH 5/7] locales: update zh-CN to use the codename of notes --- .../locales/GameStrings.zh-CN.resx | 586 ++++++++++-------- 1 file changed, 329 insertions(+), 257 deletions(-) diff --git a/RemnantSaveGuardian/locales/GameStrings.zh-CN.resx b/RemnantSaveGuardian/locales/GameStrings.zh-CN.resx index 89ba6ee..d1ca797 100644 --- a/RemnantSaveGuardian/locales/GameStrings.zh-CN.resx +++ b/RemnantSaveGuardian/locales/GameStrings.zh-CN.resx @@ -162,15 +162,24 @@ 腐蚀磨石 + + {Cass35_Notes} + 圣十字辉光 破损怀表 + + {Cass35_Notes} + 屠夫灵偶 + + 完成游戏 + 增效锁链 @@ -183,12 +192,18 @@ 勇者神符 + + 在硬核模式下完成游戏 + 死亡之拥 腐朽边际 + + {Cass35_Notes} + 引爆触发器 @@ -201,6 +216,9 @@ 人形吊坠 + + 在木盒子里面,任务物品打开木盒子互动 + 扩臭器 @@ -228,6 +246,9 @@ 枪手神符 + + 完成与泥牙全部聊天奖励 + 圣蛋 @@ -246,6 +267,9 @@ 小丑的铃铛 + + 在小丑表演时鼓掌 + 动能护盾交换器 @@ -261,12 +285,18 @@ 莱托的项链 + + 超重状态下飞扑100次后在老雷那里购买 + 主母的徽记 领航员吊坠 + + 佩戴生锈的领航员吊坠被达拉裟吃掉 + 颈骨项链 @@ -276,18 +306,42 @@ 至境项链 + + 噩梦螺旋 + + + 打败所有的Boss一次后在老雷那里购买 + 织夜者的仇怨 + + 织夜者的网 - 科尔凯特的剃刀 + 尼姆埃缎带 + + 把银缎带和金缎带给尼姆埃 + 独眼小丑像 + + 小丑卡牌门 - 面具 + 独一真皇魔符 + + 把翡凌魔符和翡麟魔符给尼姆埃 + + + 玛瑙钟摆 + + + 在噩梦难度下完成战役后在老雷那里购买 + 远程探头 @@ -309,12 +363,18 @@ 刹邸绽放水晶 + + 在喜乐宫里小丑坐的骨堆上 + 电击设备 银缎带 + + 灵魂之锚 + 魂光项链 @@ -330,9 +390,18 @@ 扭曲神像 + + {Cass35_Notes} + 复仇神像 + + 虚空神像 + + + 在泽厄尔复制品处用闪耀精华回声制作 + 无重之重 @@ -348,12 +417,18 @@ 学者套装 + + 迷宫套装 + 执政官套装 身体 + + {Armor_Head_Leto2_Notes} + 斗士套装 @@ -369,6 +444,9 @@ 手部 + + {Armor_Head_Leto2_Notes} + 正午套装 @@ -378,6 +456,15 @@ 头部 + + 货船传送门 + + + 在科尔凯特上锁房间头顶的船上 + + + 用近战武器刺客匕首给红王子最后一击 + 夜行者套装 @@ -387,6 +474,9 @@ 腿部 + + {Armor_Head_Leto2_Notes} + 莱托2型套装 @@ -438,9 +528,6 @@ 精神病院 - - 完成游戏 - 贝恩十字路口 @@ -495,34 +582,16 @@ 屠夫区 - - 从诺拉那里购买医务兵饰针 - - - 从老雷那里购买旧金属工具 - - - 从泥牙那里购买古老哨子 - - - 从布拉巴斯那里购买锈蚀奖章 - - - 货船 - - - 货船传送门 - 卡莎 - + 卡莎35%几率刷新 - + 卡莎65%几率刷新 - + 卡莎75%几率刷新 @@ -540,45 +609,9 @@ 城市02 - - 在小丑表演时鼓掌 - 钟楼 - - 完成至少15个世界故事后在老雷那里购买 - - - 在硬核模式下完成迷宫 - - - 在硬核模式下完成洛斯曼 - - - 在硬核模式下完成涅鲁德 - - - 在噩梦难度下完成战役后在老雷那里购买 - - - 完成游戏 - - - 在末日难度下完成游戏 - - - 在硬核模式下完成游戏 - - - 在老手难度下完成游戏 - - - 在硬核老手难度下完成游戏 - - - 在硬核模式下完成耶莎 - 腐败港湾 @@ -606,30 +639,12 @@ 黑暗之渠 - - 打败30个世界Boss后在卡沙那里购买 - - - 打败所有的Boss一次后在老雷那里购买 - - - 死亡15次后在老雷那里购买 - - - 联机中与队友完成击掌后在老雷那里购买 - - - 不插入超载钥匙 - 沉睡的涅鲁德设施 不燃者格温迪尔 - - 对熟睡中的女猎人使用捕梦者 - 德兰先知 @@ -639,8 +654,8 @@ 泽厄尔复制品 - - 吃死亡之果3次 + + 叨沃 电梯井 @@ -711,9 +726,6 @@ 根蔓中枢 - - 超重状态下飞扑100次后在老雷那里购买 - 废弃区 @@ -726,39 +738,9 @@ 突变因子 - - 被达拉裟吃掉 - - - 佩戴生锈的领航员吊坠被达拉裟吃掉 - - - 在涅鲁德沉睡设施中被手动净化程序杀死 - - - 到达根蔓地球后在卡沙那里购买 - 鎏金大厅 - - 把在议会厅镜子世界获得的刺客匕首给尼姆埃 - - - 把德瑞雅的脚链给瑞文 - - - 把翡凌魔符和翡麟魔符给尼姆埃 - - - 把闪耀精华回声给保管人 - - - 把银缎带和金缎带给尼姆埃 - - - 把圣物折磨之心给尼姆埃 - 黄金殿堂 @@ -795,21 +777,18 @@ 猎人 - - 皇家花园 - 我是传奇 + + 皇家花园 + 愤怒灵偶 随机事件 - - 在木盒子里面,任务物品打开木盒子互动 - 入侵者 @@ -837,45 +816,48 @@ 挑战者 + + 从老雷那里购买旧金属工具 + 工程师 枪手 + + {Amulet_GunslingersCharm_Notes} + 驯兽师 + + 从泥牙那里购买古老哨子 + 猎人 + + 从布拉巴斯那里购买锈蚀奖章 + 入侵者 医务兵 + + 从诺拉那里购买医务兵饰针 + 召唤师 - - 小丑卡牌门 - 双角恶魔 - - - 小丑卡牌门 - 面具 - 丛林 卡尤拉的休憩 - - 击杀议会成员 - - - 用近战武器刺客匕首给红王子最后一击 - 柯亚拉库里 @@ -897,9 +879,6 @@ 萎缩 - - 听睡觉哥讲完兔子的故事 - 哭泣天使 @@ -945,9 +924,18 @@ 强盗 + + 电池 + 子弹织造者 + + 致命的平静 + + + 德维士 + 拆解 @@ -957,12 +945,24 @@ 失效保护 + + 反馈 + + + 鬼魅甲壳 + + + 调谐者 + 轻盈 不幸 + + 小丑卡牌门 - 双角恶魔 + 动量 @@ -975,6 +975,15 @@ 重振精神 + + 怨恨 + + + 破盾者 + + + 屠杀者 + 坚定 @@ -1002,6 +1011,9 @@ 复仇女神 + + 武器之王 + 小Boss @@ -1032,6 +1044,9 @@ 使魔 + + 对熟睡中的女猎人使用捕梦者 + 千里眼 @@ -1050,6 +1065,9 @@ 喷溢 + + 乘坐泽厄尔复制品右边的电梯,然后沿着桥右侧的小路走,你会看到制作材料在机器上 + 棱镜驱动器 @@ -1101,18 +1119,9 @@ 泥牙 - - 完成与泥牙全部聊天奖励 - - - 完成与泥牙一半聊天奖励 - 突变因子 - - 在喜乐宫的巨型下水道入口附近 - 沙哈拉:涅鲁德的幽灵守护生物 @@ -1122,21 +1131,6 @@ 织夜者的网 - - 织夜者的网 - 德瑞雅的脚链 - - - 织夜者的网 - 科尔凯特的剃刀 - - - 织夜者的网 - 织夜者石像 - - - 织夜者的网 - Override Pin (涅鲁德) - - - 织夜者的网 - 贪婪勋章 - 尼姆埃 @@ -1149,12 +1143,6 @@ - - 在科尔凯特上锁房间头顶的船上 - - - 在喜乐宫里小丑坐的骨堆上 - 先知的庇护所 @@ -1218,10 +1206,10 @@ 劫掠者 - + 劫掠者的巢穴 - + 劫掠者的巢穴 @@ -1230,6 +1218,9 @@ 盛宴 + + 红鹿雕像 + 红王子 @@ -1248,12 +1239,24 @@ 腐朽之心 + + 转变之心 + + + 打败30个世界Boss后在卡沙那里购买 + 膨大心脏 + + 到达根蔓地球后在卡沙那里购买 + 萎靡之心 + + 吃死亡之果3次 + 跳动之心 @@ -1269,6 +1272,9 @@ 成熟之心 + + 塞恩树完全长大,结出神圣塞恩果3次后,再次成熟获得 + 符文之心 @@ -1281,15 +1287,27 @@ 汲取之心 + + 把闪耀精华回声给保管人 + 折磨之心 + + 织夜者的网 - Override Pin (涅鲁德) + 平稳之心 + + 把圣物折磨之心给尼姆埃 + 清白之心 + + 在宫殿庭院里同时佩戴独一真皇魔符(项链)、翡凌魔符(戒指)、翡麟魔符(戒指) + 虚空之心 @@ -1308,6 +1326,9 @@ 阿卡里战争指环 + + {Cass65_Notes} + 炼金术之石 @@ -1317,6 +1338,9 @@ 琥珀月光石 + + {Cass75_Notes} + 阿纳斯塔西娅的灵感 @@ -1326,15 +1350,27 @@ 刺客封印 + + 击杀议会成员 + 团队指环 + + 协调指环 + + + 联机中与队友完成击掌后在老雷那里购买 + 平分戒指 黑猫指环 + + 死亡15次后在老雷那里购买 + 遮光戒指 @@ -1347,6 +1383,9 @@ 祝福戒指 + + {Cass65_Notes} + 鲜血珠宝 @@ -1362,12 +1401,27 @@ 编织棘刺 + + {Cass65_Notes} + + + 亮钢戒指 + + + 完成至少15个世界故事后在老雷那里购买 + 冒险者之负担 + + {Cass35_Notes} + 破坏者之负担 + + {Cass35_Notes} + 神职者之负担 @@ -1377,6 +1431,9 @@ 赌徒之负担 + + {Cass35_Notes} + 水手之负担 @@ -1395,12 +1452,18 @@ 编目员珠宝 + + 在喜乐宫的巨型下水道入口附近 + 迅捷之石 强制之环 + + {Cass65_Notes} + 保存封印 @@ -1410,9 +1473,15 @@ 先王的纪念品 + + {Cass65_Notes} + 欺骗者指环 + + {Cass65_Notes} + 深袋戒指 @@ -1434,12 +1503,18 @@ 德兰拾荒者戒指 + + 在硬核模式下完成洛斯曼 + 恐惧之泉 泽厄尔狙击手魔符 + + 在硬核模式下完成涅鲁德 + 将熄余烬 @@ -1509,6 +1584,9 @@ 枪手戒指 + + 完成与泥牙一半聊天奖励 + 硬核金属指环 @@ -1542,6 +1620,9 @@ 机械师的齿轮 + + {Cass65_Notes} + 金属驱动 @@ -1560,6 +1641,9 @@ 阿哈内水晶 + + 在硬核模式下完成耶莎 + 对焦戒指 @@ -1575,6 +1659,9 @@ 供应者戒指 + + 在硬核模式下完成迷宫 + 收割之石 @@ -1599,9 +1686,15 @@ 缺陷美戒指 + + {Cass65_Notes} + 优雅戒指 + + 把德瑞雅的脚链给瑞文 + 预兆戒指 @@ -1611,6 +1704,9 @@ 报应戒指 + + 织夜者的网 - 德瑞雅的脚链 + 破损的上将戒指 @@ -1623,12 +1719,18 @@ 痛苦之岩 + + {Cass65_Notes} + 锈蚀传家宝 贤者之石 + + 蓝宝梦石 + 女皇封印 @@ -1686,6 +1788,9 @@ 污秽戒指 + + 听睡觉哥讲完兔子的故事 + 库埃拉之泪 @@ -1794,9 +1899,6 @@ 召唤师 - - 乘坐泽厄尔复制品右边的电梯,然后沿着桥右侧的小路走,你会看到制作材料在机器上 - 达拉裟的庇护所 @@ -1806,9 +1908,6 @@ 终点站 - - 塞恩树完全长大,结出神圣塞恩果3次后,再次成熟获得 - 烟囱 @@ -2040,6 +2139,9 @@ 回响 + + 在涅鲁德沉睡设施中被手动净化程序杀死 + 复活师 @@ -2085,17 +2187,11 @@ 静滞 - - 巨型机械爪 - 地下城 - - 对熟睡中的尼姆埃使用捕梦者 - - - 在泽厄尔复制品处用闪耀精华回声制作 + + 巨型机械爪 无形者的地下室 @@ -2103,9 +2199,6 @@ 虚空躯壳建筑 - - 打掉堵塞排水口的怪物,等待90分钟等到大水灌满 - 莱米尔 @@ -2121,6 +2214,9 @@ 刺客匕首 + + 把在议会厅镜子世界获得的刺客匕首给尼姆埃 + 黑噬 AR-47 @@ -2142,9 +2238,15 @@ 皇家猎弓 + + 双管霰弹枪 + 新月 + + 对熟睡中的尼姆埃使用捕梦者 + @@ -2157,6 +2259,9 @@ 捕梦者 + + 织夜者的网 - 织夜者石像 + 森之缘 @@ -2184,6 +2289,9 @@ 英雄长剑 + + 完成游戏 + 弹无虚发 @@ -2217,6 +2325,9 @@ 巅峰 + + 打掉堵塞排水口的怪物,等待90分钟等到大水灌满 + 星云 @@ -2229,6 +2340,9 @@ 华丽利刃 + + 精巧锤矛 + 等离子切割者 @@ -2250,6 +2364,9 @@ 符文手枪 + + 织夜者的网 - 贪婪勋章 + 破裂炮 @@ -2259,6 +2376,9 @@ 拯救者 + + 在硬核老手难度下完成游戏 + 服役手枪 @@ -2271,21 +2391,36 @@ MP60-R + + 货船 + 阴燃 + + 完成游戏 + 哀痛 幽灵利刃 + + 不插入超载钥匙 + 孢子喷射 + + 在老手难度下完成游戏 + 弑星者 + + 在硬核模式下完成游戏 + 星辰射击 @@ -2295,9 +2430,15 @@ 气巨人 + + 被达拉裟吃掉 + 芝加哥打字机 + + {Armor_Head_Leto2_Notes} + 扭曲劲弩 @@ -2307,12 +2448,15 @@ 世界之刃 - - 在宫殿庭院里同时佩戴独一真皇魔符(项链)、翡凌魔符(戒指)、翡麟魔符(戒指) + + 在末日难度下完成游戏 低语 + + 红寡妇王庭 + 风笛塔 @@ -2340,76 +2484,4 @@ 根蔓地球 - - 双管霰弹枪 - - - 协调指环 - - - 迷宫套装 - - - 叨沃 - - - 噩梦螺旋 - - - 玛瑙钟摆 - - - 灵魂之锚 - - - 虚空神像 - - - 电池 - - - 致命的平静 - - - 德维士 - - - 反馈 - - - 鬼魅甲壳 - - - 调谐者 - - - 怨恨 - - - 破盾者 - - - 屠杀者 - - - 武器之王 - - - 红鹿雕像 - - - 转变之心 - - - 亮钢戒指 - - - 蓝宝梦石 - - - 精巧锤矛 - - - 红寡妇王庭 - \ No newline at end of file From 16a1415f75d57b50fdc5b916384b4726fea1a37f Mon Sep 17 00:00:00 2001 From: crackedmind Date: Thu, 17 Aug 2023 16:18:43 +0500 Subject: [PATCH 6/7] Add posibility to switch language on settings --- RemnantSaveGuardian/App.config | 3 ++ RemnantSaveGuardian/App.xaml.cs | 26 ++++++++++++-- .../Properties/Settings.Designer.cs | 14 +++++++- .../Properties/Settings.settings | 3 ++ .../Views/Pages/BackupsPage.xaml.cs | 8 ++++- .../Views/Pages/SettingsPage.xaml | 8 ++++- .../Views/Pages/SettingsPage.xaml.cs | 36 ++++++++++++++++++- .../Views/Pages/WorldAnalyzerPage.xaml.cs | 9 +++++ .../locales/Strings.Designer.cs | 9 +++++ RemnantSaveGuardian/locales/Strings.resx | 3 ++ 10 files changed, 113 insertions(+), 6 deletions(-) diff --git a/RemnantSaveGuardian/App.config b/RemnantSaveGuardian/App.config index 2632aa2..fef8e07 100644 --- a/RemnantSaveGuardian/App.config +++ b/RemnantSaveGuardian/App.config @@ -115,6 +115,9 @@ 650 + + + \ No newline at end of file diff --git a/RemnantSaveGuardian/App.xaml.cs b/RemnantSaveGuardian/App.xaml.cs index 5ed42cd..482f501 100644 --- a/RemnantSaveGuardian/App.xaml.cs +++ b/RemnantSaveGuardian/App.xaml.cs @@ -2,11 +2,16 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using RemnantSaveGuardian.Models; +using RemnantSaveGuardian.Properties; using RemnantSaveGuardian.Services; +using System; +using System.Collections.Generic; using System.Diagnostics; using System.Globalization; using System.IO; +using System.Linq; using System.Reflection; +using System.Resources; using System.Threading; using System.Windows; using System.Windows.Markup; @@ -81,15 +86,32 @@ public static T GetService() private async void OnStartup(object sender, StartupEventArgs e) { var culture = CultureInfo.CurrentCulture; - //var culture = new CultureInfo("zh-TW"); + var cultures = EnumerateSupportedCultures(); + Current.Properties["langs"] = cultures; + if(Settings.Default.Language != "") + { + culture = cultures.First(e => e.Name == Settings.Default.Language); + } + Thread.CurrentThread.CurrentCulture = culture; WPFLocalizeExtension.Engine.LocalizeDictionary.Instance.Culture = culture; + FrameworkElement.LanguageProperty.OverrideMetadata( typeof(FrameworkElement), - new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); + new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(culture.IetfLanguageTag))); await _host.StartAsync(); } + private CultureInfo[] EnumerateSupportedCultures() + { + CultureInfo[] culture = CultureInfo.GetCultures(CultureTypes.AllCultures); + + string exeLocation = Path.GetDirectoryName(Uri.UnescapeDataString(new UriBuilder(Assembly.GetExecutingAssembly().CodeBase).Path)); + + var c = culture.Where(cultureInfo => Directory.Exists(Path.Combine(exeLocation, cultureInfo.Name)) && cultureInfo.Name != "").ToArray(); + return c; + } + /// /// Occurs when the application is closing. /// diff --git a/RemnantSaveGuardian/Properties/Settings.Designer.cs b/RemnantSaveGuardian/Properties/Settings.Designer.cs index 7111518..efb6f45 100644 --- a/RemnantSaveGuardian/Properties/Settings.Designer.cs +++ b/RemnantSaveGuardian/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace RemnantSaveGuardian.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.6.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.7.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); @@ -454,5 +454,17 @@ public int WindowHeight { this["WindowHeight"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Language { + get { + return ((string)(this["Language"])); + } + set { + this["Language"] = value; + } + } } } diff --git a/RemnantSaveGuardian/Properties/Settings.settings b/RemnantSaveGuardian/Properties/Settings.settings index 5eaa989..422f344 100644 --- a/RemnantSaveGuardian/Properties/Settings.settings +++ b/RemnantSaveGuardian/Properties/Settings.settings @@ -110,5 +110,8 @@ 650 + + + \ No newline at end of file diff --git a/RemnantSaveGuardian/Views/Pages/BackupsPage.xaml.cs b/RemnantSaveGuardian/Views/Pages/BackupsPage.xaml.cs index 37165c1..c287c4c 100644 --- a/RemnantSaveGuardian/Views/Pages/BackupsPage.xaml.cs +++ b/RemnantSaveGuardian/Views/Pages/BackupsPage.xaml.cs @@ -89,7 +89,7 @@ public BackupsPage(ViewModels.BackupsViewModel viewModel) SaveWatcher.SaveUpdated += SaveWatcher_SaveUpdated; btnStartGame.IsEnabled = !IsRemnantRunning(); - + Properties.Settings.Default.PropertyChanged += Default_PropertyChanged; loadBackups(); } catch (Exception ex) { Logger.Error($"Error loading backups page: {ex}"); @@ -771,6 +771,12 @@ private void refreshBackups() dataBackups.ItemsSource = listBackups; dataBackups.Items.SortDescriptions.Add(sorting); } + + private void Default_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if(e.PropertyName == "Language") + dataBackups.Items.Refresh(); + } } public class BackupSaveViewedEventArgs : EventArgs diff --git a/RemnantSaveGuardian/Views/Pages/SettingsPage.xaml b/RemnantSaveGuardian/Views/Pages/SettingsPage.xaml index fe794b4..88b3bc5 100644 --- a/RemnantSaveGuardian/Views/Pages/SettingsPage.xaml +++ b/RemnantSaveGuardian/Views/Pages/SettingsPage.xaml @@ -112,11 +112,17 @@ + + + +