Benoit Marty
5 months ago
committed by
Benoit Marty
2 changed files with 70 additions and 0 deletions
@ -0,0 +1,64 @@
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env python3 |
||||
|
||||
import sys |
||||
from xml.dom import minidom |
||||
|
||||
file = sys.argv[1] |
||||
|
||||
# Arrays of forbidden terms, with exceptions for some keys |
||||
forbiddenTerms = [ |
||||
[ |
||||
"Element", |
||||
[ |
||||
# Those 2 strings are only used in debug version |
||||
"screen_advanced_settings_element_call_base_url", |
||||
"screen_advanced_settings_element_call_base_url_description", |
||||
# only used for element.io homeserver, so it's fine |
||||
"screen_server_confirmation_message_login_element_dot_io", |
||||
# "Be in your element", will probably be changed on the forks, so we can ignore. |
||||
"screen_onboarding_welcome_title", |
||||
] |
||||
] |
||||
] |
||||
|
||||
content = minidom.parse(file) |
||||
|
||||
errors = [] |
||||
|
||||
### Strings |
||||
for elem in content.getElementsByTagName('string'): |
||||
name = elem.attributes['name'].value |
||||
# Continue if value is empty |
||||
child = elem.firstChild |
||||
if child is None: |
||||
# Should not happen |
||||
continue |
||||
value = child.nodeValue |
||||
# If value contains a forbidden term, add the error to errors |
||||
for (term, exceptions) in forbiddenTerms: |
||||
if term in value and name not in exceptions: |
||||
errors.append('Forbidden term "' + term + '" in string: ' + name + ": " + value) |
||||
|
||||
### Plurals |
||||
for elem in content.getElementsByTagName('plurals'): |
||||
name = elem.attributes['name'].value |
||||
for it in elem.childNodes: |
||||
if it.nodeType != it.ELEMENT_NODE: |
||||
continue |
||||
# Continue if value is empty |
||||
child = it.firstChild |
||||
if child is None: |
||||
# Should not happen |
||||
continue |
||||
value = child.nodeValue |
||||
# If value contains a forbidden term, add the error to errors |
||||
for (term, exceptions) in forbiddenTerms: |
||||
if term in value and name not in exceptions: |
||||
errors.append('Forbidden term "' + term + '" in plural: ' + name + ": " + value) |
||||
|
||||
# If errors is not empty print the report |
||||
if errors: |
||||
print('Error(s) in file ' + file + ":", file=sys.stderr) |
||||
for error in errors: |
||||
print(" - " + error, file=sys.stderr) |
||||
sys.exit(1) |
Loading…
Reference in new issue