Merge #13374: utils and libraries: checking for bitcoin address in translations

85f0135eae utils: checking for bitcoin addresses in translations (Max Kaplan)

Pull request description:

  Closes #13363

Tree-SHA512: 8509b4ab004139942c847b93d7b44096a13df8e429dd05459b430a1cf7eaef16c4906ab9dc854f4e635312e1ebb064cfab1bad97fec914c7e926c83ad45cc99b
This commit is contained in:
Wladimir J. van der Laan 2018-06-08 16:53:49 +02:00
commit 56f69360dc
No known key found for this signature in database
GPG key ID: 1E4AED62986CD25D

View file

@ -30,6 +30,8 @@ SOURCE_LANG = 'bitcoin_en.ts'
LOCALE_DIR = 'src/qt/locale' LOCALE_DIR = 'src/qt/locale'
# Minimum number of messages for translation to be considered at all # Minimum number of messages for translation to be considered at all
MIN_NUM_MESSAGES = 10 MIN_NUM_MESSAGES = 10
# Regexp to check for Bitcoin addresses
ADDRESS_REGEXP = re.compile('([13]|bc1)[a-zA-Z0-9]{30,}')
def check_at_repository_root(): def check_at_repository_root():
if not os.path.exists('.git'): if not os.path.exists('.git'):
@ -122,6 +124,12 @@ def escape_cdata(text):
text = text.replace('"', '"') text = text.replace('"', '"')
return text return text
def contains_bitcoin_addr(text, errors):
if text != None and ADDRESS_REGEXP.search(text) != None:
errors.append('Translation "%s" contains a bitcoin address. This will be removed.' % (text))
return True
return False
def postprocess_translations(reduce_diff_hacks=False): def postprocess_translations(reduce_diff_hacks=False):
print('Checking and postprocessing...') print('Checking and postprocessing...')
@ -160,7 +168,7 @@ def postprocess_translations(reduce_diff_hacks=False):
if translation is None: if translation is None:
continue continue
errors = [] errors = []
valid = check_format_specifiers(source, translation, errors, numerus) valid = check_format_specifiers(source, translation, errors, numerus) and not contains_bitcoin_addr(translation, errors)
for error in errors: for error in errors:
print('%s: %s' % (filename, error)) print('%s: %s' % (filename, error))