Index: binaries/data/mods/mod/descriptions/descriptions.txt =================================================================== --- /dev/null +++ binaries/data/mods/mod/descriptions/descriptions.txt @@ -0,0 +1,2 @@ +0 A.D. Empires Ascendant +A free, open-source, historical RTS game. Index: binaries/data/mods/mod/gui/modmod/modmod.js =================================================================== --- binaries/data/mods/mod/gui/modmod/modmod.js +++ binaries/data/mods/mod/gui/modmod/modmod.js @@ -191,7 +191,7 @@ listObject.list_name = folders.map(folder => colorMod(folder, getMod(folder).name, enabled)); listObject.list_folder = folders.map(folder => colorMod(folder, folder, enabled)); - listObject.list_label = folders.map(folder => colorMod(folder, getMod(folder).label, enabled)); + listObject.list_label = folders.map(folder => colorMod(folder, translateWithContext("mod description", getMod(folder).label), enabled)); listObject.list_url = folders.map(folder => colorMod(folder, getMod(folder).url || "", enabled)); listObject.list_version = folders.map(folder => colorMod(folder, getMod(folder).version, enabled)); listObject.list_dependencies = folders.map(folder => colorMod(folder, getMod(folder).dependencies.join(" "), enabled)); @@ -452,7 +452,7 @@ Engine.GetGUIObjectByName("globalModDescription").caption = listObject.list[listObject.selected] ? - getMod(listObject.list[listObject.selected]).description : + translateWithContext("mod description", getMod(listObject.list[listObject.selected]).description) : '[color="' + g_ColorNoModSelected + '"]' + translate("No mod has been selected.") + '[/color]'; if (!g_ModsEnabled.length) Index: binaries/data/mods/mod/l10n/messages.json =================================================================== --- binaries/data/mods/mod/l10n/messages.json +++ binaries/data/mods/mod/l10n/messages.json @@ -47,6 +47,15 @@ ], "options": { } + }, + { + "extractor": "txt", + "filemasks": [ + "descriptions/**.txt" + ], + "options": { + "context": "mod description" + } } ] } Index: binaries/data/mods/public/gui/campaigns/new_modal/NewCampaignModal.js =================================================================== --- binaries/data/mods/public/gui/campaigns/new_modal/NewCampaignModal.js +++ binaries/data/mods/public/gui/campaigns/new_modal/NewCampaignModal.js @@ -11,7 +11,7 @@ Engine.GetGUIObjectByName('cancelButton').onPress = () => Engine.PopGuiPage(); Engine.GetGUIObjectByName('startButton').onPress = () => this.createAndStartCampaign(); - Engine.GetGUIObjectByName('runDescription').caption = this.template.Name; + Engine.GetGUIObjectByName('runDescription').caption = translate(this.template.Name); Engine.GetGUIObjectByName('runDescription').onTextEdit = () => { Engine.GetGUIObjectByName('startButton').enabled = Engine.GetGUIObjectByName('runDescription').caption.length > 0; }; Index: binaries/data/mods/public/gui/campaigns/new_modal/NewCampaignModal.xml =================================================================== --- binaries/data/mods/public/gui/campaigns/new_modal/NewCampaignModal.xml +++ binaries/data/mods/public/gui/campaigns/new_modal/NewCampaignModal.xml @@ -13,7 +13,7 @@ - Please enter the name of your new campaign run: + Please enter the name of your new campaign run: Index: source/tools/i18n/extractors/extractors.py =================================================================== --- source/tools/i18n/extractors/extractors.py +++ source/tools/i18n/extractors/extractors.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2020 Wildfire Games. +# Copyright (C) 2021 Wildfire Games. # All rights reserved. # # Redistribution and use in source and binary forms, with or without modification, are permitted provided that the @@ -287,13 +287,17 @@ """ Extract messages from plain text files. """ + def __init__(self, directoryPath=None, filemasks=[], options={}): + super(txt, self).__init__(directoryPath, filemasks, options) + self.context = self.options.get("context", None) + def extractFromFile(self, filepath): with codecs.open(filepath, "r", encoding='utf-8-sig') as fileObject: lineCount = 0 for line in [line.strip("\n\r") for line in fileObject.readlines()]: lineCount += 1 if line: - yield line, None, None, None, lineCount, [] + yield line, None, self.context, None, lineCount, []