fix: translations (#12942)
* fix: get_messages_from_include_files * feat: include labels of navbar items * refactor: strip -> lstrip Co-authored-by: gavin <gavin18d@gmail.com>
This commit is contained in:
parent
46e4963d86
commit
67ceab88ff
1 changed files with 24 additions and 6 deletions
|
|
@ -98,6 +98,7 @@ def get_dict(fortype, name=None):
|
|||
translation_assets = cache.hget("translation_assets", frappe.local.lang, shared=True) or {}
|
||||
|
||||
if not asset_key in translation_assets:
|
||||
messages = []
|
||||
if fortype=="doctype":
|
||||
messages = get_messages_from_doctype(name)
|
||||
elif fortype=="page":
|
||||
|
|
@ -109,14 +110,12 @@ def get_dict(fortype, name=None):
|
|||
elif fortype=="jsfile":
|
||||
messages = get_messages_from_file(name)
|
||||
elif fortype=="boot":
|
||||
messages = []
|
||||
apps = frappe.get_all_apps(True)
|
||||
for app in apps:
|
||||
messages.extend(get_server_messages(app))
|
||||
messages = deduplicate_messages(messages)
|
||||
|
||||
messages += frappe.db.sql("""select 'navbar', item_label from `tabNavbar Item` where item_label is not null""")
|
||||
messages = get_messages_from_include_files()
|
||||
messages += get_messages_from_navbar()
|
||||
messages += get_messages_from_include_files()
|
||||
messages += frappe.db.sql("select 'Print Format:', name from `tabPrint Format`")
|
||||
messages += frappe.db.sql("select 'DocType:', name from tabDocType")
|
||||
messages += frappe.db.sql("select 'Role:', name from tabRole")
|
||||
|
|
@ -124,6 +123,7 @@ def get_dict(fortype, name=None):
|
|||
messages += frappe.db.sql("select '', format from `tabWorkspace Shortcut` where format is not null")
|
||||
messages += frappe.db.sql("select '', title from `tabOnboarding Step`")
|
||||
|
||||
messages = deduplicate_messages(messages)
|
||||
message_dict = make_dict_from_messages(messages, load_user_translation=False)
|
||||
message_dict.update(get_dict_from_hooks(fortype, name))
|
||||
# remove untranslated
|
||||
|
|
@ -320,10 +320,22 @@ def get_messages_for_app(app, deduplicate=True):
|
|||
|
||||
# server_messages
|
||||
messages.extend(get_server_messages(app))
|
||||
|
||||
# messages from navbar settings
|
||||
messages.extend(get_messages_from_navbar())
|
||||
|
||||
if deduplicate:
|
||||
messages = deduplicate_messages(messages)
|
||||
|
||||
return messages
|
||||
|
||||
|
||||
def get_messages_from_navbar():
|
||||
"""Return all labels from Navbar Items, as specified in Navbar Settings."""
|
||||
labels = frappe.get_all('Navbar Item', filters={'item_label': ('is', 'set')}, pluck='item_label')
|
||||
return [('Navbar:', label, 'Label of a Navbar Item') for label in labels]
|
||||
|
||||
|
||||
def get_messages_from_doctype(name):
|
||||
"""Extract all translatable messages for a doctype. Includes labels, Python code,
|
||||
Javascript code, html templates"""
|
||||
|
|
@ -490,8 +502,14 @@ def get_server_messages(app):
|
|||
def get_messages_from_include_files(app_name=None):
|
||||
"""Returns messages from js files included at time of boot like desk.min.js for desk and web"""
|
||||
messages = []
|
||||
for file in (frappe.get_hooks("app_include_js", app_name=app_name) or []) + (frappe.get_hooks("web_include_js", app_name=app_name) or []):
|
||||
messages.extend(get_messages_from_file(os.path.join(frappe.local.sites_path, file)))
|
||||
app_include_js = frappe.get_hooks("app_include_js", app_name=app_name) or []
|
||||
web_include_js = frappe.get_hooks("web_include_js", app_name=app_name) or []
|
||||
include_js = app_include_js + web_include_js
|
||||
|
||||
for js_path in include_js:
|
||||
relative_path = os.path.join(frappe.local.sites_path, js_path.lstrip('/'))
|
||||
messages_from_file = get_messages_from_file(relative_path)
|
||||
messages.extend(messages_from_file)
|
||||
|
||||
return messages
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue