Benoit Marty
5 months ago
committed by
Benoit Marty
2 changed files with 70 additions and 0 deletions
@ -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