aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Krause <vkrause@kde.org>2021-05-11 17:42:43 +0200
committerVolker Krause <vkrause@kde.org>2021-05-16 07:37:34 +0000
commitbba49c3924a84cf64cda84bd2a27ed26ae796687 (patch)
treeb93c5faac2c8c8d69512f85952982e28659cfdaa
parentc28008a109cdd23c3de4a3fdceb12629431b03f1 (diff)
downloadextra-cmake-modules-bba49c3924a84cf64cda84bd2a27ed26ae796687.tar.gz
extra-cmake-modules-bba49c3924a84cf64cda84bd2a27ed26ae796687.tar.bz2
Handle text-less tags
Contrary to the comment those exist (e.g. ul, ol), this just wasn't noticed as due to the script-enforced formatting those always contain some spaces. This resulted in different structures between English and translated description texts. With this change all language variants show the same structure.
-rwxr-xr-xtoolchain/generate-fastlane-metadata.py37
1 files changed, 22 insertions, 15 deletions
diff --git a/toolchain/generate-fastlane-metadata.py b/toolchain/generate-fastlane-metadata.py
index e6f377a1..e917484e 100755
--- a/toolchain/generate-fastlane-metadata.py
+++ b/toolchain/generate-fastlane-metadata.py
@@ -85,28 +85,35 @@ def readText(elem, found, allLanguages):
# If there is text available, we'll want to extract it
# Additionally, if this element has any children, make sure we read those as well
- # It isn't clear if it is possible for an item to not have text, but to have children which do have text
- # The code will currently skip these if they're encountered
- if elem.text:
- if elem.tag in supportedRichTextTags:
+ if elem.tag in supportedRichTextTags:
+ if (elem.text and elem.text.strip()) or lang:
found[lang] += '<' + elem.tag + '>'
+ else:
+ for l in allLanguages:
+ found[l] += '<' + elem.tag + '>'
+
+ if elem.text and elem.text.strip():
found[lang] += elem.text
- subOutput = {}
- for child in elem:
- if not child.get('{http://www.w3.org/XML/1998/namespace}lang') and len(subOutput) > 0:
- applyLanguageFallback(subOutput, allLanguages)
- for l in allLanguages:
- found[l] += subOutput[l]
- subOutput = {}
- readText(child, subOutput, allLanguages)
- if len(subOutput) > 0:
+ subOutput = {}
+ for child in elem:
+ if not child.get('{http://www.w3.org/XML/1998/namespace}lang') and len(subOutput) > 0:
applyLanguageFallback(subOutput, allLanguages)
for l in allLanguages:
found[l] += subOutput[l]
-
- if elem.tag in supportedRichTextTags:
+ subOutput = {}
+ readText(child, subOutput, allLanguages)
+ if len(subOutput) > 0:
+ applyLanguageFallback(subOutput, allLanguages)
+ for l in allLanguages:
+ found[l] += subOutput[l]
+
+ if elem.tag in supportedRichTextTags:
+ if (elem.text and elem.text.strip()) or lang:
found[lang] += '</' + elem.tag + '>'
+ else:
+ for l in allLanguages:
+ found[l] += '</' + elem.tag + '>'
# Finally, if this element is a HTML Paragraph (p) or HTML List Item (li) make sure we add a new line for presentation purposes
if elem.tag == 'li' or elem.tag == 'p':