I18n: do not extract messages explicitly marked as not translatable
Some UI functions have a "translate" argument, which if set to False
specifies that the message is not to be translated. This sometimes
means that it was already translated beforehands.
But many messages were still getting extracted, sometimes twice in
different contexts. Some featured errors because the arguments of
various functions would be concatenated, such as:
```
col.label(text=iface_("Branch: %s") % bpy.app.build_branch.decode('utf-8', 'replace'), translate=False)
```
which would get extracted as:
```
msgid "Branch: %sutf-8replace"
```
Pull Request #105417
This commit is contained in:
@@ -692,6 +692,15 @@ def dump_py_messages_from_files(msgs, reports, files, settings):
|
||||
else:
|
||||
continue
|
||||
|
||||
# Skip function if it's marked as not translatable.
|
||||
do_translate = True
|
||||
for kw in node.keywords:
|
||||
if kw.arg == "translate" and not kw.value.value:
|
||||
do_translate = False
|
||||
break
|
||||
if not do_translate:
|
||||
continue
|
||||
|
||||
func_args = func_translate_args.get(func_id, {})
|
||||
|
||||
# First try to get i18n contexts, for every possible msgid id.
|
||||
|
||||
Reference in New Issue
Block a user