From 4bb0cd6ef6cfb6aa043d6716e5de95c34abd9a3b Mon Sep 17 00:00:00 2001 From: Zebartin <16185081+Zebartin@users.noreply.github.com> Date: Wed, 7 Feb 2024 21:43:20 +0800 Subject: [PATCH] Add: Add i18n auto generation for assignments (#308) --- dev_tools/keyword_extract.py | 15 +- dev_tools/keywords/assignment.py | 123 ++++++++++++++ module/config/argument/argument.yaml | 8 +- module/config/config_updater.py | 21 ++- module/config/i18n/en-US.json | 64 +++---- module/config/i18n/es-ES.json | 104 ++++++------ module/config/i18n/ja-JP.json | 96 +++++------ module/config/i18n/zh-CN.json | 88 +++++----- module/config/i18n/zh-TW.json | 96 +++++------ tasks/assignment/keywords/__init__.py | 1 + tasks/assignment/keywords/classes.py | 5 + tasks/assignment/keywords/entry_detailed.py | 176 ++++++++++++++++++++ 12 files changed, 548 insertions(+), 249 deletions(-) create mode 100644 dev_tools/keywords/assignment.py create mode 100644 tasks/assignment/keywords/entry_detailed.py diff --git a/dev_tools/keyword_extract.py b/dev_tools/keyword_extract.py index b42a0bec1..5b2cc2947 100644 --- a/dev_tools/keyword_extract.py +++ b/dev_tools/keyword_extract.py @@ -307,19 +307,8 @@ class KeywordExtract: self.clear_keywords() def generate_assignments(self): - self.load_keywords(['空间站特派']) - self.write_keywords( - keyword_class='AssignmentEventGroup', - output_file='./tasks/assignment/keywords/event_group.py' - ) - for file_name, class_name, output_file in ( - ('ExpeditionGroup.json', 'AssignmentGroup', './tasks/assignment/keywords/group.py'), - ('ExpeditionData.json', 'AssignmentEntry', './tasks/assignment/keywords/entry.py'), - ('ActivityExpedition.json', 'AssignmentEventEntry', './tasks/assignment/keywords/event_entry.py'), - ): - file = os.path.join(TextMap.DATA_FOLDER, 'ExcelOutput', file_name) - self.load_keywords(deep_get(data, 'Name.Hash') for data in read_file(file).values()) - self.write_keywords(keyword_class=class_name, output_file=output_file) + from dev_tools.keywords.assignment import GenerateAssignment + GenerateAssignment()() def generate_map_planes(self): from dev_tools.keywords.map_world import GenerateMapWorld diff --git a/dev_tools/keywords/assignment.py b/dev_tools/keywords/assignment.py new file mode 100644 index 000000000..30dadcb25 --- /dev/null +++ b/dev_tools/keywords/assignment.py @@ -0,0 +1,123 @@ +from functools import cache +from typing import Iterable + +from dev_tools.keywords.base import UI_LANGUAGES, GenerateKeyword +from module.config.utils import deep_get + + +@cache +def get_assignment_entry_data(): + """ + Returns: + dict: key - assignment text_id + value - text_id of reward items + """ + expedition_namehash_to_id = { + deep_get(expedition, 'Name.Hash'): deep_get(expedition, 'ExpeditionID') + for expedition in GenerateKeyword.read_file('./ExcelOutput/ExpeditionData.json').values() + } + expedition_id_to_reward_id = { + deep_get(expedition, '4.2.ExpeditionID'): deep_get(expedition, '4.2.RewardID') + for expedition in GenerateKeyword.read_file('./ExcelOutput/ExpeditionReward.json').values() + } + reward_id_to_item_ids = { + deep_get(reward, 'RewardID'): [ + v for k, v in reward.items() + if k.startswith('ItemID') + ] + for reward in GenerateKeyword.read_file('./ExcelOutput/RewardData.json').values() + } + item_id_to_namehash = { + deep_get(item, 'ID'): deep_get(item, 'ItemName.Hash') + for item in GenerateKeyword.read_file('./ExcelOutput/ItemConfig.json').values() + } + item_name_remap = { + '旅情见闻': '角色经验材料', + '稀薄以太': '光锥经验材料' + } + ret = dict() + for expedition_namehash, expedition_id in expedition_namehash_to_id.items(): + reward_id = expedition_id_to_reward_id[expedition_id] + item_ids = reward_id_to_item_ids[reward_id] + item_names = [item_id_to_namehash[x] for x in item_ids] + if len(item_names) == 1: + item = GenerateKeyword.find_keyword(item_names[0], lang='cn')[1] + if item in item_name_remap: + item_names = [GenerateKeyword.find_keyword( + item_name_remap[item], lang='cn')[0]] + ret[expedition_namehash] = item_names + return ret + + +class GenerateAssignment(GenerateKeyword): + def generate(self): + GenerateAssignmentGroup()() + GenerateAssignmentEntry()() + GenerateAssignmentEventGroup()() + GenerateAssignmentEventEntry()() + GenerateAssignmentEntryDetailed()() + + +class GenerateAssignmentGroup(GenerateKeyword): + output_file = './tasks/assignment/keywords/group.py' + + def iter_keywords(self) -> Iterable[dict]: + for group in self.read_file('./ExcelOutput/ExpeditionGroup.json').values(): + yield dict(text_id=deep_get(group, 'Name.Hash')) + + +class GenerateAssignmentEntry(GenerateKeyword): + output_file = './tasks/assignment/keywords/entry.py' + + def iter_keywords(self) -> Iterable[dict]: + for k in get_assignment_entry_data().keys(): + yield dict(text_id=k) + + +class GenerateAssignmentEntryDetailed(GenerateKeyword): + output_file = './tasks/assignment/keywords/entry_detailed.py' + + def iter_keywords(self) -> Iterable[dict]: + for assignment_id, reward_ids in get_assignment_entry_data().items(): + yield dict( + text_id=assignment_id, + reward_ids=reward_ids + ) + + def iter_rows(self) -> Iterable[dict]: + for keyword in super().iter_rows(): + reward_ids = keyword.pop('reward_ids') + for lang in UI_LANGUAGES: + assignment_name = keyword[lang] + reward_name = ' & '.join( + self.find_keyword(reward_id, lang=lang)[1] + for reward_id in reward_ids + ) + name_format = '{reward_name} ({assignment_name})' if lang in { + 'en', 'es'} else '{reward_name}({assignment_name})' + keyword[lang] = name_format.format( + reward_name=reward_name, + assignment_name=assignment_name + ) + yield keyword + + +class GenerateAssignmentEventGroup(GenerateKeyword): + output_file = './tasks/assignment/keywords/event_group.py' + + def iter_keywords(self) -> Iterable[dict]: + yield dict(text_id=self.find_keyword('空间站特派', lang='cn')[0]) + + +class GenerateAssignmentEventEntry(GenerateKeyword): + output_file = './tasks/assignment/keywords/event_entry.py' + + def iter_keywords(self) -> Iterable[dict]: + for expedition in self.read_file('./ExcelOutput/ActivityExpedition.json').values(): + yield dict(text_id=deep_get(expedition, 'Name.Hash')) + + +if __name__ == "__main__": + from dev_tools.keywords.base import TextMap + TextMap.DATA_FOLDER = '../StarRailData' + GenerateAssignment()() diff --git a/module/config/argument/argument.yaml b/module/config/argument/argument.yaml index 66b0eff29..871437c39 100644 --- a/module/config/argument/argument.yaml +++ b/module/config/argument/argument.yaml @@ -182,16 +182,16 @@ Assignment: # Options in Name_x will be injected in config updater Name_1: value: Nameless_Land_Nameless_People - option: [ Nameless_Land_Nameless_People, ] + option: [ ] Name_2: value: Akashic_Records - option: [ Nameless_Land_Nameless_People, ] + option: [ ] Name_3: value: The_Invisible_Hand - option: [ Nameless_Land_Nameless_People, ] + option: [ ] Name_4: value: Nine_Billion_Names - option: [ Nameless_Land_Nameless_People, ] + option: [ ] Duration: value: 20 option: [ 4, 8, 12, 20 ] diff --git a/module/config/config_updater.py b/module/config/config_updater.py index 2cad4afb8..4d204d697 100644 --- a/module/config/config_updater.py +++ b/module/config/config_updater.py @@ -115,6 +115,11 @@ class ConfigGenerator: 'option_bold': ['achievable'], 'option_light': ['not_supported'], }) + # Insert assignments + from tasks.assignment.keywords import AssignmentEntry + assignments = [entry.name for entry in AssignmentEntry.instances.values()] + for i in range(4): + option_add(keys=f'Assignment.Name_{i + 1}.option', options=assignments) # Load for path, value in deep_iter(raw, depth=2): @@ -459,6 +464,14 @@ class ConfigGenerator: value = deep_get(new, keys=['AchievableQuest', copy_from, option]) deep_set(new, keys=['AchievableQuest', quest.name, option], value=value) + # Assignments + from tasks.assignment.keywords import AssignmentEntryDetailed + for entry in AssignmentEntryDetailed.instances.values(): + entry: AssignmentEntryDetailed + value = entry.__getattribute__(ingame_lang) + for i in range(4): + deep_set(new, keys=['Assignment', f'Name_{i + 1}', entry.name], value=value) + # Echo of War dungeons = [d for d in DungeonList.instances.values() if d.is_Echo_of_War] for dungeon in dungeons: @@ -604,20 +617,12 @@ class ConfigGenerator: update('./webapp/packages/main/public/deploy.yaml.tpl', tpl) - def insert_assignment(self): - from tasks.assignment.keywords import AssignmentEntry - assignments = [entry.name for entry in AssignmentEntry.instances.values()] - for i in range(4): - deep_set(self.argument, keys=f'Assignment.Name_{i + 1}.option', value=assignments) - deep_set(self.args, keys=f'Assignment.Assignment.Name_{i + 1}.option', value=assignments) - @timer def generate(self): _ = self.args _ = self.menu _ = self.stored # _ = self.event - self.insert_assignment() # self.insert_server() write_file(filepath_args(), self.args) write_file(filepath_args('menu'), self.menu) diff --git a/module/config/i18n/en-US.json b/module/config/i18n/en-US.json index 33b6d024b..363b470d8 100644 --- a/module/config/i18n/en-US.json +++ b/module/config/i18n/en-US.json @@ -773,19 +773,19 @@ "Born_to_Obey": "Ancient Part (Born to Obey)", "Root_Out_the_Turpitude": "Immortal Scionette (Root Out the Turpitude)", "Fire_Lord_Inflames_Blades_of_War": "Artifex's Module (Fire Lord Inflames Blades of War)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", + "A_Startling_Night_Terror": "Dream Collection Component (A Startling Night Terror)", + "Tranquility_of_Vimala_bhumi": "Tatters of Thought (Tranquility of Vimala-bhumi)", "Nameless_Land_Nameless_People": "Character EXP Material (Nameless Land, Nameless People)", "Akashic_Records": "Light Cone EXP Material (Akashic Records)", "The_Invisible_Hand": "Credit (The Invisible Hand)", "Abandoned_and_Insulted": "Phlogiston & Metal (Abandoned and Insulted)", - "Spring_of_Life": "Virtual Particle & Solid Water (Spring of Life)", - "The_Land_of_Gold": "Protein Rice & Basic Ingredients (The Land of Gold)", + "Spring_of_Life": "Solid Water & Virtual Particle (Spring of Life)", + "The_Land_of_Gold": "Basic Ingredients & Protein Rice (The Land of Gold)", "The_Blossom_in_the_Storm": "Gaseous Liquid & Seed (The Blossom in the Storm)", - "Legend_of_the_Puppet_Master": "Jade Abacus Unit & Discarded Ingenium Parts (Legend of the Puppet Master)", - "The_Wages_of_Humanity": "Extract of Medicinal Herbs & Human-Height Auspicious Crops (The Wages of Humanity)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Legend_of_the_Puppet_Master": "Discarded Ingenium Parts & Jade Abacus Unit (Legend of the Puppet Master)", + "The_Wages_of_Humanity": "Human-Height Auspicious Crops & Extract of Medicinal Herbs (The Wages of Humanity)", + "Fragments_of_Illusory_Dreams": "Tranquility & Broken Dreams (Fragments of Illusory Dreams)", + "Scalpel_and_Screwdriver": "Rusty Gear & Old Molar (Scalpel and Screwdriver)" }, "Name_2": { "name": "Assignment 2 Preference", @@ -796,19 +796,19 @@ "Born_to_Obey": "Ancient Part (Born to Obey)", "Root_Out_the_Turpitude": "Immortal Scionette (Root Out the Turpitude)", "Fire_Lord_Inflames_Blades_of_War": "Artifex's Module (Fire Lord Inflames Blades of War)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", + "A_Startling_Night_Terror": "Dream Collection Component (A Startling Night Terror)", + "Tranquility_of_Vimala_bhumi": "Tatters of Thought (Tranquility of Vimala-bhumi)", "Nameless_Land_Nameless_People": "Character EXP Material (Nameless Land, Nameless People)", "Akashic_Records": "Light Cone EXP Material (Akashic Records)", "The_Invisible_Hand": "Credit (The Invisible Hand)", "Abandoned_and_Insulted": "Phlogiston & Metal (Abandoned and Insulted)", - "Spring_of_Life": "Virtual Particle & Solid Water (Spring of Life)", - "The_Land_of_Gold": "Protein Rice & Basic Ingredients (The Land of Gold)", + "Spring_of_Life": "Solid Water & Virtual Particle (Spring of Life)", + "The_Land_of_Gold": "Basic Ingredients & Protein Rice (The Land of Gold)", "The_Blossom_in_the_Storm": "Gaseous Liquid & Seed (The Blossom in the Storm)", - "Legend_of_the_Puppet_Master": "Jade Abacus Unit & Discarded Ingenium Parts (Legend of the Puppet Master)", - "The_Wages_of_Humanity": "Extract of Medicinal Herbs & Human-Height Auspicious Crops (The Wages of Humanity)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Legend_of_the_Puppet_Master": "Discarded Ingenium Parts & Jade Abacus Unit (Legend of the Puppet Master)", + "The_Wages_of_Humanity": "Human-Height Auspicious Crops & Extract of Medicinal Herbs (The Wages of Humanity)", + "Fragments_of_Illusory_Dreams": "Tranquility & Broken Dreams (Fragments of Illusory Dreams)", + "Scalpel_and_Screwdriver": "Rusty Gear & Old Molar (Scalpel and Screwdriver)" }, "Name_3": { "name": "Assignment 3 Preference", @@ -819,19 +819,19 @@ "Born_to_Obey": "Ancient Part (Born to Obey)", "Root_Out_the_Turpitude": "Immortal Scionette (Root Out the Turpitude)", "Fire_Lord_Inflames_Blades_of_War": "Artifex's Module (Fire Lord Inflames Blades of War)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", + "A_Startling_Night_Terror": "Dream Collection Component (A Startling Night Terror)", + "Tranquility_of_Vimala_bhumi": "Tatters of Thought (Tranquility of Vimala-bhumi)", "Nameless_Land_Nameless_People": "Character EXP Material (Nameless Land, Nameless People)", "Akashic_Records": "Light Cone EXP Material (Akashic Records)", "The_Invisible_Hand": "Credit (The Invisible Hand)", "Abandoned_and_Insulted": "Phlogiston & Metal (Abandoned and Insulted)", - "Spring_of_Life": "Virtual Particle & Solid Water (Spring of Life)", - "The_Land_of_Gold": "Protein Rice & Basic Ingredients (The Land of Gold)", + "Spring_of_Life": "Solid Water & Virtual Particle (Spring of Life)", + "The_Land_of_Gold": "Basic Ingredients & Protein Rice (The Land of Gold)", "The_Blossom_in_the_Storm": "Gaseous Liquid & Seed (The Blossom in the Storm)", - "Legend_of_the_Puppet_Master": "Jade Abacus Unit & Discarded Ingenium Parts (Legend of the Puppet Master)", - "The_Wages_of_Humanity": "Extract of Medicinal Herbs & Human-Height Auspicious Crops (The Wages of Humanity)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Legend_of_the_Puppet_Master": "Discarded Ingenium Parts & Jade Abacus Unit (Legend of the Puppet Master)", + "The_Wages_of_Humanity": "Human-Height Auspicious Crops & Extract of Medicinal Herbs (The Wages of Humanity)", + "Fragments_of_Illusory_Dreams": "Tranquility & Broken Dreams (Fragments of Illusory Dreams)", + "Scalpel_and_Screwdriver": "Rusty Gear & Old Molar (Scalpel and Screwdriver)" }, "Name_4": { "name": "Assignment 4 Preference", @@ -842,19 +842,19 @@ "Born_to_Obey": "Ancient Part (Born to Obey)", "Root_Out_the_Turpitude": "Immortal Scionette (Root Out the Turpitude)", "Fire_Lord_Inflames_Blades_of_War": "Artifex's Module (Fire Lord Inflames Blades of War)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", + "A_Startling_Night_Terror": "Dream Collection Component (A Startling Night Terror)", + "Tranquility_of_Vimala_bhumi": "Tatters of Thought (Tranquility of Vimala-bhumi)", "Nameless_Land_Nameless_People": "Character EXP Material (Nameless Land, Nameless People)", "Akashic_Records": "Light Cone EXP Material (Akashic Records)", "The_Invisible_Hand": "Credit (The Invisible Hand)", "Abandoned_and_Insulted": "Phlogiston & Metal (Abandoned and Insulted)", - "Spring_of_Life": "Virtual Particle & Solid Water (Spring of Life)", - "The_Land_of_Gold": "Protein Rice & Basic Ingredients (The Land of Gold)", + "Spring_of_Life": "Solid Water & Virtual Particle (Spring of Life)", + "The_Land_of_Gold": "Basic Ingredients & Protein Rice (The Land of Gold)", "The_Blossom_in_the_Storm": "Gaseous Liquid & Seed (The Blossom in the Storm)", - "Legend_of_the_Puppet_Master": "Jade Abacus Unit & Discarded Ingenium Parts (Legend of the Puppet Master)", - "The_Wages_of_Humanity": "Extract of Medicinal Herbs & Human-Height Auspicious Crops (The Wages of Humanity)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Legend_of_the_Puppet_Master": "Discarded Ingenium Parts & Jade Abacus Unit (Legend of the Puppet Master)", + "The_Wages_of_Humanity": "Human-Height Auspicious Crops & Extract of Medicinal Herbs (The Wages of Humanity)", + "Fragments_of_Illusory_Dreams": "Tranquility & Broken Dreams (Fragments of Illusory Dreams)", + "Scalpel_and_Screwdriver": "Rusty Gear & Old Molar (Scalpel and Screwdriver)" }, "Duration": { "name": "Dispatch Duration", diff --git a/module/config/i18n/es-ES.json b/module/config/i18n/es-ES.json index 7cf46d0fd..565a26617 100644 --- a/module/config/i18n/es-ES.json +++ b/module/config/i18n/es-ES.json @@ -768,93 +768,93 @@ "name": "Preferencia de Encargo 1", "help": "", "Nine_Billion_Names": "Núcleo apagado (Nueve mil millones de nombres)", - "Destruction_of_the_Destroyer": "Instinto del ladrón (La destrucci´pon del destructor)", + "Destruction_of_the_Destroyer": "Instinto del ladrón (La destrucción del destructor)", "Winter_Soldiers": "Pin del guardia (Los guerreros del invierno)", "Born_to_Obey": "Componente antiguo (Creados para obedecer)", "Root_Out_the_Turpitude": "Brote verde inmortal (La raíz del mal)", "Fire_Lord_Inflames_Blades_of_War": "Componente artificial mecánico (Prendan los fuelles, fundan las armas)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", + "A_Startling_Night_Terror": "Componente del acumulador de sueños (Pesadilla aterradora)", + "Tranquility_of_Vimala_bhumi": "Jirones de pensamientos (Limpieza y purificación)", "Nameless_Land_Nameless_People": "Material de EXP de personaje (Lugar anónimo, personas anónimas)", - "Akashic_Records": "Material de EXP de cono de luz (Los Registros de Akasha)", - "The_Invisible_Hand": "Créditos (La mano invisible)", - "Abandoned_and_Insulted": "Flogisto y Metal (Abandonado e insultado)", - "Spring_of_Life": "Partícula virtual y Agua sólida (La fuente de la vida)", - "The_Land_of_Gold": "Arroz protéico e Ingredientes básicos (Tierra de oportunidades)", - "The_Blossom_in_the_Storm": "Líquido gaseoso y Semilla (Flores en la tormenta)", - "Legend_of_the_Puppet_Master": "Unidad de ábaco de jade y Componentes mecánicos abandonados (La leyenda del titiritero)", - "The_Wages_of_Humanity": "Extracto de hierbas medicinales y Cosecha tan alta como una persona (La paga de la humanidad)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Akashic_Records": "Material de EXP de conos de luz (Los Registros de Akasha)", + "The_Invisible_Hand": "Crédito (La mano invisible)", + "Abandoned_and_Insulted": "Flogisto & Metal (Abandonado e insultado)", + "Spring_of_Life": "Agua sólida & Partícula virtual (La fuente de la vida)", + "The_Land_of_Gold": "Ingredientes básicos & Arroz proteico (Tierra de oportunidades)", + "The_Blossom_in_the_Storm": "Líquido gaseoso & Semilla (Flores en la tormenta)", + "Legend_of_the_Puppet_Master": "Componentes mecánicos abandonados & Unidad de ábaco de jade (La leyenda del titiritero)", + "The_Wages_of_Humanity": "Cosecha tan alta como una persona & Extracto de hierbas medicinales (La paga de la humanidad)", + "Fragments_of_Illusory_Dreams": "Tranquilidad & Sueños rotos (Fragmentos de sueños ilusorios)", + "Scalpel_and_Screwdriver": "Engranaje oxidado & Muela vieja (Bisturí y destornillador)" }, "Name_2": { "name": "Preferencia de Encargo 2", "help": "", "Nine_Billion_Names": "Núcleo apagado (Nueve mil millones de nombres)", - "Destruction_of_the_Destroyer": "Instinto del ladrón (La destrucci´pon del destructor)", + "Destruction_of_the_Destroyer": "Instinto del ladrón (La destrucción del destructor)", "Winter_Soldiers": "Pin del guardia (Los guerreros del invierno)", "Born_to_Obey": "Componente antiguo (Creados para obedecer)", "Root_Out_the_Turpitude": "Brote verde inmortal (La raíz del mal)", "Fire_Lord_Inflames_Blades_of_War": "Componente artificial mecánico (Prendan los fuelles, fundan las armas)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", + "A_Startling_Night_Terror": "Componente del acumulador de sueños (Pesadilla aterradora)", + "Tranquility_of_Vimala_bhumi": "Jirones de pensamientos (Limpieza y purificación)", "Nameless_Land_Nameless_People": "Material de EXP de personaje (Lugar anónimo, personas anónimas)", - "Akashic_Records": "Material de EXP de cono de luz (Los Registros de Akasha)", - "The_Invisible_Hand": "Créditos (La mano invisible)", - "Abandoned_and_Insulted": "Flogisto y Metal (Abandonado e insultado)", - "Spring_of_Life": "Partícula virtual y Agua sólida (La fuente de la vida)", - "The_Land_of_Gold": "Arroz protéico e Ingredientes básicos (Tierra de oportunidades)", - "The_Blossom_in_the_Storm": "Líquido gaseoso y Semilla (Flores en la tormenta)", - "Legend_of_the_Puppet_Master": "Unidad de ábaco de jade y Componentes mecánicos abandonados (La leyenda del titiritero)", - "The_Wages_of_Humanity": "Extracto de hierbas medicinales y Cosecha tan alta como una persona (La paga de la humanidad)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Akashic_Records": "Material de EXP de conos de luz (Los Registros de Akasha)", + "The_Invisible_Hand": "Crédito (La mano invisible)", + "Abandoned_and_Insulted": "Flogisto & Metal (Abandonado e insultado)", + "Spring_of_Life": "Agua sólida & Partícula virtual (La fuente de la vida)", + "The_Land_of_Gold": "Ingredientes básicos & Arroz proteico (Tierra de oportunidades)", + "The_Blossom_in_the_Storm": "Líquido gaseoso & Semilla (Flores en la tormenta)", + "Legend_of_the_Puppet_Master": "Componentes mecánicos abandonados & Unidad de ábaco de jade (La leyenda del titiritero)", + "The_Wages_of_Humanity": "Cosecha tan alta como una persona & Extracto de hierbas medicinales (La paga de la humanidad)", + "Fragments_of_Illusory_Dreams": "Tranquilidad & Sueños rotos (Fragmentos de sueños ilusorios)", + "Scalpel_and_Screwdriver": "Engranaje oxidado & Muela vieja (Bisturí y destornillador)" }, "Name_3": { "name": "Preferencia de Encargo 3", "help": "", "Nine_Billion_Names": "Núcleo apagado (Nueve mil millones de nombres)", - "Destruction_of_the_Destroyer": "Instinto del ladrón (La destrucci´pon del destructor)", + "Destruction_of_the_Destroyer": "Instinto del ladrón (La destrucción del destructor)", "Winter_Soldiers": "Pin del guardia (Los guerreros del invierno)", "Born_to_Obey": "Componente antiguo (Creados para obedecer)", "Root_Out_the_Turpitude": "Brote verde inmortal (La raíz del mal)", "Fire_Lord_Inflames_Blades_of_War": "Componente artificial mecánico (Prendan los fuelles, fundan las armas)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", + "A_Startling_Night_Terror": "Componente del acumulador de sueños (Pesadilla aterradora)", + "Tranquility_of_Vimala_bhumi": "Jirones de pensamientos (Limpieza y purificación)", "Nameless_Land_Nameless_People": "Material de EXP de personaje (Lugar anónimo, personas anónimas)", - "Akashic_Records": "Material de EXP de cono de luz (Los Registros de Akasha)", - "The_Invisible_Hand": "Créditos (La mano invisible)", - "Abandoned_and_Insulted": "Flogisto y Metal (Abandonado e insultado)", - "Spring_of_Life": "Partícula virtual y Agua sólida (La fuente de la vida)", - "The_Land_of_Gold": "Arroz protéico e Ingredientes básicos (Tierra de oportunidades)", - "The_Blossom_in_the_Storm": "Líquido gaseoso y Semilla (Flores en la tormenta)", - "Legend_of_the_Puppet_Master": "Unidad de ábaco de jade y Componentes mecánicos abandonados (La leyenda del titiritero)", - "The_Wages_of_Humanity": "Extracto de hierbas medicinales y Cosecha tan alta como una persona (La paga de la humanidad)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Akashic_Records": "Material de EXP de conos de luz (Los Registros de Akasha)", + "The_Invisible_Hand": "Crédito (La mano invisible)", + "Abandoned_and_Insulted": "Flogisto & Metal (Abandonado e insultado)", + "Spring_of_Life": "Agua sólida & Partícula virtual (La fuente de la vida)", + "The_Land_of_Gold": "Ingredientes básicos & Arroz proteico (Tierra de oportunidades)", + "The_Blossom_in_the_Storm": "Líquido gaseoso & Semilla (Flores en la tormenta)", + "Legend_of_the_Puppet_Master": "Componentes mecánicos abandonados & Unidad de ábaco de jade (La leyenda del titiritero)", + "The_Wages_of_Humanity": "Cosecha tan alta como una persona & Extracto de hierbas medicinales (La paga de la humanidad)", + "Fragments_of_Illusory_Dreams": "Tranquilidad & Sueños rotos (Fragmentos de sueños ilusorios)", + "Scalpel_and_Screwdriver": "Engranaje oxidado & Muela vieja (Bisturí y destornillador)" }, "Name_4": { "name": "Preferencia de Encargo 4", "help": "", "Nine_Billion_Names": "Núcleo apagado (Nueve mil millones de nombres)", - "Destruction_of_the_Destroyer": "Instinto del ladrón (La destrucci´pon del destructor)", + "Destruction_of_the_Destroyer": "Instinto del ladrón (La destrucción del destructor)", "Winter_Soldiers": "Pin del guardia (Los guerreros del invierno)", "Born_to_Obey": "Componente antiguo (Creados para obedecer)", "Root_Out_the_Turpitude": "Brote verde inmortal (La raíz del mal)", "Fire_Lord_Inflames_Blades_of_War": "Componente artificial mecánico (Prendan los fuelles, fundan las armas)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", + "A_Startling_Night_Terror": "Componente del acumulador de sueños (Pesadilla aterradora)", + "Tranquility_of_Vimala_bhumi": "Jirones de pensamientos (Limpieza y purificación)", "Nameless_Land_Nameless_People": "Material de EXP de personaje (Lugar anónimo, personas anónimas)", - "Akashic_Records": "Material de EXP de cono de luz (Los Registros de Akasha)", - "The_Invisible_Hand": "Créditos (La mano invisible)", - "Abandoned_and_Insulted": "Flogisto y Metal (Abandonado e insultado)", - "Spring_of_Life": "Partícula virtual y Agua sólida (La fuente de la vida)", - "The_Land_of_Gold": "Arroz protéico e Ingredientes básicos (Tierra de oportunidades)", - "The_Blossom_in_the_Storm": "Líquido gaseoso y Semilla (Flores en la tormenta)", - "Legend_of_the_Puppet_Master": "Unidad de ábaco de jade y Componentes mecánicos abandonados (La leyenda del titiritero)", - "The_Wages_of_Humanity": "Extracto de hierbas medicinales y Cosecha tan alta como una persona (La paga de la humanidad)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Akashic_Records": "Material de EXP de conos de luz (Los Registros de Akasha)", + "The_Invisible_Hand": "Crédito (La mano invisible)", + "Abandoned_and_Insulted": "Flogisto & Metal (Abandonado e insultado)", + "Spring_of_Life": "Agua sólida & Partícula virtual (La fuente de la vida)", + "The_Land_of_Gold": "Ingredientes básicos & Arroz proteico (Tierra de oportunidades)", + "The_Blossom_in_the_Storm": "Líquido gaseoso & Semilla (Flores en la tormenta)", + "Legend_of_the_Puppet_Master": "Componentes mecánicos abandonados & Unidad de ábaco de jade (La leyenda del titiritero)", + "The_Wages_of_Humanity": "Cosecha tan alta como una persona & Extracto de hierbas medicinales (La paga de la humanidad)", + "Fragments_of_Illusory_Dreams": "Tranquilidad & Sueños rotos (Fragmentos de sueños ilusorios)", + "Scalpel_and_Screwdriver": "Engranaje oxidado & Muela vieja (Bisturí y destornillador)" }, "Duration": { "name": "Duración del encargo", diff --git a/module/config/i18n/ja-JP.json b/module/config/i18n/ja-JP.json index 702f46fb8..147956a39 100644 --- a/module/config/i18n/ja-JP.json +++ b/module/config/i18n/ja-JP.json @@ -773,19 +773,19 @@ "Born_to_Obey": "古代パーツ(生まれながらに服従する)", "Root_Out_the_Turpitude": "永寿の萌芽(悪孽を根絶やしに)", "Fire_Lord_Inflames_Blades_of_War": "工造機関(剣戟を焼却する火帝炉)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", - "Nameless_Land_Nameless_People": "キャラクターの経験値素材(無名の地、無名の人)", - "Akashic_Records": "光円錐強化素材(アーカーシャの記録)", + "A_Startling_Night_Terror": "ドリームコレクションパーツ(魂震える悪夢)", + "Tranquility_of_Vimala_bhumi": "思考の粉末(離垢清浄)", + "Nameless_Land_Nameless_People": "キャラクター経験値素材(無名の地、無名の人)", + "Akashic_Records": "光円錐経験値素材(アーカーシャの記録)", "The_Invisible_Hand": "信用ポイント(見えざる手)", - "Abandoned_and_Insulted": "燃素と金属(捨てられしものと傷つけられしもの)", - "Spring_of_Life": "仮想粒子と固形純水(生命の泉)", - "The_Land_of_Gold": "タンパク米と基本食材(黄金の大地)", - "The_Blossom_in_the_Storm": "気態流体と種子(嵐の中で咲き誇る花)", - "Legend_of_the_Puppet_Master": "玉兆単元&廃棄された機巧部品(傀儡師伝説)", - "The_Wages_of_Humanity": "薬草抽出物&一人稲(人類扶養)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Abandoned_and_Insulted": "燃素 & 金属(捨てられしものと傷つけられしもの)", + "Spring_of_Life": "固形純水 & 仮想粒子(生命の泉)", + "The_Land_of_Gold": "基本食材 & タンパク米(黄金の大地)", + "The_Blossom_in_the_Storm": "気態流体 & 種子(嵐の中で咲き誇る花)", + "Legend_of_the_Puppet_Master": "廃棄された機巧部品 & 玉兆単元(傀儡師伝説)", + "The_Wages_of_Humanity": "一人稲 & 薬草抽出物(人類扶養)", + "Fragments_of_Illusory_Dreams": "安逸 & 砕けた夢(幻夢の残片)", + "Scalpel_and_Screwdriver": "錆びた歯車 & 古びた大臼歯(メスとスクリュードライバー)" }, "Name_2": { "name": "依頼 2", @@ -796,19 +796,19 @@ "Born_to_Obey": "古代パーツ(生まれながらに服従する)", "Root_Out_the_Turpitude": "永寿の萌芽(悪孽を根絶やしに)", "Fire_Lord_Inflames_Blades_of_War": "工造機関(剣戟を焼却する火帝炉)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", - "Nameless_Land_Nameless_People": "キャラクターの経験値素材(無名の地、無名の人)", - "Akashic_Records": "光円錐強化素材(アーカーシャの記録)", + "A_Startling_Night_Terror": "ドリームコレクションパーツ(魂震える悪夢)", + "Tranquility_of_Vimala_bhumi": "思考の粉末(離垢清浄)", + "Nameless_Land_Nameless_People": "キャラクター経験値素材(無名の地、無名の人)", + "Akashic_Records": "光円錐経験値素材(アーカーシャの記録)", "The_Invisible_Hand": "信用ポイント(見えざる手)", - "Abandoned_and_Insulted": "燃素と金属(捨てられしものと傷つけられしもの)", - "Spring_of_Life": "仮想粒子と固形純水(生命の泉)", - "The_Land_of_Gold": "タンパク米と基本食材(黄金の大地)", - "The_Blossom_in_the_Storm": "気態流体と種子(嵐の中で咲き誇る花)", - "Legend_of_the_Puppet_Master": "玉兆単元&廃棄された機巧部品(傀儡師伝説)", - "The_Wages_of_Humanity": "薬草抽出物&一人稲(人類扶養)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Abandoned_and_Insulted": "燃素 & 金属(捨てられしものと傷つけられしもの)", + "Spring_of_Life": "固形純水 & 仮想粒子(生命の泉)", + "The_Land_of_Gold": "基本食材 & タンパク米(黄金の大地)", + "The_Blossom_in_the_Storm": "気態流体 & 種子(嵐の中で咲き誇る花)", + "Legend_of_the_Puppet_Master": "廃棄された機巧部品 & 玉兆単元(傀儡師伝説)", + "The_Wages_of_Humanity": "一人稲 & 薬草抽出物(人類扶養)", + "Fragments_of_Illusory_Dreams": "安逸 & 砕けた夢(幻夢の残片)", + "Scalpel_and_Screwdriver": "錆びた歯車 & 古びた大臼歯(メスとスクリュードライバー)" }, "Name_3": { "name": "依頼 3", @@ -819,19 +819,19 @@ "Born_to_Obey": "古代パーツ(生まれながらに服従する)", "Root_Out_the_Turpitude": "永寿の萌芽(悪孽を根絶やしに)", "Fire_Lord_Inflames_Blades_of_War": "工造機関(剣戟を焼却する火帝炉)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", - "Nameless_Land_Nameless_People": "キャラクターの経験値素材(無名の地、無名の人)", - "Akashic_Records": "光円錐強化素材(アーカーシャの記録)", + "A_Startling_Night_Terror": "ドリームコレクションパーツ(魂震える悪夢)", + "Tranquility_of_Vimala_bhumi": "思考の粉末(離垢清浄)", + "Nameless_Land_Nameless_People": "キャラクター経験値素材(無名の地、無名の人)", + "Akashic_Records": "光円錐経験値素材(アーカーシャの記録)", "The_Invisible_Hand": "信用ポイント(見えざる手)", - "Abandoned_and_Insulted": "燃素と金属(捨てられしものと傷つけられしもの)", - "Spring_of_Life": "仮想粒子と固形純水(生命の泉)", - "The_Land_of_Gold": "タンパク米と基本食材(黄金の大地)", - "The_Blossom_in_the_Storm": "気態流体と種子(嵐の中で咲き誇る花)", - "Legend_of_the_Puppet_Master": "玉兆単元&廃棄された機巧部品(傀儡師伝説)", - "The_Wages_of_Humanity": "薬草抽出物&一人稲(人類扶養)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Abandoned_and_Insulted": "燃素 & 金属(捨てられしものと傷つけられしもの)", + "Spring_of_Life": "固形純水 & 仮想粒子(生命の泉)", + "The_Land_of_Gold": "基本食材 & タンパク米(黄金の大地)", + "The_Blossom_in_the_Storm": "気態流体 & 種子(嵐の中で咲き誇る花)", + "Legend_of_the_Puppet_Master": "廃棄された機巧部品 & 玉兆単元(傀儡師伝説)", + "The_Wages_of_Humanity": "一人稲 & 薬草抽出物(人類扶養)", + "Fragments_of_Illusory_Dreams": "安逸 & 砕けた夢(幻夢の残片)", + "Scalpel_and_Screwdriver": "錆びた歯車 & 古びた大臼歯(メスとスクリュードライバー)" }, "Name_4": { "name": "依頼 4", @@ -842,19 +842,19 @@ "Born_to_Obey": "古代パーツ(生まれながらに服従する)", "Root_Out_the_Turpitude": "永寿の萌芽(悪孽を根絶やしに)", "Fire_Lord_Inflames_Blades_of_War": "工造機関(剣戟を焼却する火帝炉)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", - "Nameless_Land_Nameless_People": "キャラクターの経験値素材(無名の地、無名の人)", - "Akashic_Records": "光円錐強化素材(アーカーシャの記録)", + "A_Startling_Night_Terror": "ドリームコレクションパーツ(魂震える悪夢)", + "Tranquility_of_Vimala_bhumi": "思考の粉末(離垢清浄)", + "Nameless_Land_Nameless_People": "キャラクター経験値素材(無名の地、無名の人)", + "Akashic_Records": "光円錐経験値素材(アーカーシャの記録)", "The_Invisible_Hand": "信用ポイント(見えざる手)", - "Abandoned_and_Insulted": "燃素と金属(捨てられしものと傷つけられしもの)", - "Spring_of_Life": "仮想粒子と固形純水(生命の泉)", - "The_Land_of_Gold": "タンパク米と基本食材(黄金の大地)", - "The_Blossom_in_the_Storm": "気態流体と種子(嵐の中で咲き誇る花)", - "Legend_of_the_Puppet_Master": "玉兆単元&廃棄された機巧部品(傀儡師伝説)", - "The_Wages_of_Humanity": "薬草抽出物&一人稲(人類扶養)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Abandoned_and_Insulted": "燃素 & 金属(捨てられしものと傷つけられしもの)", + "Spring_of_Life": "固形純水 & 仮想粒子(生命の泉)", + "The_Land_of_Gold": "基本食材 & タンパク米(黄金の大地)", + "The_Blossom_in_the_Storm": "気態流体 & 種子(嵐の中で咲き誇る花)", + "Legend_of_the_Puppet_Master": "廃棄された機巧部品 & 玉兆単元(傀儡師伝説)", + "The_Wages_of_Humanity": "一人稲 & 薬草抽出物(人類扶養)", + "Fragments_of_Illusory_Dreams": "安逸 & 砕けた夢(幻夢の残片)", + "Scalpel_and_Screwdriver": "錆びた歯車 & 古びた大臼歯(メスとスクリュードライバー)" }, "Duration": { "name": "派遣時間", diff --git a/module/config/i18n/zh-CN.json b/module/config/i18n/zh-CN.json index 5e30b606d..f9889c70e 100644 --- a/module/config/i18n/zh-CN.json +++ b/module/config/i18n/zh-CN.json @@ -773,19 +773,19 @@ "Born_to_Obey": "古代零件(生而服从)", "Root_Out_the_Turpitude": "永寿幼芽(根除恶孽)", "Fire_Lord_Inflames_Blades_of_War": "工造机杼(火帝动炉销剑戟)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", + "A_Startling_Night_Terror": "蓄梦元件(劫梦惊魂)", + "Tranquility_of_Vimala_bhumi": "思绪末屑(离垢清净)", "Nameless_Land_Nameless_People": "角色经验材料(无名之地,无名之人)", - "Akashic_Records": "光锥强化材料(阿卡夏记录)", + "Akashic_Records": "光锥经验材料(阿卡夏记录)", "The_Invisible_Hand": "信用点(看不见的手)", - "Abandoned_and_Insulted": "燃素&金属(被废弃与损害的)", - "Spring_of_Life": "虚粒子&固态净水(生命之泉)", - "The_Land_of_Gold": "蛋白米&基本食材(黄金大地)", - "The_Blossom_in_the_Storm": "气态流体&种子(风暴中怒放的花)", - "Legend_of_the_Puppet_Master": "玉兆单元&废弃机巧零件(偃师传说)", - "The_Wages_of_Humanity": "药草提取物&一人嘉禾(赡养人类)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Abandoned_and_Insulted": "燃素 & 金属(被废弃与损害的)", + "Spring_of_Life": "固态净水 & 虚粒子(生命之泉)", + "The_Land_of_Gold": "基本食材 & 蛋白米(黄金大地)", + "The_Blossom_in_the_Storm": "气态流体 & 种子(风暴中怒放的花)", + "Legend_of_the_Puppet_Master": "废弃机巧零件 & 玉兆单元(偃师传说)", + "The_Wages_of_Humanity": "一人嘉禾 & 药草提取物(赡养人类)", + "Fragments_of_Illusory_Dreams": "安逸 & 碎梦(幻梦的残片)", + "Scalpel_and_Screwdriver": "锈迹齿轮 & 老旧臼齿(手术刀与螺丝刀)" }, "Name_2": { "name": "第2个委托选择", @@ -796,19 +796,19 @@ "Born_to_Obey": "古代零件(生而服从)", "Root_Out_the_Turpitude": "永寿幼芽(根除恶孽)", "Fire_Lord_Inflames_Blades_of_War": "工造机杼(火帝动炉销剑戟)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", + "A_Startling_Night_Terror": "蓄梦元件(劫梦惊魂)", + "Tranquility_of_Vimala_bhumi": "思绪末屑(离垢清净)", "Nameless_Land_Nameless_People": "角色经验材料(无名之地,无名之人)", - "Akashic_Records": "光锥强化材料(阿卡夏记录)", + "Akashic_Records": "光锥经验材料(阿卡夏记录)", "The_Invisible_Hand": "信用点(看不见的手)", - "Abandoned_and_Insulted": "燃素&金属(被废弃与损害的)", - "Spring_of_Life": "虚粒子&固态净水(生命之泉)", - "The_Land_of_Gold": "蛋白米&基本食材(黄金大地)", - "The_Blossom_in_the_Storm": "气态流体&种子(风暴中怒放的花)", - "Legend_of_the_Puppet_Master": "玉兆单元&废弃机巧零件(偃师传说)", - "The_Wages_of_Humanity": "药草提取物&一人嘉禾(赡养人类)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Abandoned_and_Insulted": "燃素 & 金属(被废弃与损害的)", + "Spring_of_Life": "固态净水 & 虚粒子(生命之泉)", + "The_Land_of_Gold": "基本食材 & 蛋白米(黄金大地)", + "The_Blossom_in_the_Storm": "气态流体 & 种子(风暴中怒放的花)", + "Legend_of_the_Puppet_Master": "废弃机巧零件 & 玉兆单元(偃师传说)", + "The_Wages_of_Humanity": "一人嘉禾 & 药草提取物(赡养人类)", + "Fragments_of_Illusory_Dreams": "安逸 & 碎梦(幻梦的残片)", + "Scalpel_and_Screwdriver": "锈迹齿轮 & 老旧臼齿(手术刀与螺丝刀)" }, "Name_3": { "name": "第3个委托选择", @@ -819,19 +819,19 @@ "Born_to_Obey": "古代零件(生而服从)", "Root_Out_the_Turpitude": "永寿幼芽(根除恶孽)", "Fire_Lord_Inflames_Blades_of_War": "工造机杼(火帝动炉销剑戟)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", + "A_Startling_Night_Terror": "蓄梦元件(劫梦惊魂)", + "Tranquility_of_Vimala_bhumi": "思绪末屑(离垢清净)", "Nameless_Land_Nameless_People": "角色经验材料(无名之地,无名之人)", - "Akashic_Records": "光锥强化材料(阿卡夏记录)", + "Akashic_Records": "光锥经验材料(阿卡夏记录)", "The_Invisible_Hand": "信用点(看不见的手)", - "Abandoned_and_Insulted": "燃素&金属(被废弃与损害的)", - "Spring_of_Life": "虚粒子&固态净水(生命之泉)", - "The_Land_of_Gold": "蛋白米&基本食材(黄金大地)", - "The_Blossom_in_the_Storm": "气态流体&种子(风暴中怒放的花)", - "Legend_of_the_Puppet_Master": "玉兆单元&废弃机巧零件(偃师传说)", - "The_Wages_of_Humanity": "药草提取物&一人嘉禾(赡养人类)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Abandoned_and_Insulted": "燃素 & 金属(被废弃与损害的)", + "Spring_of_Life": "固态净水 & 虚粒子(生命之泉)", + "The_Land_of_Gold": "基本食材 & 蛋白米(黄金大地)", + "The_Blossom_in_the_Storm": "气态流体 & 种子(风暴中怒放的花)", + "Legend_of_the_Puppet_Master": "废弃机巧零件 & 玉兆单元(偃师传说)", + "The_Wages_of_Humanity": "一人嘉禾 & 药草提取物(赡养人类)", + "Fragments_of_Illusory_Dreams": "安逸 & 碎梦(幻梦的残片)", + "Scalpel_and_Screwdriver": "锈迹齿轮 & 老旧臼齿(手术刀与螺丝刀)" }, "Name_4": { "name": "第4个委托选择", @@ -842,19 +842,19 @@ "Born_to_Obey": "古代零件(生而服从)", "Root_Out_the_Turpitude": "永寿幼芽(根除恶孽)", "Fire_Lord_Inflames_Blades_of_War": "工造机杼(火帝动炉销剑戟)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", + "A_Startling_Night_Terror": "蓄梦元件(劫梦惊魂)", + "Tranquility_of_Vimala_bhumi": "思绪末屑(离垢清净)", "Nameless_Land_Nameless_People": "角色经验材料(无名之地,无名之人)", - "Akashic_Records": "光锥强化材料(阿卡夏记录)", + "Akashic_Records": "光锥经验材料(阿卡夏记录)", "The_Invisible_Hand": "信用点(看不见的手)", - "Abandoned_and_Insulted": "燃素&金属(被废弃与损害的)", - "Spring_of_Life": "虚粒子&固态净水(生命之泉)", - "The_Land_of_Gold": "蛋白米&基本食材(黄金大地)", - "The_Blossom_in_the_Storm": "气态流体&种子(风暴中怒放的花)", - "Legend_of_the_Puppet_Master": "玉兆单元&废弃机巧零件(偃师传说)", - "The_Wages_of_Humanity": "药草提取物&一人嘉禾(赡养人类)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Abandoned_and_Insulted": "燃素 & 金属(被废弃与损害的)", + "Spring_of_Life": "固态净水 & 虚粒子(生命之泉)", + "The_Land_of_Gold": "基本食材 & 蛋白米(黄金大地)", + "The_Blossom_in_the_Storm": "气态流体 & 种子(风暴中怒放的花)", + "Legend_of_the_Puppet_Master": "废弃机巧零件 & 玉兆单元(偃师传说)", + "The_Wages_of_Humanity": "一人嘉禾 & 药草提取物(赡养人类)", + "Fragments_of_Illusory_Dreams": "安逸 & 碎梦(幻梦的残片)", + "Scalpel_and_Screwdriver": "锈迹齿轮 & 老旧臼齿(手术刀与螺丝刀)" }, "Duration": { "name": "派遣时长", diff --git a/module/config/i18n/zh-TW.json b/module/config/i18n/zh-TW.json index 5ff9247a2..a8515349b 100644 --- a/module/config/i18n/zh-TW.json +++ b/module/config/i18n/zh-TW.json @@ -773,19 +773,19 @@ "Born_to_Obey": "古代零件(生而服從)", "Root_Out_the_Turpitude": "永壽幼芽(根除惡孽)", "Fire_Lord_Inflames_Blades_of_War": "工造機杼(火帝動爐銷劍戟)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", - "Nameless_Land_Nameless_People": "角色經驗材料(無名之地,無名之人)", - "Akashic_Records": "光錐強化材料(阿卡夏記錄)", + "A_Startling_Night_Terror": "蓄夢元件(劫夢驚魂)", + "Tranquility_of_Vimala_bhumi": "思緒末屑(離垢清淨)", + "Nameless_Land_Nameless_People": "角色經驗素材(無名之地,無名之人)", + "Akashic_Records": "光錐經驗素材(阿卡夏紀錄)", "The_Invisible_Hand": "信用點(看不見的手)", - "Abandoned_and_Insulted": "燃素&金屬(被廢棄與損害的)", - "Spring_of_Life": "虛粒子&固態淨水(生命之泉)", - "The_Land_of_Gold": "蛋白米&基本食材(黃金大地)", - "The_Blossom_in_the_Storm": "氣態流體&種子(風暴中怒放的花)", - "Legend_of_the_Puppet_Master": "玉兆單元&廢棄機巧零件(偃師傳說)", - "The_Wages_of_Humanity": "藥草萃取物&一人嘉禾(贍養人類)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Abandoned_and_Insulted": "燃素 & 金屬(被廢棄與損害的)", + "Spring_of_Life": "固態淨水 & 虛粒子(生命之泉)", + "The_Land_of_Gold": "基本食材 & 蛋白米(黃金大地)", + "The_Blossom_in_the_Storm": "氣態流體 & 種子(風暴中怒放的花)", + "Legend_of_the_Puppet_Master": "廢棄機巧零件 & 玉兆單元(偃師傳說)", + "The_Wages_of_Humanity": "一人嘉禾 & 藥草萃取物(贍養人類)", + "Fragments_of_Illusory_Dreams": "安逸 & 碎夢(幻夢的殘片)", + "Scalpel_and_Screwdriver": "鏽跡齒輪 & 老舊臼齒(手術刀與螺絲起子)" }, "Name_2": { "name": "第2個委託選擇", @@ -796,19 +796,19 @@ "Born_to_Obey": "古代零件(生而服從)", "Root_Out_the_Turpitude": "永壽幼芽(根除惡孽)", "Fire_Lord_Inflames_Blades_of_War": "工造機杼(火帝動爐銷劍戟)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", - "Nameless_Land_Nameless_People": "角色經驗材料(無名之地,無名之人)", - "Akashic_Records": "光錐強化材料(阿卡夏記錄)", + "A_Startling_Night_Terror": "蓄夢元件(劫夢驚魂)", + "Tranquility_of_Vimala_bhumi": "思緒末屑(離垢清淨)", + "Nameless_Land_Nameless_People": "角色經驗素材(無名之地,無名之人)", + "Akashic_Records": "光錐經驗素材(阿卡夏紀錄)", "The_Invisible_Hand": "信用點(看不見的手)", - "Abandoned_and_Insulted": "燃素&金屬(被廢棄與損害的)", - "Spring_of_Life": "虛粒子&固態淨水(生命之泉)", - "The_Land_of_Gold": "蛋白米&基本食材(黃金大地)", - "The_Blossom_in_the_Storm": "氣態流體&種子(風暴中怒放的花)", - "Legend_of_the_Puppet_Master": "玉兆單元&廢棄機巧零件(偃師傳說)", - "The_Wages_of_Humanity": "藥草萃取物&一人嘉禾(贍養人類)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Abandoned_and_Insulted": "燃素 & 金屬(被廢棄與損害的)", + "Spring_of_Life": "固態淨水 & 虛粒子(生命之泉)", + "The_Land_of_Gold": "基本食材 & 蛋白米(黃金大地)", + "The_Blossom_in_the_Storm": "氣態流體 & 種子(風暴中怒放的花)", + "Legend_of_the_Puppet_Master": "廢棄機巧零件 & 玉兆單元(偃師傳說)", + "The_Wages_of_Humanity": "一人嘉禾 & 藥草萃取物(贍養人類)", + "Fragments_of_Illusory_Dreams": "安逸 & 碎夢(幻夢的殘片)", + "Scalpel_and_Screwdriver": "鏽跡齒輪 & 老舊臼齒(手術刀與螺絲起子)" }, "Name_3": { "name": "第3個委託選擇", @@ -819,19 +819,19 @@ "Born_to_Obey": "古代零件(生而服從)", "Root_Out_the_Turpitude": "永壽幼芽(根除惡孽)", "Fire_Lord_Inflames_Blades_of_War": "工造機杼(火帝動爐銷劍戟)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", - "Nameless_Land_Nameless_People": "角色經驗材料(無名之地,無名之人)", - "Akashic_Records": "光錐強化材料(阿卡夏記錄)", + "A_Startling_Night_Terror": "蓄夢元件(劫夢驚魂)", + "Tranquility_of_Vimala_bhumi": "思緒末屑(離垢清淨)", + "Nameless_Land_Nameless_People": "角色經驗素材(無名之地,無名之人)", + "Akashic_Records": "光錐經驗素材(阿卡夏紀錄)", "The_Invisible_Hand": "信用點(看不見的手)", - "Abandoned_and_Insulted": "燃素&金屬(被廢棄與損害的)", - "Spring_of_Life": "虛粒子&固態淨水(生命之泉)", - "The_Land_of_Gold": "蛋白米&基本食材(黃金大地)", - "The_Blossom_in_the_Storm": "氣態流體&種子(風暴中怒放的花)", - "Legend_of_the_Puppet_Master": "玉兆單元&廢棄機巧零件(偃師傳說)", - "The_Wages_of_Humanity": "藥草萃取物&一人嘉禾(贍養人類)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Abandoned_and_Insulted": "燃素 & 金屬(被廢棄與損害的)", + "Spring_of_Life": "固態淨水 & 虛粒子(生命之泉)", + "The_Land_of_Gold": "基本食材 & 蛋白米(黃金大地)", + "The_Blossom_in_the_Storm": "氣態流體 & 種子(風暴中怒放的花)", + "Legend_of_the_Puppet_Master": "廢棄機巧零件 & 玉兆單元(偃師傳說)", + "The_Wages_of_Humanity": "一人嘉禾 & 藥草萃取物(贍養人類)", + "Fragments_of_Illusory_Dreams": "安逸 & 碎夢(幻夢的殘片)", + "Scalpel_and_Screwdriver": "鏽跡齒輪 & 老舊臼齒(手術刀與螺絲起子)" }, "Name_4": { "name": "第4個委託選擇", @@ -842,19 +842,19 @@ "Born_to_Obey": "古代零件(生而服從)", "Root_Out_the_Turpitude": "永壽幼芽(根除惡孽)", "Fire_Lord_Inflames_Blades_of_War": "工造機杼(火帝動爐銷劍戟)", - "A_Startling_Night_Terror": "A_Startling_Night_Terror", - "Tranquility_of_Vimala_bhumi": "Tranquility_of_Vimala_bhumi", - "Nameless_Land_Nameless_People": "角色經驗材料(無名之地,無名之人)", - "Akashic_Records": "光錐強化材料(阿卡夏記錄)", + "A_Startling_Night_Terror": "蓄夢元件(劫夢驚魂)", + "Tranquility_of_Vimala_bhumi": "思緒末屑(離垢清淨)", + "Nameless_Land_Nameless_People": "角色經驗素材(無名之地,無名之人)", + "Akashic_Records": "光錐經驗素材(阿卡夏紀錄)", "The_Invisible_Hand": "信用點(看不見的手)", - "Abandoned_and_Insulted": "燃素&金屬(被廢棄與損害的)", - "Spring_of_Life": "虛粒子&固態淨水(生命之泉)", - "The_Land_of_Gold": "蛋白米&基本食材(黃金大地)", - "The_Blossom_in_the_Storm": "氣態流體&種子(風暴中怒放的花)", - "Legend_of_the_Puppet_Master": "玉兆單元&廢棄機巧零件(偃師傳說)", - "The_Wages_of_Humanity": "藥草萃取物&一人嘉禾(贍養人類)", - "Fragments_of_Illusory_Dreams": "Fragments_of_Illusory_Dreams", - "Scalpel_and_Screwdriver": "Scalpel_and_Screwdriver" + "Abandoned_and_Insulted": "燃素 & 金屬(被廢棄與損害的)", + "Spring_of_Life": "固態淨水 & 虛粒子(生命之泉)", + "The_Land_of_Gold": "基本食材 & 蛋白米(黃金大地)", + "The_Blossom_in_the_Storm": "氣態流體 & 種子(風暴中怒放的花)", + "Legend_of_the_Puppet_Master": "廢棄機巧零件 & 玉兆單元(偃師傳說)", + "The_Wages_of_Humanity": "一人嘉禾 & 藥草萃取物(贍養人類)", + "Fragments_of_Illusory_Dreams": "安逸 & 碎夢(幻夢的殘片)", + "Scalpel_and_Screwdriver": "鏽跡齒輪 & 老舊臼齒(手術刀與螺絲起子)" }, "Duration": { "name": "派遣時間", diff --git a/tasks/assignment/keywords/__init__.py b/tasks/assignment/keywords/__init__.py index 9d3e39402..ab95755a7 100644 --- a/tasks/assignment/keywords/__init__.py +++ b/tasks/assignment/keywords/__init__.py @@ -1,4 +1,5 @@ import tasks.assignment.keywords.entry as KEYWORDS_ASSIGNMENT_ENTRY +import tasks.assignment.keywords.entry_detailed as KEYWORDS_ASSIGNMENT_ENTRY_DETAILED import tasks.assignment.keywords.group as KEYWORDS_ASSIGNMENT_GROUP import tasks.assignment.keywords.event_entry as KEYWORDS_ASSIGNMENT_EVENT_ENTRY import tasks.assignment.keywords.event_group as KEYWORDS_ASSIGNMENT_EVENT_GROUP diff --git a/tasks/assignment/keywords/classes.py b/tasks/assignment/keywords/classes.py index e5a7c774d..cbb2cd008 100644 --- a/tasks/assignment/keywords/classes.py +++ b/tasks/assignment/keywords/classes.py @@ -20,6 +20,11 @@ class AssignmentEntry(Keyword): return super().__hash__() +@dataclass(repr=False) +class AssignmentEntryDetailed(Keyword): + instances: ClassVar = {} + + @dataclass(repr=False) class AssignmentEventGroup(AssignmentGroup): instances: ClassVar = {} diff --git a/tasks/assignment/keywords/entry_detailed.py b/tasks/assignment/keywords/entry_detailed.py new file mode 100644 index 000000000..418e8f578 --- /dev/null +++ b/tasks/assignment/keywords/entry_detailed.py @@ -0,0 +1,176 @@ +from .classes import AssignmentEntryDetailed + +# This file was auto-generated, do not modify it manually. To generate: +# ``` python -m dev_tools.keyword_extract ``` + +Nine_Billion_Names = AssignmentEntryDetailed( + id=1, + name='Nine_Billion_Names', + cn='熄灭原核(九十亿个名字)', + cht='熄滅原核(九十億個名字)', + en='Extinguished Core (Nine Billion Names)', + jp='消滅した原核(九十億の御名)', + es='Núcleo apagado (Nueve mil millones de nombres)', +) +Destruction_of_the_Destroyer = AssignmentEntryDetailed( + id=2, + name='Destruction_of_the_Destroyer', + cn='掠夺的本能(毁灭者的覆灭)', + cht='掠奪的本能(毀滅者的覆滅)', + en="Thief's Instinct (Destruction of the Destroyer)", + jp='略奪の本能(壊滅者の覆没)', + es='Instinto del ladrón (La destrucción del destructor)', +) +Winter_Soldiers = AssignmentEntryDetailed( + id=3, + name='Winter_Soldiers', + cn='铁卫扣饰(寒冬的战士们)', + cht='鐵衛扣飾(寒冬的戰士們)', + en='Silvermane Badge (Winter Soldiers)', + jp='シルバーメインの釦(寒冬の戦士たち)', + es='Pin del guardia (Los guerreros del invierno)', +) +Born_to_Obey = AssignmentEntryDetailed( + id=4, + name='Born_to_Obey', + cn='古代零件(生而服从)', + cht='古代零件(生而服從)', + en='Ancient Part (Born to Obey)', + jp='古代パーツ(生まれながらに服従する)', + es='Componente antiguo (Creados para obedecer)', +) +Root_Out_the_Turpitude = AssignmentEntryDetailed( + id=5, + name='Root_Out_the_Turpitude', + cn='永寿幼芽(根除恶孽)', + cht='永壽幼芽(根除惡孽)', + en='Immortal Scionette (Root Out the Turpitude)', + jp='永寿の萌芽(悪孽を根絶やしに)', + es='Brote verde inmortal (La raíz del mal)', +) +Fire_Lord_Inflames_Blades_of_War = AssignmentEntryDetailed( + id=6, + name='Fire_Lord_Inflames_Blades_of_War', + cn='工造机杼(火帝动炉销剑戟)', + cht='工造機杼(火帝動爐銷劍戟)', + en="Artifex's Module (Fire Lord Inflames Blades of War)", + jp='工造機関(剣戟を焼却する火帝炉)', + es='Componente artificial mecánico (Prendan los fuelles, fundan las armas)', +) +A_Startling_Night_Terror = AssignmentEntryDetailed( + id=7, + name='A_Startling_Night_Terror', + cn='蓄梦元件(劫梦惊魂)', + cht='蓄夢元件(劫夢驚魂)', + en='Dream Collection Component (A Startling Night Terror)', + jp='ドリームコレクションパーツ(魂震える悪夢)', + es='Componente del acumulador de sueños (Pesadilla aterradora)', +) +Tranquility_of_Vimala_bhumi = AssignmentEntryDetailed( + id=8, + name='Tranquility_of_Vimala_bhumi', + cn='思绪末屑(离垢清净)', + cht='思緒末屑(離垢清淨)', + en='Tatters of Thought (Tranquility of Vimala-bhumi)', + jp='思考の粉末(離垢清浄)', + es='Jirones de pensamientos (Limpieza y purificación)', +) +Nameless_Land_Nameless_People = AssignmentEntryDetailed( + id=9, + name='Nameless_Land_Nameless_People', + cn='角色经验材料(无名之地,无名之人)', + cht='角色經驗素材(無名之地,無名之人)', + en='Character EXP Material (Nameless Land, Nameless People)', + jp='キャラクター経験値素材(無名の地、無名の人)', + es='Material de EXP de personaje (Lugar anónimo, personas anónimas)', +) +Akashic_Records = AssignmentEntryDetailed( + id=10, + name='Akashic_Records', + cn='光锥经验材料(阿卡夏记录)', + cht='光錐經驗素材(阿卡夏紀錄)', + en='Light Cone EXP Material (Akashic Records)', + jp='光円錐経験値素材(アーカーシャの記録)', + es='Material de EXP de conos de luz (Los Registros de Akasha)', +) +The_Invisible_Hand = AssignmentEntryDetailed( + id=11, + name='The_Invisible_Hand', + cn='信用点(看不见的手)', + cht='信用點(看不見的手)', + en='Credit (The Invisible Hand)', + jp='信用ポイント(見えざる手)', + es='Crédito (La mano invisible)', +) +Abandoned_and_Insulted = AssignmentEntryDetailed( + id=12, + name='Abandoned_and_Insulted', + cn='燃素 & 金属(被废弃与损害的)', + cht='燃素 & 金屬(被廢棄與損害的)', + en='Phlogiston & Metal (Abandoned and Insulted)', + jp='燃素 & 金属(捨てられしものと傷つけられしもの)', + es='Flogisto & Metal (Abandonado e insultado)', +) +Spring_of_Life = AssignmentEntryDetailed( + id=13, + name='Spring_of_Life', + cn='固态净水 & 虚粒子(生命之泉)', + cht='固態淨水 & 虛粒子(生命之泉)', + en='Solid Water & Virtual Particle (Spring of Life)', + jp='固形純水 & 仮想粒子(生命の泉)', + es='Agua sólida & Partícula virtual (La fuente de la vida)', +) +The_Land_of_Gold = AssignmentEntryDetailed( + id=14, + name='The_Land_of_Gold', + cn='基本食材 & 蛋白米(黄金大地)', + cht='基本食材 & 蛋白米(黃金大地)', + en='Basic Ingredients & Protein Rice (The Land of Gold)', + jp='基本食材 & タンパク米(黄金の大地)', + es='Ingredientes básicos & Arroz proteico (Tierra de oportunidades)', +) +The_Blossom_in_the_Storm = AssignmentEntryDetailed( + id=15, + name='The_Blossom_in_the_Storm', + cn='气态流体 & 种子(风暴中怒放的花)', + cht='氣態流體 & 種子(風暴中怒放的花)', + en='Gaseous Liquid & Seed (The Blossom in the Storm)', + jp='気態流体 & 種子(嵐の中で咲き誇る花)', + es='Líquido gaseoso & Semilla (Flores en la tormenta)', +) +Legend_of_the_Puppet_Master = AssignmentEntryDetailed( + id=16, + name='Legend_of_the_Puppet_Master', + cn='废弃机巧零件 & 玉兆单元(偃师传说)', + cht='廢棄機巧零件 & 玉兆單元(偃師傳說)', + en='Discarded Ingenium Parts & Jade Abacus Unit (Legend of the Puppet Master)', + jp='廃棄された機巧部品 & 玉兆単元(傀儡師伝説)', + es='Componentes mecánicos abandonados & Unidad de ábaco de jade (La leyenda del titiritero)', +) +The_Wages_of_Humanity = AssignmentEntryDetailed( + id=17, + name='The_Wages_of_Humanity', + cn='一人嘉禾 & 药草提取物(赡养人类)', + cht='一人嘉禾 & 藥草萃取物(贍養人類)', + en='Human-Height Auspicious Crops & Extract of Medicinal Herbs (The Wages of Humanity)', + jp='一人稲 & 薬草抽出物(人類扶養)', + es='Cosecha tan alta como una persona & Extracto de hierbas medicinales (La paga de la humanidad)', +) +Fragments_of_Illusory_Dreams = AssignmentEntryDetailed( + id=18, + name='Fragments_of_Illusory_Dreams', + cn='安逸 & 碎梦(幻梦的残片)', + cht='安逸 & 碎夢(幻夢的殘片)', + en='Tranquility & Broken Dreams (Fragments of Illusory Dreams)', + jp='安逸 & 砕けた夢(幻夢の残片)', + es='Tranquilidad & Sueños rotos (Fragmentos de sueños ilusorios)', +) +Scalpel_and_Screwdriver = AssignmentEntryDetailed( + id=19, + name='Scalpel_and_Screwdriver', + cn='锈迹齿轮 & 老旧臼齿(手术刀与螺丝刀)', + cht='鏽跡齒輪 & 老舊臼齒(手術刀與螺絲起子)', + en='Rusty Gear & Old Molar (Scalpel and Screwdriver)', + jp='錆びた歯車 & 古びた大臼歯(メスとスクリュードライバー)', + es='Engranaje oxidado & Muela vieja (Bisturí y destornillador)', +)