Skip to content

Commit

Permalink
feat: include labels of navbar items
Browse files Browse the repository at this point in the history
  • Loading branch information
barredterra committed May 10, 2021
1 parent 2b1ecff commit e7ec57b
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions frappe/translate.py
Expand Up @@ -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":
Expand All @@ -109,21 +110,20 @@ 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")
messages += frappe.db.sql("select 'Module:', name from `tabModule Def`")
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
Expand Down Expand Up @@ -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')}, fields=['item_label'])
return [('Navbar:', row.item_label, 'Label of a Navbar Item') for row in labels]


def get_messages_from_doctype(name):
"""Extract all translatable messages for a doctype. Includes labels, Python code,
Javascript code, html templates"""
Expand Down

0 comments on commit e7ec57b

Please sign in to comment.