/api/method/erpnext. Leave it empty to record every request.`,
+ },
+ {
+ fieldtype: "Column Break",
+ fieldname: "background_col",
+ label: "Background Jobs",
+ },
+
+ {
+ fieldname: "record_jobs",
+ fieldtype: "Check",
+ label: "Record Background Jobs",
+ default: 1,
+ },
+ {
+ fieldname: "jobs_filter",
+ fieldtype: "Data",
+ label: "Background Jobs filter",
+ default: "",
+ depends_on: "record_jobs",
+ description: `This will be used for filtering jobs which will be recorded.
+ You can use this to avoid slowing down other jobs. e.g. email_queue.pull.
+ Leave it empty to record every job.`,
+ },
+ {
+ fieldtype: "Section Break",
+ fieldname: "sql_section",
+ label: "SQL",
+ },
+ {
+ fieldname: "record_sql",
+ fieldtype: "Check",
+ label: "Record SQL queries",
+ default: 1,
+ },
+ {
+ fieldname: "explain",
+ fieldtype: "Check",
+ label: "Generate EXPLAIN for SQL queries",
+ default: 1,
+ },
+ {
+ fieldname: "capture_stack",
+ fieldtype: "Check",
+ label: "Capture callstack of SQL queries",
+ default: 1,
+ },
+ {
+ fieldtype: "Section Break",
+ fieldname: "python_section",
+ label: "Python",
+ },
+ {
+ fieldname: "profile",
+ fieldtype: "Check",
+ label: "Run cProfile",
+ default: 0,
+ description:
+ "Warning: cProfile adds a lot of overhead. For best results, disable stack capturing when using cProfile.",
+ },
+ ],
+ (values) => {
+ frappe.xcall("frappe.recorder.start", values).then(() => {
+ listview.refresh();
+ listview.enabled = true;
+ me.refresh_controls(listview);
+ });
+ },
+ __("Configure Recorder"),
+ __("Start Recordig")
+ );
+ },
+
update_indicators(listview) {
if (listview.enabled) {
listview.page.set_indicator(__("Active"), "green");
diff --git a/frappe/core/doctype/role_profile/role_profile.py b/frappe/core/doctype/role_profile/role_profile.py
index 22a6d0a9a7..d0fd42edfa 100644
--- a/frappe/core/doctype/role_profile/role_profile.py
+++ b/frappe/core/doctype/role_profile/role_profile.py
@@ -25,7 +25,11 @@ class RoleProfile(Document):
self.name = self.role_profile
def on_update(self):
- self.queue_action("update_all_users", now=frappe.flags.in_test)
+ self.queue_action(
+ "update_all_users",
+ now=frappe.flags.in_test or frappe.flags.in_install,
+ enqueue_after_commit=True,
+ )
def update_all_users(self):
"""Changes in role_profile reflected across all its user"""
diff --git a/frappe/core/doctype/server_script/test_server_script.py b/frappe/core/doctype/server_script/test_server_script.py
index b83d1edda4..f53d69304a 100644
--- a/frappe/core/doctype/server_script/test_server_script.py
+++ b/frappe/core/doctype/server_script/test_server_script.py
@@ -238,7 +238,6 @@ frappe.qb.from_(todo).select(todo.name).where(todo.name == "{todo.name}").run()
script.execute_method()
def test_server_script_rate_limiting(self):
- # why not
script1 = frappe.get_doc(
doctype="Server Script",
name="rate_limited_server_script",
diff --git a/frappe/core/doctype/system_settings/system_settings.json b/frappe/core/doctype/system_settings/system_settings.json
index 8f6ee3ca94..4d2b2ea46a 100644
--- a/frappe/core/doctype/system_settings/system_settings.json
+++ b/frappe/core/doctype/system_settings/system_settings.json
@@ -94,7 +94,9 @@
"dormant_days",
"telemetry_section",
"allow_error_traceback",
- "enable_telemetry"
+ "enable_telemetry",
+ "search_section",
+ "link_field_results_limit"
],
"fields": [
{
@@ -634,12 +636,24 @@
{
"fieldname": "column_break_uhqk",
"fieldtype": "Column Break"
+ },
+ {
+ "fieldname": "search_section",
+ "fieldtype": "Section Break",
+ "label": "Search"
+ },
+ {
+ "default": "10",
+ "fieldname": "link_field_results_limit",
+ "fieldtype": "Int",
+ "label": "Link Field Results Limit",
+ "non_negative": 1
}
],
"icon": "fa fa-cog",
"issingle": 1,
"links": [],
- "modified": "2023-12-08 15:52:37.525003",
+ "modified": "2024-01-26 11:29:20.924425",
"modified_by": "Administrator",
"module": "Core",
"name": "System Settings",
diff --git a/frappe/core/doctype/system_settings/system_settings.py b/frappe/core/doctype/system_settings/system_settings.py
index 1a548b580b..013172a572 100644
--- a/frappe/core/doctype/system_settings/system_settings.py
+++ b/frappe/core/doctype/system_settings/system_settings.py
@@ -61,6 +61,7 @@ class SystemSettings(Document):
hide_footer_in_auto_email_reports: DF.Check
language: DF.Link
lifespan_qrcode_image: DF.Int
+ link_field_results_limit: DF.Int
login_with_email_link: DF.Check
login_with_email_link_expiry: DF.Int
logout_on_password_reset: DF.Check
@@ -94,6 +95,7 @@ class SystemSettings(Document):
two_factor_method: DF.Literal["OTP App", "SMS", "Email"]
welcome_email_template: DF.Link | None
# end: auto-generated types
+
def validate(self):
from frappe.twofactor import toggle_two_factor_auth
@@ -130,6 +132,16 @@ class SystemSettings(Document):
self.validate_backup_limit()
self.validate_file_extensions()
+ if not self.link_field_results_limit:
+ self.link_field_results_limit = 10
+
+ if self.link_field_results_limit > 50:
+ self.link_field_results_limit = 50
+ label = _(self.meta.get_label("link_field_results_limit"))
+ frappe.msgprint(
+ _("{0} can not be more than {1}").format(label, 50), alert=True, indicator="yellow"
+ )
+
def validate_user_pass_login(self):
if not self.disable_user_pass_login:
return
diff --git a/frappe/core/doctype/user/user.py b/frappe/core/doctype/user/user.py
index 640048d93a..ec95d54094 100644
--- a/frappe/core/doctype/user/user.py
+++ b/frappe/core/doctype/user/user.py
@@ -725,12 +725,8 @@ class User(Document):
3. If allow_login_using_user_name is set, you can use username while finding the user.
"""
- login_with_mobile = cint(
- frappe.db.get_single_value("System Settings", "allow_login_using_mobile_number")
- )
- login_with_username = cint(
- frappe.db.get_single_value("System Settings", "allow_login_using_user_name")
- )
+ login_with_mobile = cint(frappe.get_system_settings("allow_login_using_mobile_number"))
+ login_with_username = cint(frappe.get_system_settings("allow_login_using_user_name"))
or_filters = [{"name": user_name}]
if login_with_mobile:
@@ -840,8 +836,8 @@ def update_password(
else:
user = res["user"]
- logout_all_sessions = cint(logout_all_sessions) or frappe.db.get_single_value(
- "System Settings", "logout_on_password_reset"
+ logout_all_sessions = cint(logout_all_sessions) or frappe.get_system_settings(
+ "logout_on_password_reset"
)
_update_password(user, new_password, logout_all_sessions=cint(logout_all_sessions))
@@ -933,7 +929,7 @@ def _get_user_for_update_password(key, old_password):
result.user, last_reset_password_key_generated_on = user or (None, None)
if result.user:
reset_password_link_expiry = cint(
- frappe.db.get_single_value("System Settings", "reset_password_link_expiry_duration")
+ frappe.get_system_settings("reset_password_link_expiry_duration")
)
if (
reset_password_link_expiry
@@ -1018,7 +1014,7 @@ def sign_up(email: str, full_name: str, redirect_to: str) -> tuple[int, str]:
@frappe.whitelist(allow_guest=True)
-@rate_limit(limit=get_password_reset_limit, seconds=24 * 60 * 60)
+@rate_limit(limit=get_password_reset_limit, seconds=60 * 60)
def reset_password(user: str) -> str:
if user == "Administrator":
return "not allowed"
@@ -1254,34 +1250,37 @@ def create_contact(user, ignore_links=False, ignore_mandatory=False):
except frappe.DuplicateEntryError:
pass
else:
- contact = frappe.get_doc("Contact", contact_name)
- contact.first_name = user.first_name
- contact.last_name = user.last_name
- contact.gender = user.gender
+ try:
+ contact = frappe.get_doc("Contact", contact_name)
+ contact.first_name = user.first_name
+ contact.last_name = user.last_name
+ contact.gender = user.gender
- # Add mobile number if phone does not exists in contact
- if user.phone and not any(new_contact.phone == user.phone for new_contact in contact.phone_nos):
- # Set primary phone if there is no primary phone number
- contact.add_phone(
- user.phone,
- is_primary_phone=not any(
- new_contact.is_primary_phone == 1 for new_contact in contact.phone_nos
- ),
- )
+ # Add mobile number if phone does not exists in contact
+ if user.phone and not any(new_contact.phone == user.phone for new_contact in contact.phone_nos):
+ # Set primary phone if there is no primary phone number
+ contact.add_phone(
+ user.phone,
+ is_primary_phone=not any(
+ new_contact.is_primary_phone == 1 for new_contact in contact.phone_nos
+ ),
+ )
- # Add mobile number if mobile does not exists in contact
- if user.mobile_no and not any(
- new_contact.phone == user.mobile_no for new_contact in contact.phone_nos
- ):
- # Set primary mobile if there is no primary mobile number
- contact.add_phone(
- user.mobile_no,
- is_primary_mobile_no=not any(
- new_contact.is_primary_mobile_no == 1 for new_contact in contact.phone_nos
- ),
- )
+ # Add mobile number if mobile does not exists in contact
+ if user.mobile_no and not any(
+ new_contact.phone == user.mobile_no for new_contact in contact.phone_nos
+ ):
+ # Set primary mobile if there is no primary mobile number
+ contact.add_phone(
+ user.mobile_no,
+ is_primary_mobile_no=not any(
+ new_contact.is_primary_mobile_no == 1 for new_contact in contact.phone_nos
+ ),
+ )
- contact.save(ignore_permissions=True)
+ contact.save(ignore_permissions=True)
+ except frappe.TimestampMismatchError:
+ raise frappe.RetryBackgroundJobError
def get_restricted_ip_list(user):
diff --git a/frappe/core/doctype/user_permission/user_permission_list.js b/frappe/core/doctype/user_permission/user_permission_list.js
index ce5e624403..45602b973c 100644
--- a/frappe/core/doctype/user_permission/user_permission_list.js
+++ b/frappe/core/doctype/user_permission/user_permission_list.js
@@ -121,7 +121,7 @@ frappe.listview_settings["User Permission"] = {
callback: function (r) {
if (r.message === 1) {
frappe.show_alert({
- message: __("User Permissions created sucessfully"),
+ message: __("User Permissions created successfully"),
indicator: "blue",
});
} else {
diff --git a/frappe/core/page/permission_manager/permission_manager.js b/frappe/core/page/permission_manager/permission_manager.js
index f25ec6d4ad..308bbfedba 100644
--- a/frappe/core/page/permission_manager/permission_manager.js
+++ b/frappe/core/page/permission_manager/permission_manager.js
@@ -253,6 +253,10 @@ frappe.PermissionEngine = class PermissionEngine {
if (!d.is_submittable && ["submit", "cancel", "amend"].includes(r)) return;
if (d.in_create && ["create", "delete"].includes(r)) return;
this.add_check(perm_container, d, r);
+
+ if (d.if_owner && r == "report") {
+ perm_container.find("div[data-fieldname='report']").toggle(false);
+ }
});
// buttons
@@ -414,6 +418,13 @@ frappe.PermissionEngine = class PermissionEngine {
chk.prop("checked", !chk.prop("checked"));
} else {
me.get_perm(args.role)[args.ptype] = args.value;
+
+ if (args.ptype == "if_owner") {
+ let report_checkbox = chk
+ .closest("div.row")
+ .find("div[data-fieldname='report']");
+ report_checkbox.toggle(!args.value);
+ }
}
},
});
diff --git a/frappe/core/page/permission_manager/permission_manager.py b/frappe/core/page/permission_manager/permission_manager.py
index 71d6a4a002..64c6e7b8bb 100644
--- a/frappe/core/page/permission_manager/permission_manager.py
+++ b/frappe/core/page/permission_manager/permission_manager.py
@@ -129,8 +129,15 @@ def update(
frappe.clear_cache(doctype=doctype)
frappe.only_for("System Manager")
+
+ if ptype == "report" and value == "1" and if_owner == "1":
+ frappe.throw(_("Cannot set 'Report' permission if 'Only If Creator' permission is set"))
+
out = update_permission_property(doctype, role, permlevel, ptype, value, if_owner=if_owner)
+ if ptype == "if_owner" and value == "1":
+ update_permission_property(doctype, role, permlevel, "report", "0", if_owner=value)
+
frappe.db.after_commit.add(clear_cache)
return "refresh" if out else None
diff --git a/frappe/core/workspace/build/build.json b/frappe/core/workspace/build/build.json
index ad6cd2d287..015b771ed6 100644
--- a/frappe/core/workspace/build/build.json
+++ b/frappe/core/workspace/build/build.json
@@ -13,21 +13,71 @@
"label": "Build",
"links": [
{
+ "description": "Customize properties, naming, fields and more for standard doctypes",
"hidden": 0,
"is_query_report": 0,
- "label": "Models",
- "link_count": 0,
+ "label": "Customization",
+ "link_count": 4,
"link_type": "DocType",
"onboard": 0,
- "only_for": "",
"type": "Card Break"
},
{
"hidden": 0,
"is_query_report": 0,
- "label": "DocType",
+ "label": "Customize Form",
"link_count": 0,
- "link_to": "DocType",
+ "link_to": "Customize Form",
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Link"
+ },
+ {
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Custom Field",
+ "link_count": 0,
+ "link_to": "Custom Field",
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Link"
+ },
+ {
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Custom Translation",
+ "link_count": 0,
+ "link_to": "Translation",
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Link"
+ },
+ {
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Navbar Settings",
+ "link_count": 0,
+ "link_to": "Navbar Settings",
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Link"
+ },
+ {
+ "description": "Group your custom doctypes under modules",
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Modules",
+ "link_count": 2,
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Card Break"
+ },
+ {
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Module Def",
+ "link_count": 0,
+ "link_to": "Module Def",
"link_type": "DocType",
"onboard": 0,
"only_for": "",
@@ -36,22 +86,112 @@
{
"hidden": 0,
"is_query_report": 0,
- "label": "Workflow",
+ "label": "Module Onboarding",
"link_count": 0,
- "link_to": "Workflow",
+ "link_to": "Module Onboarding",
"link_type": "DocType",
"onboard": 0,
"only_for": "",
"type": "Link"
},
{
+ "description": "Monitor logs for errors, background jobs, communications, and user activity",
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "System Logs",
+ "link_count": 5,
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Card Break"
+ },
+ {
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Background Jobs",
+ "link_count": 0,
+ "link_to": "RQ Job",
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Link"
+ },
+ {
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Scheduled Jobs Logs",
+ "link_count": 0,
+ "link_to": "Scheduled Job Log",
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Link"
+ },
+ {
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Error Logs",
+ "link_count": 0,
+ "link_to": "Error Log",
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Link"
+ },
+ {
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Communication Logs",
+ "link_count": 0,
+ "link_to": "Communication",
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Link"
+ },
+ {
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Activity Log",
+ "link_count": 0,
+ "link_to": "Activity Log",
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Link"
+ },
+ {
+ "description": "Packages are lightweight apps (collection of Module Defs) that can be created, imported, or released right from the UI",
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Packages",
+ "link_count": 2,
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Card Break"
+ },
+ {
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Package",
+ "link_count": 0,
+ "link_to": "Package",
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Link"
+ },
+ {
+ "hidden": 0,
+ "is_query_report": 0,
+ "label": "Package Import",
+ "link_count": 0,
+ "link_to": "Package Import",
+ "link_type": "DocType",
+ "onboard": 0,
+ "type": "Link"
+ },
+ {
+ "description": "Automate processes and extend standard functionality using scripts and background jobs",
"hidden": 0,
"is_query_report": 0,
"label": "Scripting",
- "link_count": 0,
+ "link_count": 3,
"link_type": "DocType",
"onboard": 0,
- "only_for": "",
"type": "Card Break"
},
{
@@ -88,38 +228,12 @@
"type": "Link"
},
{
- "hidden": 0,
- "is_query_report": 0,
- "label": "Packages",
- "link_count": 2,
- "onboard": 0,
- "type": "Card Break"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "Package",
- "link_count": 0,
- "link_to": "Package",
- "link_type": "DocType",
- "onboard": 0,
- "type": "Link"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "Package Import",
- "link_count": 0,
- "link_to": "Package Import",
- "link_type": "DocType",
- "onboard": 0,
- "type": "Link"
- },
- {
+ "description": "Build your own reports, print formats, and dashboards. Create personalized workspaces for easier navigation",
"hidden": 0,
"is_query_report": 0,
"label": "Views",
"link_count": 5,
+ "link_type": "DocType",
"onboard": 0,
"type": "Card Break"
},
@@ -177,115 +291,10 @@
"type": "Link"
},
{
+ "description": "Create new forms and views with doctypes. Set up multi-level workflows for approval",
"hidden": 0,
"is_query_report": 0,
- "label": "Customization",
- "link_count": 4,
- "onboard": 0,
- "type": "Card Break"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "Customize Form",
- "link_count": 0,
- "link_to": "Customize Form",
- "link_type": "DocType",
- "onboard": 0,
- "type": "Link"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "Custom Field",
- "link_count": 0,
- "link_to": "Custom Field",
- "link_type": "DocType",
- "onboard": 0,
- "type": "Link"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "Custom Translation",
- "link_count": 0,
- "link_to": "Translation",
- "link_type": "DocType",
- "onboard": 0,
- "type": "Link"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "Navbar Settings",
- "link_count": 0,
- "link_to": "Navbar Settings",
- "link_type": "DocType",
- "onboard": 0,
- "type": "Link"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "System Logs",
- "link_count": 5,
- "onboard": 0,
- "type": "Card Break"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "Background Jobs",
- "link_count": 0,
- "link_to": "RQ Job",
- "link_type": "DocType",
- "onboard": 0,
- "type": "Link"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "Scheduled Jobs Logs",
- "link_count": 0,
- "link_to": "Scheduled Job Log",
- "link_type": "DocType",
- "onboard": 0,
- "type": "Link"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "Error Logs",
- "link_count": 0,
- "link_to": "Error Log",
- "link_type": "DocType",
- "onboard": 0,
- "type": "Link"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "Communication Logs",
- "link_count": 0,
- "link_to": "Communication",
- "link_type": "DocType",
- "onboard": 0,
- "type": "Link"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "Activity Log",
- "link_count": 0,
- "link_to": "Activity Log",
- "link_type": "DocType",
- "onboard": 0,
- "type": "Link"
- },
- {
- "hidden": 0,
- "is_query_report": 0,
- "label": "Modules",
+ "label": "Models",
"link_count": 2,
"link_type": "DocType",
"onboard": 0,
@@ -294,9 +303,9 @@
{
"hidden": 0,
"is_query_report": 0,
- "label": "Module Def",
+ "label": "DocType",
"link_count": 0,
- "link_to": "Module Def",
+ "link_to": "DocType",
"link_type": "DocType",
"onboard": 0,
"only_for": "",
@@ -305,16 +314,16 @@
{
"hidden": 0,
"is_query_report": 0,
- "label": "Module Onboarding",
+ "label": "Workflow",
"link_count": 0,
- "link_to": "Module Onboarding",
+ "link_to": "Workflow",
"link_type": "DocType",
"onboard": 0,
"only_for": "",
"type": "Link"
}
],
- "modified": "2024-01-02 15:38:42.806824",
+ "modified": "2024-01-23 17:27:44.769958",
"modified_by": "Administrator",
"module": "Core",
"name": "Build",
@@ -325,7 +334,7 @@
"quick_lists": [],
"restrict_to_domain": "",
"roles": [],
- "sequence_id": 16.0,
+ "sequence_id": 27.0,
"shortcuts": [
{
"color": "Grey",
diff --git a/frappe/custom/doctype/custom_field/custom_field.js b/frappe/custom/doctype/custom_field/custom_field.js
index 38c234a507..d0c61b6d8c 100644
--- a/frappe/custom/doctype/custom_field/custom_field.js
+++ b/frappe/custom/doctype/custom_field/custom_field.js
@@ -112,27 +112,30 @@ frappe.ui.form.on("Custom Field", {
}
},
add_rename_field(frm) {
- frm.add_custom_button(__("Rename Fieldname"), () => {
- frappe.prompt(
- {
- fieldtype: "Data",
- label: __("Fieldname"),
- fieldname: "fieldname",
- reqd: 1,
- },
- function (data) {
- frappe.call({
- method: "frappe.custom.doctype.custom_field.custom_field.rename_fieldname",
- args: {
- custom_field: frm.doc.name,
- fieldname: data.fieldname,
- },
- });
- },
- __("Rename Fieldname"),
- __("Rename")
- );
- });
+ if (!frm.is_new()) {
+ frm.add_custom_button(__("Rename Fieldname"), () => {
+ frappe.prompt(
+ {
+ fieldtype: "Data",
+ label: __("Fieldname"),
+ fieldname: "fieldname",
+ reqd: 1,
+ default: frm.doc.fieldname,
+ },
+ function (data) {
+ frappe.call({
+ method: "frappe.custom.doctype.custom_field.custom_field.rename_fieldname",
+ args: {
+ custom_field: frm.doc.name,
+ fieldname: data.fieldname,
+ },
+ });
+ },
+ __("Rename Fieldname"),
+ __("Rename")
+ );
+ });
+ }
},
});
diff --git a/frappe/custom/doctype/customize_form_field/customize_form_field.json b/frappe/custom/doctype/customize_form_field/customize_form_field.json
index 67c6c8ba95..0dfd7a6c45 100644
--- a/frappe/custom/doctype/customize_form_field/customize_form_field.json
+++ b/frappe/custom/doctype/customize_form_field/customize_form_field.json
@@ -130,6 +130,7 @@
},
{
"default": "0",
+ "depends_on": "eval:!doc.is_virtual",
"fieldname": "in_list_view",
"fieldtype": "Check",
"label": "In List View"
@@ -483,7 +484,7 @@
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
- "modified": "2023-12-08 15:52:37.525003",
+ "modified": "2024-02-01 15:56:39.171633",
"modified_by": "Administrator",
"module": "Custom",
"name": "Customize Form Field",
diff --git a/frappe/custom/doctype/customize_form_field/customize_form_field.py b/frappe/custom/doctype/customize_form_field/customize_form_field.py
index 59b0155a98..76ab6535e3 100644
--- a/frappe/custom/doctype/customize_form_field/customize_form_field.py
+++ b/frappe/custom/doctype/customize_form_field/customize_form_field.py
@@ -110,4 +110,5 @@ class CustomizeFormField(Document):
unique: DF.Check
width: DF.Data | None
# end: auto-generated types
+
pass
diff --git a/frappe/database/__init__.py b/frappe/database/__init__.py
index e16ff2ff91..178ad80fc9 100644
--- a/frappe/database/__init__.py
+++ b/frappe/database/__init__.py
@@ -23,17 +23,17 @@ def setup_database(force, verbose=None, no_mariadb_socket=False):
)
-def bootstrap_database(db_name, verbose=None, source_sql=None):
+def bootstrap_database(verbose=None, source_sql=None):
import frappe
if frappe.conf.db_type == "postgres":
import frappe.database.postgres.setup_db
- return frappe.database.postgres.setup_db.bootstrap_database(db_name, verbose, source_sql)
+ return frappe.database.postgres.setup_db.bootstrap_database(verbose, source_sql)
else:
import frappe.database.mariadb.setup_db
- return frappe.database.mariadb.setup_db.bootstrap_database(db_name, verbose, source_sql)
+ return frappe.database.mariadb.setup_db.bootstrap_database(verbose, source_sql)
def drop_user_and_database(db_name, db_user):
@@ -49,17 +49,19 @@ def drop_user_and_database(db_name, db_user):
return frappe.database.mariadb.setup_db.drop_user_and_database(db_name, db_user)
-def get_db(host=None, user=None, password=None, port=None):
+def get_db(host=None, user=None, password=None, port=None, cur_db_name=None):
import frappe
if frappe.conf.db_type == "postgres":
import frappe.database.postgres.database
- return frappe.database.postgres.database.PostgresDatabase(host, user, password, port=port)
+ return frappe.database.postgres.database.PostgresDatabase(
+ host, user, password, port, cur_db_name
+ )
else:
import frappe.database.mariadb.database
- return frappe.database.mariadb.database.MariaDBDatabase(host, user, password, port=port)
+ return frappe.database.mariadb.database.MariaDBDatabase(host, user, password, port, cur_db_name)
def get_command(
@@ -73,12 +75,7 @@ def get_command(
else:
bin, bin_name = which("psql"), "psql"
- host = frappe.utils.esc(host, "$ ")
- user = frappe.utils.esc(user, "$ ")
- db_name = frappe.utils.esc(db_name, "$ ")
-
if password:
- password = frappe.utils.esc(password, "$ ")
conn_string = f"postgresql://{user}:{password}@{host}:{port}/{db_name}"
else:
conn_string = f"postgresql://{user}@{host}:{port}/{db_name}"
@@ -94,10 +91,6 @@ def get_command(
else:
bin, bin_name = which("mariadb") or which("mysql"), "mariadb"
- host = frappe.utils.esc(host, "$ ")
- user = frappe.utils.esc(user, "$ ")
- db_name = frappe.utils.esc(db_name, "$ ")
-
command = [
f"--user={user}",
f"--host={host}",
@@ -105,7 +98,6 @@ def get_command(
]
if password:
- password = frappe.utils.esc(password, "$ ")
command.append(f"--password={password}")
if dump:
diff --git a/frappe/database/database.py b/frappe/database/database.py
index 0a002e670e..e8e29dbc2a 100644
--- a/frappe/database/database.py
+++ b/frappe/database/database.py
@@ -73,27 +73,20 @@ class Database:
host=None,
user=None,
password=None,
- ac_name=None,
- use_default=0,
port=None,
+ cur_db_name=None,
):
self.setup_type_map()
- self.host = host or frappe.conf.db_host
- self.port = port or frappe.conf.db_port
- self.user = user or frappe.conf.db_user or frappe.conf.db_name
- self.cur_db_name = frappe.conf.db_name
+ self.host = host
+ self.port = port
+ self.user = user
+ self.password = password
+ self.cur_db_name = cur_db_name
self._conn = None
- if ac_name:
- self.user = ac_name or frappe.conf.db_name
-
- if use_default:
- self.user = frappe.conf.db_name
-
self.transaction_writes = 0
self.auto_commit_on_many_writes = 0
- self.password = password or frappe.conf.db_password
self.value_cache = {}
self.logger = frappe.logger("database")
self.logger.setLevel("WARNING")
diff --git a/frappe/database/db_manager.py b/frappe/database/db_manager.py
index 7904d5322b..ef399aac6c 100644
--- a/frappe/database/db_manager.py
+++ b/frappe/database/db_manager.py
@@ -16,21 +16,7 @@ class DbManager:
def create_user(self, user, password, host=None):
host = host or self.get_current_host()
password_predicate = f" IDENTIFIED BY '{password}'" if password else ""
- self.db.sql(f"CREATE USER '{user}'@'{host}'{password_predicate}")
-
- def does_user_exist(self, username: str, host: str | None = None) -> bool:
- return (
- self.db.sql(
- f"SELECT EXISTS(SELECT 1 FROM mysql.user WHERE user = '{username}' and "
- f"host = '{host or self.get_current_host()}')"
- )[0][0]
- == 1
- )
-
- def set_user_password(self, username: str, password: str, host: str | None = None) -> None:
- self.db.sql(
- f"SET PASSWORD FOR '{username}'@'{host or self.get_current_host()}' = PASSWORD('{password}')"
- )
+ self.db.sql(f"CREATE USER IF NOT EXISTS '{user}'@'{host}'{password_predicate}")
def delete_user(self, target, host=None):
host = host or self.get_current_host()
diff --git a/frappe/database/mariadb/database.py b/frappe/database/mariadb/database.py
index 4c4c468fe4..f91fe749bf 100644
--- a/frappe/database/mariadb/database.py
+++ b/frappe/database/mariadb/database.py
@@ -124,7 +124,7 @@ class MariaDBConnectionUtil:
"use_unicode": True,
}
- if self.user not in (frappe.flags.root_login, "root"):
+ if self.cur_db_name:
conn_settings["database"] = self.cur_db_name
if self.port:
@@ -383,6 +383,7 @@ class MariaDBDatabase(MariaDBConnectionUtil, MariaDBExceptionUtil, Database):
WHERE Column_name = "{fieldname}"
AND Seq_in_index = 1
AND Non_unique={int(not unique)}
+ AND Index_type != 'FULLTEXT'
""",
as_dict=True,
)
diff --git a/frappe/database/mariadb/setup_db.py b/frappe/database/mariadb/setup_db.py
index 9908b6d5a5..28fa232022 100644
--- a/frappe/database/mariadb/setup_db.py
+++ b/frappe/database/mariadb/setup_db.py
@@ -34,15 +34,9 @@ def setup_database(force, verbose, no_mariadb_socket=False):
if no_mariadb_socket:
dbman_kwargs["host"] = "%"
- if dbman.does_user_exist(db_user):
- print("User exists", db_user)
- dbman.set_user_password(db_user, frappe.conf.db_password, **dbman_kwargs)
- if verbose:
- print("Re-used existing user %s" % db_user)
- else:
- dbman.create_user(db_user, frappe.conf.db_password, **dbman_kwargs)
- if verbose:
- print("Created user %s" % db_user)
+ dbman.create_user(db_user, frappe.conf.db_password, **dbman_kwargs)
+ if verbose:
+ print(f"Created or updated user {db_user}")
if force or (db_name not in dbman.get_database_list()):
dbman.drop_database(db_name)
@@ -73,17 +67,17 @@ def drop_user_and_database(
dbman.delete_user(db_user)
-def bootstrap_database(db_name, verbose, source_sql=None):
+def bootstrap_database(verbose, source_sql=None):
import sys
- frappe.connect(db_name=db_name)
+ frappe.connect()
if not check_database_settings():
print("Database settings do not match expected values; stopping database setup.")
sys.exit(1)
import_db_from_sql(source_sql, verbose)
- frappe.connect(db_name=db_name)
+ frappe.connect()
if "tabDefaultValue" not in frappe.db.get_tables(cached=False):
from click import secho
@@ -179,6 +173,7 @@ def get_root_connection():
port=frappe.conf.db_port,
user=frappe.flags.root_login,
password=frappe.flags.root_password,
+ cur_db_name=None,
)
return frappe.local.flags.root_connection
diff --git a/frappe/database/postgres/database.py b/frappe/database/postgres/database.py
index 2ed595d5e7..76cca1faea 100644
--- a/frappe/database/postgres/database.py
+++ b/frappe/database/postgres/database.py
@@ -161,12 +161,11 @@ class PostgresDatabase(PostgresExceptionUtil, Database):
def get_connection(self):
conn_settings = {
+ "dbname": self.cur_db_name,
"user": self.user,
"host": self.host,
"password": self.password,
}
- if self.user not in (frappe.flags.root_login, "root"):
- conn_settings["dbname"] = self.cur_db_name
if self.port:
conn_settings["port"] = self.port
diff --git a/frappe/database/postgres/setup_db.py b/frappe/database/postgres/setup_db.py
index e02b1c1280..ba45af4cad 100644
--- a/frappe/database/postgres/setup_db.py
+++ b/frappe/database/postgres/setup_db.py
@@ -29,11 +29,12 @@ def setup_database():
root_conn.close()
-def bootstrap_database(db_name, verbose, source_sql=None):
- frappe.connect(db_name=db_name)
- import_db_from_sql(source_sql, verbose)
- frappe.connect(db_name=db_name)
+def bootstrap_database(verbose, source_sql=None):
+ frappe.connect()
+ import_db_from_sql(source_sql, verbose)
+
+ frappe.connect()
if "tabDefaultValue" not in frappe.db.get_tables():
import sys
@@ -80,6 +81,7 @@ def get_root_connection():
port=frappe.conf.db_port,
user=frappe.flags.root_login,
password=frappe.flags.root_password,
+ cur_db_name=frappe.flags.root_login,
)
return frappe.local.flags.root_connection
diff --git a/frappe/desk/doctype/event/event.js b/frappe/desk/doctype/event/event.js
index 299cbe5cc3..ef2b2eb7e1 100644
--- a/frappe/desk/doctype/event/event.js
+++ b/frappe/desk/doctype/event/event.js
@@ -44,9 +44,13 @@ frappe.ui.form.on("Event", {
const [ends_on_date] = frm.doc.ends_on
? frm.doc.ends_on.split(" ")
- : frm.doc.starts_on.split(" ");
+ : frm.doc.starts_on?.split(" ") || [];
- if (frm.doc.google_meet_link && frappe.datetime.now_date() <= ends_on_date) {
+ if (
+ ends_on_date &&
+ frm.doc.google_meet_link &&
+ frappe.datetime.now_date() <= ends_on_date
+ ) {
frm.dashboard.set_headline(
__("Join video conference with {0}", [
`Google Meet`,
diff --git a/frappe/desk/doctype/note/note.py b/frappe/desk/doctype/note/note.py
index 9cc14cbc1e..ef64d17f79 100644
--- a/frappe/desk/doctype/note/note.py
+++ b/frappe/desk/doctype/note/note.py
@@ -28,6 +28,9 @@ class Note(Document):
# expire this notification in a week (default)
self.expire_notification_on = frappe.utils.add_days(self.creation, 7)
+ if not self.public and self.notify_on_login:
+ self.notify_on_login = 0
+
if not self.content:
self.content = ""
diff --git a/frappe/desk/doctype/workspace/workspace.py b/frappe/desk/doctype/workspace/workspace.py
index 06768f3da6..814be47124 100644
--- a/frappe/desk/doctype/workspace/workspace.py
+++ b/frappe/desk/doctype/workspace/workspace.py
@@ -186,6 +186,7 @@ class Workspace(Document):
"label": card.get("label"),
"type": "Card Break",
"icon": card.get("icon"),
+ "description": card.get("description"),
"hidden": card.get("hidden") or False,
"link_count": card.get("link_count"),
"idx": 1 if not self.links else self.links[-1].idx + 1,
diff --git a/frappe/desk/doctype/workspace_link/workspace_link.json b/frappe/desk/doctype/workspace_link/workspace_link.json
index a7b217be9e..5f0a082a83 100644
--- a/frappe/desk/doctype/workspace_link/workspace_link.json
+++ b/frappe/desk/doctype/workspace_link/workspace_link.json
@@ -8,6 +8,7 @@
"type",
"label",
"icon",
+ "description",
"hidden",
"link_details_section",
"link_type",
@@ -107,12 +108,20 @@
"fieldtype": "Int",
"hidden": 1,
"label": "Link Count"
+ },
+ {
+ "depends_on": "eval:doc.type == \"Card Break\"",
+ "fieldname": "description",
+ "fieldtype": "HTML Editor",
+ "ignore_xss_filter": 1,
+ "label": "Description",
+ "max_height": "7rem"
}
],
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
- "modified": "2021-06-01 11:23:28.990593",
+ "modified": "2024-01-23 17:39:16.833318",
"modified_by": "Administrator",
"module": "Desk",
"name": "Workspace Link",
@@ -121,5 +130,6 @@
"quick_entry": 1,
"sort_field": "modified",
"sort_order": "DESC",
+ "states": [],
"track_changes": 1
}
\ No newline at end of file
diff --git a/frappe/desk/doctype/workspace_link/workspace_link.py b/frappe/desk/doctype/workspace_link/workspace_link.py
index e7d6ccf68a..03da7abe47 100644
--- a/frappe/desk/doctype/workspace_link/workspace_link.py
+++ b/frappe/desk/doctype/workspace_link/workspace_link.py
@@ -15,6 +15,7 @@ class WorkspaceLink(Document):
from frappe.types import DF
dependencies: DF.Data | None
+ description: DF.HTMLEditor | None
hidden: DF.Check
icon: DF.Data | None
is_query_report: DF.Check
@@ -29,4 +30,5 @@ class WorkspaceLink(Document):
parenttype: DF.Data
type: DF.Literal["Link", "Card Break"]
# end: auto-generated types
+
pass
diff --git a/frappe/desk/form/test_form.py b/frappe/desk/form/test_form.py
index f256b03d27..5028fedf96 100644
--- a/frappe/desk/form/test_form.py
+++ b/frappe/desk/form/test_form.py
@@ -11,10 +11,3 @@ class TestForm(FrappeTestCase):
results = get_linked_docs("Role", "System Manager", linkinfo=get_linked_doctypes("Role"))
self.assertTrue("User" in results)
self.assertTrue("DocType" in results)
-
-
-if __name__ == "__main__":
- import unittest
-
- frappe.connect()
- unittest.main()
diff --git a/frappe/desk/notifications.py b/frappe/desk/notifications.py
index 4c728bdee9..090a3f6817 100644
--- a/frappe/desk/notifications.py
+++ b/frappe/desk/notifications.py
@@ -25,7 +25,7 @@ def get_notifications():
"open_count_doctype": {},
"targets": {},
}
- if frappe.flags.in_install or not frappe.db.get_single_value("System Settings", "setup_complete"):
+ if frappe.flags.in_install or not frappe.get_system_settings("setup_complete"):
return out
config = get_notification_config()
diff --git a/frappe/desk/page/setup_wizard/setup_wizard.py b/frappe/desk/page/setup_wizard/setup_wizard.py
index e5601a195c..0ae465ba55 100755
--- a/frappe/desk/page/setup_wizard/setup_wizard.py
+++ b/frappe/desk/page/setup_wizard/setup_wizard.py
@@ -196,6 +196,9 @@ def update_system_settings(args): # nosemgrep
def create_or_update_user(args): # nosemgrep
email = args.get("email")
+ if not email:
+ return
+
first_name, last_name = args.get("full_name", ""), ""
if " " in first_name:
first_name, last_name = first_name.split(" ", 1)
diff --git a/frappe/desk/query_report.py b/frappe/desk/query_report.py
index 952d30a274..e0dfcfe3f4 100644
--- a/frappe/desk/query_report.py
+++ b/frappe/desk/query_report.py
@@ -291,9 +291,9 @@ def get_prepared_report_result(report, filters, dn="", user=None):
try:
if data := json.loads(doc.get_prepared_data().decode("utf-8")):
report_data = get_report_data(doc, data)
- except Exception:
+ except Exception as e:
doc.log_error("Prepared report render failed")
- frappe.msgprint(_("Prepared report render failed"))
+ frappe.msgprint(_("Prepared report render failed") + f": {str(e)}")
doc = None
return report_data | {"prepared_report": True, "doc": doc}
diff --git a/frappe/email/doctype/auto_email_report/auto_email_report.json b/frappe/email/doctype/auto_email_report/auto_email_report.json
index 75a9e99c96..41beac3e3a 100644
--- a/frappe/email/doctype/auto_email_report/auto_email_report.json
+++ b/frappe/email/doctype/auto_email_report/auto_email_report.json
@@ -25,6 +25,7 @@
"to_date_field",
"column_break_17",
"dynamic_date_period",
+ "use_first_day_of_period",
"email_settings",
"email_to",
"day_of_week",
@@ -87,6 +88,7 @@
},
{
"default": "100",
+ "depends_on": "eval:doc.report_type=='Report Builder'",
"fieldname": "no_of_rows",
"fieldtype": "Int",
"label": "No of Rows (Max 500)"
@@ -207,10 +209,18 @@
"fieldtype": "Link",
"label": "Sender",
"options": "Email Account"
+ },
+ {
+ "default": "0",
+ "depends_on": "eval: doc.dynamic_date_period != 'Daily'",
+ "description": "To begin the date range at the start of the chosen period. For example, if 'Year' is selected as the period, the report will start from January 1st of the current year.",
+ "fieldname": "use_first_day_of_period",
+ "fieldtype": "Check",
+ "label": "Use First Day of Period"
}
],
"links": [],
- "modified": "2022-09-08 15:31:55.031023",
+ "modified": "2024-02-04 13:31:08.624648",
"modified_by": "Administrator",
"module": "Email",
"name": "Auto Email Report",
diff --git a/frappe/email/doctype/auto_email_report/auto_email_report.py b/frappe/email/doctype/auto_email_report/auto_email_report.py
index 6fe2596d7f..5549d0ba6e 100644
--- a/frappe/email/doctype/auto_email_report/auto_email_report.py
+++ b/frappe/email/doctype/auto_email_report/auto_email_report.py
@@ -2,6 +2,7 @@
# License: MIT. See LICENSE
import calendar
+import datetime
from datetime import timedelta
from email.utils import formataddr
@@ -14,8 +15,13 @@ from frappe.utils import (
add_to_date,
cint,
format_time,
+ get_first_day,
+ get_first_day_of_week,
get_link_to_form,
+ get_quarter_start,
get_url_to_report,
+ get_year_start,
+ getdate,
global_date_format,
now,
now_datetime,
@@ -57,8 +63,10 @@ class AutoEmailReport(Document):
send_if_data: DF.Check
sender: DF.Link | None
to_date_field: DF.Literal
+ use_first_day_of_period: DF.Check
user: DF.Link
# end: auto-generated types
+
def autoname(self):
self.name = _(self.report)
if frappe.db.exists("Auto Email Report", self.name):
@@ -92,7 +100,7 @@ class AutoEmailReport(Document):
max_reports_per_user = (
cint(frappe.local.conf.max_reports_per_user) # kept for backward compatibilty
- or cint(frappe.db.get_single_value("System Settings", "max_auto_email_report_per_user"))
+ or cint(frappe.get_system_settings("max_auto_email_report_per_user"))
or 20
)
@@ -207,17 +215,37 @@ class AutoEmailReport(Document):
self.filters = frappe.parse_json(self.filters)
to_date = today()
- from_date_value = {
- "Daily": ("days", -1),
- "Weekly": ("weeks", -1),
- "Monthly": ("months", -1),
- "Quarterly": ("months", -3),
- "Half Yearly": ("months", -6),
- "Yearly": ("years", -1),
- }[self.dynamic_date_period]
- from_date = add_to_date(to_date, **{from_date_value[0]: from_date_value[1]})
+ if self.use_first_day_of_period:
+ from_date = to_date
+ if self.dynamic_date_period == "Daily":
+ from_date = add_to_date(to_date, days=-1)
+ elif self.dynamic_date_period == "Weekly":
+ from_date = get_first_day_of_week(from_date)
+ elif self.dynamic_date_period == "Monthly":
+ from_date = get_first_day(from_date)
+ elif self.dynamic_date_period == "Quarterly":
+ from_date = get_quarter_start(from_date)
+ elif self.dynamic_date_period == "Half Yearly":
+ from_date = get_half_year_start(from_date)
+ elif self.dynamic_date_period == "Yearly":
+ from_date = get_year_start(from_date)
+ self.set_date_filters(from_date, to_date)
+ else:
+ from_date_value = {
+ "Daily": ("days", -1),
+ "Weekly": ("weeks", -1),
+ "Monthly": ("months", -1),
+ "Quarterly": ("months", -3),
+ "Half Yearly": ("months", -6),
+ "Yearly": ("years", -1),
+ }[self.dynamic_date_period]
+
+ from_date = add_to_date(to_date, **{from_date_value[0]: from_date_value[1]})
+ self.set_date_filters(from_date, to_date)
+
+ def set_date_filters(self, from_date, to_date):
self.filters[self.from_date_field] = from_date
self.filters[self.to_date_field] = to_date
@@ -332,3 +360,23 @@ def update_field_types(columns):
col.fieldtype = "Data"
col.options = ""
return columns
+
+
+DATE_FORMAT = "%Y-%m-%d"
+
+
+def get_half_year_start(as_str=False):
+ """
+ Returns the first day of the current half-year based on the current date.
+ """
+ today_date = getdate(today())
+
+ half_year = 1 if today_date.month <= 6 else 2
+
+ year = today_date.year if half_year == 1 else today_date.year + 1
+ month = 1 if half_year == 1 else 7
+ day = 1
+
+ result_date = datetime.date(year, month, day)
+
+ return result_date if not as_str else result_date.strftime(DATE_FORMAT)
diff --git a/frappe/email/doctype/email_queue/email_queue.py b/frappe/email/doctype/email_queue/email_queue.py
index 91ca2bbdbb..aff8782abf 100644
--- a/frappe/email/doctype/email_queue/email_queue.py
+++ b/frappe/email/doctype/email_queue/email_queue.py
@@ -131,12 +131,12 @@ class EmailQueue(Document):
def attachments_list(self):
return json.loads(self.attachments) if self.attachments else []
- def get_email_account(self):
+ def get_email_account(self, raise_error=False):
if self.email_account:
return frappe.get_cached_doc("Email Account", self.email_account)
return EmailAccount.find_outgoing(
- match_by_email=self.sender, match_by_doctype=self.reference_doctype
+ match_by_email=self.sender, match_by_doctype=self.reference_doctype, _raise_error=raise_error
)
def is_to_be_sent(self):
@@ -158,6 +158,7 @@ class EmailQueue(Document):
return
with SendMailContext(self, smtp_server_instance) as ctx:
+ ctx.fetch_smtp_server()
message = None
for recipient in self.recipients:
if recipient.is_mail_sent():
@@ -233,14 +234,16 @@ class SendMailContext:
smtp_server_instance: SMTPServer = None,
):
self.queue_doc: EmailQueue = queue_doc
- self.email_account_doc = queue_doc.get_email_account()
-
- self.smtp_server: SMTPServer = smtp_server_instance or self.email_account_doc.get_smtp_server()
-
+ self.smtp_server: SMTPServer = smtp_server_instance
self.sent_to_atleast_one_recipient = any(
rec.recipient for rec in self.queue_doc.recipients if rec.is_mail_sent()
)
+ def fetch_smtp_server(self):
+ self.email_account_doc = self.queue_doc.get_email_account(raise_error=True)
+ if not self.smtp_server:
+ self.smtp_server = self.email_account_doc.get_smtp_server()
+
def __enter__(self):
self.queue_doc.update_status(status="Sending", commit=True)
return self
@@ -733,7 +736,7 @@ class QueueBuilder:
recipients = list(set([r] + self.final_cc() + self.bcc))
q = EmailQueue.new({**queue_data, **{"recipients": recipients}}, ignore_permissions=True)
if not smtp_server_instance:
- email_account = q.get_email_account()
+ email_account = q.get_email_account(raise_error=True)
smtp_server_instance = email_account.get_smtp_server()
with suppress(Exception):
diff --git a/frappe/email/doctype/newsletter/newsletter.json b/frappe/email/doctype/newsletter/newsletter.json
index e7c902697f..e03cc506e6 100644
--- a/frappe/email/doctype/newsletter/newsletter.json
+++ b/frappe/email/doctype/newsletter/newsletter.json
@@ -3,7 +3,7 @@
"allow_guest_to_view": 1,
"allow_rename": 1,
"creation": "2013-01-10 16:34:31",
- "description": "Create and Send Newsletters",
+ "description": "Create and send emails to a specific group of subscribers periodically.",
"doctype": "DocType",
"document_type": "Other",
"engine": "InnoDB",
@@ -244,8 +244,7 @@
"fieldname": "campaign",
"fieldtype": "Link",
"label": "Campaign",
- "options": "Marketing Campaign",
- "reqd": 0
+ "options": "Marketing Campaign"
}
],
"has_web_view": 1,
@@ -254,7 +253,7 @@
"index_web_pages_for_search": 1,
"is_published_field": "published",
"links": [],
- "modified": "2023-12-29 18:04:13.270523",
+ "modified": "2024-01-30 14:05:50.645802",
"modified_by": "Administrator",
"module": "Email",
"name": "Newsletter",
diff --git a/frappe/email/receive.py b/frappe/email/receive.py
index 72a2dfce82..74d7f84dac 100644
--- a/frappe/email/receive.py
+++ b/frappe/email/receive.py
@@ -673,7 +673,7 @@ class InboundMail(Email):
content = self.content
for file in attachments:
if file.name in self.cid_map and self.cid_map[file.name]:
- content = content.replace(f"cid:{self.cid_map[file.name]}", file.file_url)
+ content = content.replace(f"cid:{self.cid_map[file.name]}", file.unique_url)
return content
def is_notification(self):
diff --git a/frappe/geo/doctype/currency/currency.json b/frappe/geo/doctype/currency/currency.json
index 00dfe248c9..9a4df0f117 100644
--- a/frappe/geo/doctype/currency/currency.json
+++ b/frappe/geo/doctype/currency/currency.json
@@ -4,7 +4,7 @@
"allow_rename": 1,
"autoname": "field:currency_name",
"creation": "2013-01-28 10:06:02",
- "description": "**Currency** Master",
+ "description": "Currency list stores the currency value, its symbol and fraction unit",
"doctype": "DocType",
"document_type": "Setup",
"engine": "InnoDB",
@@ -82,7 +82,7 @@
"idx": 1,
"index_web_pages_for_search": 1,
"links": [],
- "modified": "2024-01-17 15:37:31.605278",
+ "modified": "2024-01-30 13:18:12.053557",
"modified_by": "Administrator",
"module": "Geo",
"name": "Currency",
diff --git a/frappe/gettext/extractors/html_template.py b/frappe/gettext/extractors/html_template.py
new file mode 100644
index 0000000000..34f51e4032
--- /dev/null
+++ b/frappe/gettext/extractors/html_template.py
@@ -0,0 +1,26 @@
+from jinja2.ext import babel_extract
+
+from .utils import extract_messages_from_code
+
+
+def extract(*args, **kwargs):
+ """Extract messages from Jinja and JS microtemplates.
+
+ Reuse the babel_extract function from jinja2.ext, but handle our own implementation of `_()`.
+ To handle JS microtemplates, parse all code again using regex."""
+ fileobj = args[0] or kwargs["fileobj"]
+ print(fileobj.name)
+ code = fileobj.read().decode("utf-8")
+
+ for lineno, funcname, messages, comments in babel_extract(*args, **kwargs):
+ if funcname == "_" and isinstance(messages, tuple) and len(messages) > 1:
+ funcname = "pgettext"
+ messages = (messages[-1], messages[0]) # (context, message)
+
+ yield lineno, funcname, messages, comments
+
+ for lineno, message, context in extract_messages_from_code(code):
+ if context:
+ yield lineno, "pgettext", (context, message), []
+ else:
+ yield lineno, "_", message, []
diff --git a/frappe/gettext/extractors/jinja2.py b/frappe/gettext/extractors/jinja2.py
deleted file mode 100644
index ee07ac6cee..0000000000
--- a/frappe/gettext/extractors/jinja2.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from jinja2.ext import babel_extract
-
-
-def extract(*args, **kwargs):
- """Reuse the babel_extract function from jinja2.ext, but handle our own implementation of `_()`"""
- for lineno, funcname, messages, comments in babel_extract(*args, **kwargs):
- if funcname == "_" and isinstance(messages, tuple) and len(messages) > 1:
- funcname = "pgettext"
- messages = (messages[-1], messages[0]) # (context, message)
-
- yield lineno, funcname, messages, comments
diff --git a/frappe/gettext/extractors/utils.py b/frappe/gettext/extractors/utils.py
new file mode 100644
index 0000000000..e088a8409b
--- /dev/null
+++ b/frappe/gettext/extractors/utils.py
@@ -0,0 +1,81 @@
+import re
+
+import frappe
+
+TRANSLATE_PATTERN = re.compile(
+ r"_\(\s*" # starts with literal `_(`, ignore following whitespace/newlines
+ # BEGIN: message search
+ r"([\"']{,3})" # start of message string identifier - allows: ', ", """, '''; 1st capture group
+ r"(?PDruckformate werden auf der Serverseite mit der Jinja Templating Language gerendert. Alle Formulare haben Zugriff auf das doc Objekt, das Informationen über das Dokument enthält, das formatiert wird. Sie können auch über das Modul frappe auf allgemeine Dienstprogramme zugreifen.
Für das Styling steht Ihnen das Boostrap CSS-Framework zur Verfügung und Sie können die gesamte Bandbreite an Klassen nutzen.
\n" +"<h3>{{ doc.select_print_heading or \"Invoice\" }}</h3>\n"
+"<div class=\"row\">\n"
+"\t<div class=\"col-md-3 text-right\">Kundenname</div>\n"
+"\t<div class=\"col-md-9\">{{ doc.customer_name }}</div>\n"
+"</div>\n"
+"<div class=\"row\">\n"
+"\t<div class=\"col-md-3 text-right\">Datum</div>\n"
+"\t<div class=\"col-md-9\">{{ doc.get_formatted(\"invoice_date\") }}</div>\n"
+"</div>\n"
+"<table class=\"table table-bordered\">\n"
+"\t<tbody>\n"
+"\t\t<tr>\n"
+"\t\t\t<th>Sr</th>\n"
+"\t\t\t<th>Artikelname</th>\n"
+"\t\t\t<th>Beschreibung</th>\n"
+"\t\t\t<th class=\"text-right\">Menge</th>\n"
+"\t\t\t<th class=\"text-right\">Preis</th>\n"
+"\t\t\t<th class=\"text-right\">Betrag</th>\n"
+"\t\t</tr>\n"
+"\t\t{%- for row in doc.items -%}\n"
+"\t\t<tr>\n"
+"\t\t\t<td style=\"width: 3%;\">{{ row.idx }}</td>\n"
+"\t\t\t<td style=\"width: 20%;\">\n"
+"\t\t\t\t{{ row.item_name }}\n"
+"\t\t\t\t{% if row.item_code != row.item_name -%}\n"
+"\t\t\t\t<br>Artikelcode: {{ row.item_code}}\n"
+"\t\t\t\t{%- endif %}\n"
+"\t\t\t</td>\n"
+"\t\t\t<td style=\"width: 37%;\">\n"
+"\t\t\t\t<div style=\"border: 0px;\">{{ row.description }}</div></td>\n"
+"\t\t\t<td style=\"width: 10%; text-align: right;\">{{ row.qty }} {{ row.uom or row.stock_uom }}</td>\n"
+"\t\t\t<td style=\"width: 15%; text-align: right;\">{{\n"
+"\t\t\t\trow.get_formatted(\"rate\", doc) }}</td>\n"
+"\t\t\t<td style=\"width: 15%; text-align: right;\">{{\n"
+"\t\t\t\trow.get_formatted(\"amount\", doc) }}</td>\n"
+"\t\t</tr>\n"
+"\t\t{%- endfor -%}\n"
+"\t</tbody>\n"
+"</table>\n"
+"doc.get_formatted(\"[feldname]\", [übergeordnetes_doc]) | \n"
+"\t\t\tDokumentwert als Datum, Währung usw. formatiert abrufen. Übergeben Sie das übergeordnete doc für Felder vom Typ Währung. | \n"
+"\t\t
frappe.db.get_value(\"[doctype]\", \"[name]\", \"fieldname\") | \n"
+"\t\t\tHolen Sie den Wert aus einem anderen Dokument. | \n" +"\t\t
Verwendet Jinja Templating und alle Felder der Adresse (einschließlich der benutzerdefinierten Felder, falls vorhanden) werden verfügbar sein
\n" +"{{ address_line1 }}<br>\n"
+"{% if address_line2 %}{{ address_line2 }}<br>{% endif -%}\n"
+"{{ city }}<br>\n"
+"{% if state %}{{ state }}<br>{% endif -%}\n"
+"{% if pincode %} PIN: {{ pincode }}<br>{% endif -%}\n"
+"{{ country }}<br>\n"
+"{% if phone %}Telefon: {{ phone }}<br>{% endif -%}\n"
+"{% if fax %}Fax: {{ fax }}<br>{% endif -%}\n"
+"{% if email_id %}E-Mail: {{ email_id }}<br>{% endif -%}\n"
+""
#. Content of the 'Email Reply Help' (HTML) field in DocType 'Email Template'
#: email/doctype/email_template/email_template.json
@@ -572,13 +648,23 @@ msgid "The fieldnames you can use in your email template are the fields in the document from which you are sending the email. You can find out the fields of any documents via Setup > Customize Form View and selecting the document type (e.g. Sales Invoice)
\n\n" "Templates are compiled using the Jinja Templating Language. To learn more about Jinja, read this documentation.
\n" -msgstr "" +msgstr "Überfällige Bestellung\n\n"
+"Die Transaktion {{ name }} hat das Fälligkeitsdatum überschritten. Bitte ergreifen Sie die notwendigen Maßnahmen.\n\n"
+"Details\n\n"
+"- Kunde: {{ customer }}\n"
+"- Betrag: {{ grand_total }}\n"
+"\n\n"
+"Die Feldnamen, die Sie in Ihrer E-Mail-Vorlage verwenden können, sind die Felder des Dokuments, aus dem Sie die E-Mail versenden. Sie können die Felder aller Dokumente über Setup > Formularansicht anpassen und den Dokumententyp auswählen (z.B. Verkaufsrechnung)
\n\n" +"Vorlagen werden mit der Jinja-Vorlagensprache erstellt. Wenn Sie mehr über Jinja erfahren möchten, lesen Sie diese Dokumentation.
\n" #. Content of the 'html_5' (HTML) field in DocType 'Data Import' #: core/doctype/data_import/data_import.json msgctxt "Data Import" msgid "<h3>Bestellung überfällig</h3>\n\n"
+"<p>Transaktion {{ doc.name }} hat das Fälligkeitsdatum überschritten. Bitte ergreifen Sie die notwendigen Maßnahmen.</p>\n\n"
+"<!-- letzten Kommentar anzeigen -->\n"
+"{% if comments %}\n"
+"Letzter Kommentar: {{ comments[-1].comment }} von {{ comments[-1].by }}\n"
+"{% endif %}\n\n"
+"<h4>Details</h4>\n\n"
+"<ul>\n"
+"<li>Kunde: {{ doc.customer }}\n"
+"<li>Betrag: {{ doc.grand_total }}\n"
+"</ul>\n"
+""
#. Content of the 'html_condition' (HTML) field in DocType 'Webhook'
#: integrations/doctype/webhook/webhook.json
@@ -605,7 +703,9 @@ msgctxt "Webhook"
msgid "Condition Examples:
\n" "doc.status==\"Open\"" -msgstr "" +msgstr "
doc.due_date==nowdate()
doc.total > 40000\n" "
Bedingungsbeispiele:
\n" +"doc.status==\"Öffnen\"" #. Content of the 'html_7' (HTML) field in DocType 'Notification' #: email/doctype/notification/notification.json @@ -613,7 +713,9 @@ msgctxt "Notification" msgid "
doc.due_date==nowdate()
doc.total > 40000\n\n" +"
Condition Examples:
\n" "doc.status==\"Open\"\n" -msgstr "" +msgstr "
doc.due_date==nowdate()
doc.total > 40000\n" "
Bedingungsbeispiele:
\n" +"doc.status==\"Öffnen\"\n" #. Content of the 'Condition Description' (HTML) field in DocType 'Web Form' #: website/doctype/web_form/web_form.json @@ -621,7 +723,9 @@ msgctxt "Web Form" msgid "
doc.due_date==nowdate()
doc.total > 40000\n" +"
Multiple webforms can be created for a single doctype. Add filters specific to this webform to display correct record after submission.
For Example:
\n" "If you create a separate webform every year to capture feedback from employees add a \n" " field named year in doctype and add a filter year = 2023
\n" -msgstr "" +msgstr "Mehrere Webformulare können für ein einzelnes Doctyle erstellt werden. Fügen Sie Filter für dieses Webformular hinzu, um den korrekten Datensatz nach dem Einreichen anzuzeigen.
Zum Beispiel:
\n" +"Wenn Sie jedes Jahr ein separates Webformular erstellen, um Feedback von Mitarbeitern zu erfassen, fügen Sie ein \n" +" Feld mit dem Namen Jahr in Doctype hinzu und fügen Sie einen Filter Jahr = 2023
\n" #. Description of the 'Context Script' (Code) field in DocType 'Web Page' #: website/doctype/web_page/web_page.json @@ -630,7 +734,10 @@ msgid "Set context before rendering a template. Example:
\n" "
\n"
"context.project = frappe.get_doc(\"Project\", frappe.form_dict.name)\n"
"Legen Sie den Kontext vor der Darstellung einer Vorlage fest. Beispiel:
\n" +"
\n"
+"context.project = frappe.get_doc(\"Project\", frappe.form_dict.name)\n"
+"Your OTP secret on {0} has been reset. If you did not perform this reset and did not request it, please contact your System Administrator immediately.
" -msgstr "" +msgstr "Ihr OTP-Geheimnis auf {0} wurde zurückgesetzt. Wenn Sie diese Rücksetzung nicht durchgeführt und nicht angefordert haben, wenden Sie sich bitte umgehend an Ihren Systemadministrator.
" #. Description of the 'Cron Format' (Data) field in DocType 'Scheduled Job #. Type' @@ -661,7 +768,18 @@ msgid "* * * * *\n" "* - Any value\n" "/ - Step values\n" "\n" -msgstr "" +msgstr "
* * * *\n" +"┬ ┬ ┬ ┬\n" +"│ │ │ │\n" +"│ │ │ │ └ Wochentag (0 - 6) (0 ist Sonntag)\n" +"│ │ │ └───── Monat (1 - 12)\n" +"│ │ └────────── Tag des Monats (1 - 31)\n" +"│ └─────────────── Stunde (0 - 23)\n" +"└──────────────────── Minute (0 - 59)\n\n" +"---\n\n" +"* - beliebiger Wert\n" +"/ - Schrittwert\n" +"\n" #. Description of the 'Cron Format' (Data) field in DocType 'Server Script' #: core/doctype/server_script/server_script.json @@ -678,7 +796,18 @@ msgid "
* * * * *\n" "* - Any value\n" "/ - Step values\n" "\n" -msgstr "" +msgstr "
* * * *\n" +"┬ ┬ ┬ ┬\n" +"│ │ │ │\n" +"│ │ │ │ └ Wochentag (0 - 6) (0 ist Sonntag)\n" +"│ │ │ └───── Monat (1 - 12)\n" +"│ │ └────────── Tag des Monats (1 - 31)\n" +"│ └─────────────── Stunde (0 - 23)\n" +"└──────────────────── Minute (0 - 59)\n\n" +"---\n\n" +"* - beliebiger Wert\n" +"/ - Schrittwert\n" +"\n" #. Content of the 'Example' (HTML) field in DocType 'Workflow Transition' #: workflow/doctype/workflow_transition/workflow_transition.json @@ -696,11 +825,23 @@ msgid "
doc.grand_total > 0\n\n"
"Example:
doc.creation > frappe.utils.add_to_date(frappe.utils.now_datetime(), days=-5, as_string=True, as_datetime=True) "
-msgstr ""
+msgstr "doc.grand_total > 0\n\n"
+"Bedingungen sollten in einfachem Python geschrieben werden. Bitte verwenden Sie nur die im Formular verfügbaren Eigenschaften.
\n" +"Erlaubte Funktionen:\n" +"
Beispiel:
doc.creation > frappe.utils.add_to_date(frappe.utils.now_datetime(), days=-5, as_string=True, as_datetime=True) "
#: custom/doctype/custom_field/custom_field.js:39
msgid "Warning: This field is system generated and may be overwritten by a future update. Modify it using {0} instead."
-msgstr ""
+msgstr "Warnung: Dieses Feld wird vom System generiert und kann durch ein zukünftiges Update überschrieben werden. Ändern Sie es stattdessen mit {0}."
#. Option for the 'Condition' (Select) field in DocType 'Document Naming Rule
#. Condition'
@@ -1662,7 +1803,7 @@ msgstr "Nach dem Speichern (Übermitteltes Dokument)"
#: website/doctype/web_form/web_form.json
msgctxt "Web Form"
msgid "After Submission"
-msgstr ""
+msgstr "Nach dem Buchen"
#. Option for the 'DocType Event' (Select) field in DocType 'Server Script'
#: core/doctype/server_script/server_script.json
@@ -1672,7 +1813,7 @@ msgstr "Nach dem Absenden"
#: desk/doctype/number_card/number_card.py:58
msgid "Aggregate Field is required to create a number card"
-msgstr ""
+msgstr "Das Feld Aggregatfunktion wird benötigt, um eine Nummernkarte zu erstellen"
#. Label of a Select field in DocType 'Dashboard Chart'
#: desk/doctype/dashboard_chart/dashboard_chart.json
@@ -1699,7 +1840,7 @@ msgstr "Aufmerksam"
#. Label of a Card Break in the Tools Workspace
#: automation/workspace/tools/tools.json
msgid "Alerts and Notifications"
-msgstr ""
+msgstr "Warnungen und Benachrichtigungen"
#. Label of a Select field in DocType 'Letter Head'
#: printing/doctype/letter_head/letter_head.json
@@ -1784,13 +1925,13 @@ msgstr "Alle Anpassungen werden entfernt. Bitte bestätigen."
#: templates/includes/comments/comments.html:158
msgid "All fields are necessary to submit the comment."
-msgstr ""
+msgstr "Alle Felder sind notwendig, um den Kommentar abzuschicken."
#. Description of the 'Document States' (Table) field in DocType 'Workflow'
#: workflow/doctype/workflow/workflow.json
msgctxt "Workflow"
msgid "All possible Workflow States and roles of the workflow. Docstatus Options: 0 is \"Saved\", 1 is \"Submitted\" and 2 is \"Cancelled\""
-msgstr ""
+msgstr "Alle möglichen Workflow-Zustände und Rollen des Workflows. Docstatus Optionen: 0 ist „gespeichert“, 1 ist „gebucht“ und 2 ist „storniert“"
#: utils/password_strength.py:187
msgid "All-uppercase is almost as easy to guess as all-lowercase."
@@ -1880,7 +2021,7 @@ msgstr "Dropbox-Zugang zulassen"
#: website/doctype/web_form/web_form.json
msgctxt "Web Form"
msgid "Allow Editing After Submit"
-msgstr ""
+msgstr "Bearbeiten nach Buchen erlauben"
#: integrations/doctype/google_calendar/google_calendar.py:100
#: integrations/doctype/google_calendar/google_calendar.py:114
@@ -2030,7 +2171,7 @@ msgstr "Erlaube Selbstgenehmigung"
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Allow Sending Usage Data for Improving Applications"
-msgstr ""
+msgstr "Senden von Nutzungsdaten zur Verbesserung von Anwendungen zulassen"
#. Description of the 'Allow Self Approval' (Check) field in DocType 'Workflow
#. Transition'
@@ -2079,19 +2220,19 @@ msgstr "In Schnelleingabe zulassen"
#: custom/doctype/custom_field/custom_field.json
msgctxt "Custom Field"
msgid "Allow on Submit"
-msgstr "Änderungen zulassen wenn gebucht"
+msgstr "Änderungen nach dem Buchen zulassen"
#. Label of a Check field in DocType 'Customize Form Field'
#: custom/doctype/customize_form_field/customize_form_field.json
msgctxt "Customize Form Field"
msgid "Allow on Submit"
-msgstr "Änderungen zulassen wenn gebucht"
+msgstr "Änderungen nach dem Buchen zulassen"
#. Label of a Check field in DocType 'DocField'
#: core/doctype/docfield/docfield.json
msgctxt "DocField"
msgid "Allow on Submit"
-msgstr "Änderungen zulassen wenn gebucht"
+msgstr "Änderungen nach dem Buchen zulassen"
#. Label of a Check field in DocType 'System Settings'
#: core/doctype/system_settings/system_settings.json
@@ -2107,7 +2248,7 @@ msgstr "Seitenumbruch innerhalb von Tabellen erlauben"
#: desk/page/setup_wizard/setup_wizard.js:420
msgid "Allow recording my first session to improve user experience"
-msgstr ""
+msgstr "Erlauben Sie die Aufzeichnung meiner ersten Sitzung, um die Benutzerfreundlichkeit zu verbessern"
#. Description of the 'Allow Incomplete Forms' (Check) field in DocType 'Web
#. Form'
@@ -2118,7 +2259,7 @@ msgstr "Speichern trotz leerer Pflichtfelder zulassen"
#: desk/page/setup_wizard/setup_wizard.js:413
msgid "Allow sending usage data for improving applications"
-msgstr ""
+msgstr "Erlaube das Senden von Nutzungsdaten zur Verbesserung von Anwendungen"
#. Description of the 'Login After' (Int) field in DocType 'User'
#: core/doctype/user/user.json
@@ -2137,7 +2278,7 @@ msgstr "Benutzer darf sich nur vor dieser Stunde anmelden (0-24)"
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Allow users to log in without a password, using a login link sent to their email"
-msgstr ""
+msgstr "Benutzern erlauben, sich ohne Passwort anzumelden, indem ein Login-Link an ihre E-Mail gesendet wird"
#. Label of a Link field in DocType 'Workflow Transition'
#: workflow/doctype/workflow_transition/workflow_transition.json
@@ -2242,13 +2383,13 @@ msgstr "Änderungszähler"
#. Name of a DocType
#: core/doctype/amended_document_naming_settings/amended_document_naming_settings.json
msgid "Amended Document Naming Settings"
-msgstr ""
+msgstr "Einstellungen für berichtigte Benennung von Dokumenten"
#. Label of a Section Break field in DocType 'Document Naming Settings'
#: core/doctype/document_naming_settings/document_naming_settings.json
msgctxt "Document Naming Settings"
msgid "Amended Documents"
-msgstr ""
+msgstr "Berichtigte Dokumente"
#. Label of a Link field in DocType 'Personal Data Download Request'
#: website/doctype/personal_data_download_request/personal_data_download_request.json
@@ -2353,7 +2494,7 @@ msgstr "App Zugriffsschlüssel"
#: integrations/doctype/dropbox_settings/dropbox_settings.js:22
msgid "App Access Key and/or Secret Key are not present."
-msgstr ""
+msgstr "App Access Key und/oder Secret Key sind nicht vorhanden."
#. Label of a Data field in DocType 'OAuth Client'
#: integrations/doctype/oauth_client/oauth_client.json
@@ -2447,7 +2588,7 @@ msgstr "\"Anhängen an\" kann ein Wert aus {0} sein"
#: email/doctype/email_account/email_account.json
msgctxt "Email Account"
msgid "Append as communication against this DocType (must have fields: \"Sender\" and \"Subject\"). These fields can be defined in the email settings section of the appended doctype."
-msgstr ""
+msgstr "Als Kommunikation an diesen DocType anhängen (muss Felder haben: \"Absender\" und \"Betreff\"). Diese Felder können im Abschnitt E-Mail-Einstellungen des angehängten DocTyps definiert werden."
#: core/doctype/user_permission/user_permission_list.js:105
msgid "Applicable Document Types"
@@ -2618,7 +2759,7 @@ msgstr "Sind Sie sicher, dass Sie fortfahren möchten?"
#: core/doctype/rq_job/rq_job_list.js:25
msgid "Are you sure you want to re-enable scheduler?"
-msgstr ""
+msgstr "Sind Sie sicher, dass Sie den Scheduler wieder aktivieren möchten?"
#: core/doctype/communication/communication.js:163
msgid "Are you sure you want to relink this communication to {0}?"
@@ -2626,7 +2767,7 @@ msgstr "Sind Sie sicher, dass Sie diese Mitteilung an {0} neu verknüpfen wollen
#: core/doctype/rq_job/rq_job_list.js:10
msgid "Are you sure you want to remove all failed jobs?"
-msgstr ""
+msgstr "Sind Sie sicher, dass Sie alle fehlgeschlagenen Jobs entfernen möchten?"
#: public/js/frappe/list/list_filter.js:109
msgid "Are you sure you want to remove the {0} filter?"
@@ -2638,7 +2779,7 @@ msgstr "Möchten Sie wirklich alle Anpassungen zurücksetzen?"
#: email/doctype/newsletter/newsletter.js:60
msgid "Are you sure you want to send this newsletter now?"
-msgstr ""
+msgstr "Sind Sie sicher, dass Sie diesen Newsletter jetzt senden möchten?"
#: core/doctype/document_naming_rule/document_naming_rule.js:16
#: core/doctype/user_permission/user_permission_list.js:165
@@ -2663,7 +2804,7 @@ msgstr "Da die Freigabe von Dokumenten deaktiviert ist, erteilen Sie ihnen vor d
#: templates/emails/account_deletion_notification.html:3
msgid "As per your request, your account and data on {0} associated with email {1} has been permanently deleted"
-msgstr ""
+msgstr "Wie von Ihnen gewünscht, wurden Ihr Konto und die Daten auf {0}, die mit der E-Mail {1} verbunden sind, endgültig gelöscht"
#. Label of a Code field in DocType 'Assignment Rule'
#: automation/doctype/assignment_rule/assignment_rule.json
@@ -2780,7 +2921,7 @@ msgstr "Zuordnungstage"
#: automation/doctype/assignment_rule/assignment_rule.py:64
msgid "Assignment Day{0} {1} has been repeated."
-msgstr ""
+msgstr "Zuweisungstag {0} {1} kommen mehrfach vor."
#. Name of a DocType
#: automation/doctype/assignment_rule/assignment_rule.json
@@ -2850,11 +2991,11 @@ msgstr "Zuordnungen"
#: public/js/frappe/form/grid_row.js:629
msgid "At least one column is required to show in the grid."
-msgstr ""
+msgstr "Mindestens eine Spalte muss im Raster angezeigt werden."
#: website/doctype/web_form/web_form.js:64
msgid "Atleast one field is required in Web Form Fields Table"
-msgstr ""
+msgstr "Mindestens ein Feld ist in der Tabelle der Webformularfelder erforderlich"
#: core/doctype/data_export/data_export.js:44
msgid "Atleast one field of Parent Document Type is mandatory"
@@ -2964,7 +3105,7 @@ msgstr "Angehängt an Namen"
#: core/doctype/file/file.py:140
msgid "Attached To Name must be a string or an integer"
-msgstr ""
+msgstr "Angehängt an Name muss eine Zeichenfolge oder eine Ganzzahl sein"
#. Option for the 'Comment Type' (Select) field in DocType 'Comment'
#: core/doctype/comment/comment.json
@@ -2999,7 +3140,7 @@ msgstr "Beschränkung der Größe des Anhangs (MB)"
#: core/doctype/file/file.py:321
#: public/js/frappe/form/sidebar/attachments.js:36
msgid "Attachment Limit Reached"
-msgstr ""
+msgstr "Limit für Anhänge erreicht"
#. Label of a HTML field in DocType 'Notification Log'
#: desk/doctype/notification_log/notification_log.json
@@ -3243,7 +3384,7 @@ msgstr "Automatische Wiederholung der Dokumentenerstellung fehlgeschlagen"
#: automation/doctype/auto_repeat/auto_repeat.js:115
msgid "Auto Repeat Schedule"
-msgstr ""
+msgstr "Zeitplan automatisch wiederholen"
#: public/js/frappe/utils/common.js:434
msgid "Auto Repeat created for this document"
@@ -3279,7 +3420,7 @@ msgstr "Dokumenten automatisch folgen, die Ihnen zugewiesen sind"
#: core/doctype/user/user.json
msgctxt "User"
msgid "Auto follow documents that are shared with you"
-msgstr ""
+msgstr "Dokumenten automatisch folgen, die mit Ihnen geteilt werden"
#. Label of a Check field in DocType 'User'
#: core/doctype/user/user.json
@@ -3321,7 +3462,7 @@ msgstr "Autovervollständigung"
#: core/doctype/doctype/doctype.json
msgctxt "DocType"
msgid "Autoincrement"
-msgstr ""
+msgstr "Autoinkrement"
#. Option for the 'Communication Type' (Select) field in DocType
#. 'Communication'
@@ -3352,7 +3493,7 @@ msgstr "Die automatische Verknüpfung kann nur aktiviert werden, wenn Eingehend
#: website/doctype/website_settings/website_settings.json
msgctxt "Website Settings"
msgid "Automatically delete account within (hours)"
-msgstr ""
+msgstr "Konto automatisch löschen innerhalb von (Stunden)"
#. Label of a Card Break in the Tools Workspace
#: automation/workspace/tools/tools.json
@@ -3762,19 +3903,19 @@ msgstr "Vor dem Speichern"
#: core/doctype/server_script/server_script.json
msgctxt "Server Script"
msgid "Before Save (Submitted Document)"
-msgstr "Vor dem Speichern (gesendetes Dokument)"
+msgstr "Vor dem Speichern (gebuchtes Dokument)"
#. Option for the 'DocType Event' (Select) field in DocType 'Server Script'
#: core/doctype/server_script/server_script.json
msgctxt "Server Script"
msgid "Before Submit"
-msgstr "Vor dem Absenden"
+msgstr "Vor dem Buchen"
#. Option for the 'DocType Event' (Select) field in DocType 'Server Script'
#: core/doctype/server_script/server_script.json
msgctxt "Server Script"
msgid "Before Validate"
-msgstr ""
+msgstr "Vor der Validierung"
#. Option for the 'Level' (Select) field in DocType 'Help Article'
#: website/doctype/help_article/help_article.json
@@ -4143,13 +4284,13 @@ msgstr "Erstellen"
#: workflow/doctype/workflow/workflow_list.js:18
msgid "Build {0}"
-msgstr ""
+msgstr "Baue {0}"
#. Label of a Check field in DocType 'Role'
#: core/doctype/role/role.json
msgctxt "Role"
msgid "Bulk Actions"
-msgstr ""
+msgstr "Massenbearbeitung"
#: core/doctype/user_permission/user_permission_list.js:142
msgid "Bulk Delete"
@@ -4176,19 +4317,19 @@ msgstr "Massen-Update"
#: model/workflow.py:253
msgid "Bulk approval only support up to 500 documents."
-msgstr ""
+msgstr "Massengenehmigung unterstützt nur bis zu 500 Dokumente."
#: desk/doctype/bulk_update/bulk_update.py:57
msgid "Bulk operation is enqueued in background."
-msgstr ""
+msgstr "Massenoperationen werden im Hintergrund eingereiht."
#: desk/doctype/bulk_update/bulk_update.py:70
msgid "Bulk operations only support up to 500 documents."
-msgstr ""
+msgstr "Massenvorgänge unterstützen nur bis zu 500 Dokumente."
#: model/workflow.py:243
msgid "Bulk {0} is enqueued in background."
-msgstr ""
+msgstr "Massen- {0} ist im Hintergrund eingereiht."
#. Option for the 'Field Type' (Select) field in DocType 'Custom Field'
#: custom/doctype/custom_field/custom_field.json
@@ -4248,7 +4389,7 @@ msgstr "Standardmäßig wird der Titel als Metatitel verwendet. Wenn Sie hier ei
#: integrations/doctype/s3_backup_settings/s3_backup_settings.json
msgctxt "S3 Backup Settings"
msgid "By default, emails are only sent for failed backups."
-msgstr ""
+msgstr "E-Mails werden standardmäßig nur für fehlgeschlagene Sicherungen versendet."
#. Option for the 'Naming Rule' (Select) field in DocType 'Customize Form'
#: custom/doctype/customize_form/customize_form.json
@@ -4353,7 +4494,7 @@ msgstr "CSS-Klasse"
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "CSS selector for the element you want to highlight."
-msgstr ""
+msgstr "CSS-Selektor für das Element, das Sie hervorheben möchten."
#. Option for the 'Format' (Select) field in DocType 'Auto Email Report'
#: email/doctype/auto_email_report/auto_email_report.json
@@ -4645,7 +4786,7 @@ msgstr "Zugriff auf Dateipfad {0} nicht möglich"
#: public/js/workflow_builder/utils.js:183
msgid "Cannot cancel before submitting while transitioning from {0} State to {1} State"
-msgstr ""
+msgstr "Beim Übergang vom Zustand {0} zum Zustand {1}kann der Vorgang nicht vor dem Buchen abgebrochen werden"
#: workflow/doctype/workflow/workflow.py:112
msgid "Cannot cancel before submitting. See Transition {0}"
@@ -4661,11 +4802,11 @@ msgstr "Status kann nicht von 0 (Entwurf) zu 2 (Abgebrochen) geändert werden"
#: model/document.py:852
msgid "Cannot change docstatus from 1 (Submitted) to 0 (Draft)"
-msgstr ""
+msgstr "Der Dokumentstatus kann nicht von 1 (Gebucht) auf 0 (Entwurf) geändert werden"
#: public/js/workflow_builder/utils.js:170
msgid "Cannot change state of Cancelled Document ({0} State)"
-msgstr ""
+msgstr "Der Status des abgebrochenen Dokuments kann nicht geändert werden (Status {0})"
#: workflow/doctype/workflow/workflow.py:101
msgid "Cannot change state of Cancelled Document. Transition row {0}"
@@ -4673,7 +4814,7 @@ msgstr "Zustand des aufgehobenen Dokumentes kann nicht geändert werden. Überga
#: core/doctype/doctype/doctype.py:1104
msgid "Cannot change to/from autoincrement autoname in Customize Form"
-msgstr ""
+msgstr "In „Formular anpassen“ kann nicht von/zu Benennungsschema „Autoinkrementierung“ gewechselt werden"
#: core/doctype/communication/communication.py:193
msgid "Cannot create a {0} against a child document: {1}"
@@ -4709,7 +4850,7 @@ msgstr "Standarddokumentstatus kann nicht gelöscht werden."
#: custom/doctype/customize_form/customize_form.js:276
msgid "Cannot delete standard field {0}. You can hide it instead."
-msgstr ""
+msgstr "Das Standardfeld {0}kann nicht gelöscht werden. Sie können es stattdessen ausblenden."
#: custom/doctype/customize_form/customize_form.js:298
msgid "Cannot delete standard link. You can hide it if you want"
@@ -4717,7 +4858,7 @@ msgstr "Standardlink kann nicht gelöscht werden. Sie können es ausblenden, wen
#: custom/doctype/customize_form/customize_form.js:268
msgid "Cannot delete system generated field {0}. You can hide it instead."
-msgstr ""
+msgstr "Das vom System generierte Feld {0}kann nicht gelöscht werden. Sie können es stattdessen ausblenden."
#: public/js/frappe/list/bulk_operations.js:171
msgid "Cannot delete {0}"
@@ -4805,7 +4946,7 @@ msgstr "Kann {0} nicht buchen."
#: desk/doctype/workspace/workspace.py:351
msgid "Cannot update private workspace of other users"
-msgstr ""
+msgstr "Der private Arbeitsbereich anderer Benutzer kann nicht verändert werden"
#: desk/doctype/bulk_update/bulk_update.js:26
#: public/js/frappe/list/bulk_operations.js:301
@@ -4818,11 +4959,11 @@ msgstr "Kann in \"sortieren nach\" keine Unterabfrage verwenden."
#: model/db_query.py:1143
msgid "Cannot use {0} in order/group by"
-msgstr ""
+msgstr "{0} kann für die Sortierung oder Gruppierung verwendet werden"
#: public/js/frappe/list/bulk_operations.js:232
msgid "Cannot {0} {1}."
-msgstr ""
+msgstr "Kann {1} nicht {0}."
#: utils/password_strength.py:185
msgid "Capitalization doesn't help very much."
@@ -4910,7 +5051,7 @@ msgstr "Kettenintegrität"
#: core/doctype/transaction_log/transaction_log.json
msgctxt "Transaction Log"
msgid "Chaining Hash"
-msgstr ""
+msgstr "Kettenhash"
#: tests/test_translate.py:98
msgid "Change"
@@ -4948,15 +5089,16 @@ msgstr "Benutzer wechseln"
msgctxt "Document Naming Settings"
msgid "Change the starting / current sequence number of an existing series. {0} ) und Antworttyp ( {1
#: printing/doctype/print_settings/print_settings.json
msgctxt "Print Settings"
msgid "Comm10E"
-msgstr ""
+msgstr "Comm10E"
#. Name of a DocType
#: core/doctype/comment/comment.json
@@ -5784,13 +5926,13 @@ msgstr "Kommentar kann nur vom Eigentümer bearbeitet werden"
#: website/doctype/blog_settings/blog_settings.json
msgctxt "Blog Settings"
msgid "Comment limit"
-msgstr ""
+msgstr "Kommentarlimit"
#. Description of the 'Comment limit' (Int) field in DocType 'Blog Settings'
#: website/doctype/blog_settings/blog_settings.json
msgctxt "Blog Settings"
msgid "Comment limit per hour"
-msgstr ""
+msgstr "Kommentarlimit pro Stunde"
#: model/__init__.py:150 model/meta.py:54 public/js/frappe/model/meta.js:206
#: public/js/frappe/model/model.js:125
@@ -5812,7 +5954,7 @@ msgstr "Kommentare dürfen keine Links oder E-Mail-Adressen enthalten"
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Commercial Rounding"
-msgstr ""
+msgstr "Kaufmännisches Runden"
#. Label of a Check field in DocType 'System Console'
#: desk/doctype/system_console/system_console.json
@@ -5824,7 +5966,7 @@ msgstr "Verpflichten"
#: desk/doctype/console_log/console_log.json
msgctxt "Console Log"
msgid "Committed"
-msgstr ""
+msgstr "Persistiert"
#: utils/password_strength.py:180
msgid "Common names and surnames are easy to guess."
@@ -5870,7 +6012,7 @@ msgstr "Kommunikationsverbindung"
#: core/workspace/build/build.json
msgctxt "Communication"
msgid "Communication Logs"
-msgstr ""
+msgstr "Kommunikationsprotokolle"
#. Label of a Select field in DocType 'Communication'
#: core/doctype/communication/communication.json
@@ -5903,11 +6045,11 @@ msgstr "Firma"
#: custom/doctype/client_script/client_script.js:54
#: public/js/frappe/utils/diffview.js:27
msgid "Compare Versions"
-msgstr ""
+msgstr "Versionen vergleichen"
#: core/doctype/server_script/server_script.py:134
msgid "Compilation warning"
-msgstr ""
+msgstr "Kompilierungswarnung"
#: website/doctype/website_theme/website_theme.py:125
msgid "Compiled Successfully"
@@ -5969,7 +6111,7 @@ msgstr "Abgeschlossen"
#: workflow/doctype/workflow_action/workflow_action.json
msgctxt "Workflow Action"
msgid "Completed By Role"
-msgstr ""
+msgstr "Abgeschlossen durch Rolle"
#. Label of a Link field in DocType 'Workflow Action'
#: workflow/doctype/workflow_action/workflow_action.json
@@ -6033,7 +6175,7 @@ msgstr "Zustand"
#: website/doctype/web_form/web_form.json
msgctxt "Web Form"
msgid "Condition Description"
-msgstr ""
+msgstr "Beschreibung der Bedingung"
#. Label of a JSON field in DocType 'Web Form'
#: website/doctype/web_form/web_form.json
@@ -6074,7 +6216,9 @@ msgctxt "Document Naming Settings"
msgid "Configure how amended documents will be named.
\n\n"
"Default behaviour is to follow an amend counter which adds a number to the end of the original name indicating the amended version.
\n\n"
"Default Naming will make the amended document to behave same as new documents."
-msgstr ""
+msgstr "Legen Sie fest, wie berichtigte Dokumente benannt werden sollen.
\n\n"
+"Standardmäßig wird ein Berichtigungszähler verwendet, der am Ende des Originalnamens eine Zahl anhängt, die die berichtigte Version angibt.
\n\n"
+"Die Standardbenennung bewirkt, dass sich das berichtigte Dokument genauso verhält wie neue Dokumente."
#: www/update-password.html:30
msgid "Confirm"
@@ -6342,7 +6486,7 @@ msgstr "Inhaltstyp"
#: desk/doctype/workspace/workspace.py:79
msgid "Content data shoud be a list"
-msgstr ""
+msgstr "Inhaltsdaten sollten eine Liste sein"
#: website/doctype/web_page/web_page.js:91
msgid "Content type for building the page"
@@ -6398,7 +6542,7 @@ msgstr "Beitragsstatus"
#: integrations/doctype/social_login_key/social_login_key.json
msgctxt "Social Login Key"
msgid "Controls whether new users can sign up using this Social Login Key. If unset, Website Settings is respected. "
-msgstr ""
+msgstr "Steuert, ob sich neue Benutzer mit diesem Social Login Key anmelden können. Wenn nicht eingestellt, werden die Website-Einstellungen berücksichtigt. "
#: public/js/frappe/utils/utils.js:1030
msgid "Copied to clipboard."
@@ -6512,7 +6656,7 @@ msgstr "Land"
#: utils/__init__.py:116
msgid "Country Code Required"
-msgstr ""
+msgstr "Landesvorwahl erforderlich"
#. Label of a Data field in DocType 'Country'
#: geo/doctype/country/country.json
@@ -6530,7 +6674,7 @@ msgstr "Landesbezirk/Gemeinde/Kreis"
#: public/js/frappe/utils/number_systems.js:45
msgctxt "Number system"
msgid "Cr"
-msgstr ""
+msgstr "Cr"
#: core/doctype/communication/communication.js:117
#: desk/doctype/dashboard_chart_source/dashboard_chart_source.js:15
@@ -6594,7 +6738,7 @@ msgstr "Benutzerdefinierte Felder erstellen"
#: public/js/frappe/views/workspace/workspace.js:925
msgid "Create Duplicate"
-msgstr ""
+msgstr "Duplikat erstellen"
#. Option for the 'Action' (Select) field in DocType 'Onboarding Step'
#: desk/doctype/onboarding_step/onboarding_step.json
@@ -6922,7 +7066,7 @@ msgstr ""
#: desk/doctype/workspace/workspace.json
msgctxt "Workspace"
msgid "Custom Blocks"
-msgstr ""
+msgstr "Benutzerdefinierte Blöcke"
#. Label of a Code field in DocType 'Print Format'
#: printing/doctype/print_format/print_format.json
@@ -6996,7 +7140,7 @@ msgstr "Das benutzerdefinierte Feld {0} wird vom Administrator erstellt und kann
#. Subtitle of the Module Onboarding 'Customization'
#: custom/module_onboarding/customization/customization.json
msgid "Custom Field, Custom Doctype, Naming Series, Role Permission, Workflow, Print Formats, Reports"
-msgstr ""
+msgstr "Benutzerdefiniertes Feld, Benutzerdefinierter Doctype, Nummernkreis, Rollenberechtigung, Workflow, Druckformate, Berichte"
#: custom/doctype/custom_field/custom_field.py:260
msgid "Custom Fields can only be added to a standard DocType."
@@ -7022,11 +7166,11 @@ msgstr "Benutzerdefiniertes Format"
#: integrations/doctype/ldap_settings/ldap_settings.json
msgctxt "LDAP Settings"
msgid "Custom Group Search"
-msgstr ""
+msgstr "Benutzerdefinierte Gruppensuche"
#: integrations/doctype/ldap_settings/ldap_settings.py:119
msgid "Custom Group Search if filled needs to contain the user placeholder {0}, eg uid={0},ou=users,dc=example,dc=com"
-msgstr ""
+msgstr "Die benutzerdefinierte Gruppensuche muss den Benutzerplatzhalter {0} enthalten, z.B. uid={0},ou=users,dc=example,dc=com"
#: printing/page/print_format_builder/print_format_builder.js:190
#: printing/page/print_format_builder/print_format_builder.js:720
@@ -7046,7 +7190,7 @@ msgstr "Benutzerdefinierte HTML-Hilfe"
#: integrations/doctype/ldap_settings/ldap_settings.py:111
msgid "Custom LDAP Directoy Selected, please ensure 'LDAP Group Member attribute' and 'Group Object Class' are entered"
-msgstr ""
+msgstr "Benutzerdefiniertes LDAP-Verzeichnis ausgewählt. Stellen Sie sicher, dass „LDAP-Gruppenmitgliedsattribut“ und „Gruppenobjektklasse“ eingegeben sind"
#. Label of a Data field in DocType 'Web Form Field'
#: website/doctype/web_form_field/web_form_field.json
@@ -8112,7 +8256,7 @@ msgstr "Löschen Sie diesen Datensatz, um das Senden an diese E-Mail Adresse zu
#: public/js/frappe/list/list_view.js:1862
msgctxt "Title of confirmation dialog"
msgid "Delete {0} item permanently?"
-msgstr ""
+msgstr "Element {0} endgültig löschen?"
#: public/js/frappe/list/list_view.js:1868
msgctxt "Title of confirmation dialog"
@@ -8188,7 +8332,7 @@ msgstr "Schritte zur Löschung "
#: core/doctype/page/page.py:108
msgid "Deletion of this document is only permitted in developer mode."
-msgstr ""
+msgstr "Das Löschen dieses Dokuments ist nur im Entwicklermodus erlaubt."
#: public/js/frappe/views/reports/report_utils.js:276
msgid "Delimiter must be a single character"
@@ -8354,7 +8498,7 @@ msgstr "Beschreibung für Auflistungsseite, im Klartext, nur ein paar Zeilen. (m
#: desk/doctype/onboarding_step/onboarding_step.json
msgctxt "Onboarding Step"
msgid "Description to inform the user about any action that is going to be performed"
-msgstr ""
+msgstr "Beschreibung, um den Benutzer über eine Aktion zu informieren, die durchgeführt werden soll"
#. Label of a Data field in DocType 'Contact'
#: contacts/doctype/contact/contact.json
@@ -8452,7 +8596,7 @@ msgstr "Wurde nicht entfernt"
#: public/js/frappe/utils/diffview.js:56
msgid "Diff"
-msgstr ""
+msgstr "Unterschiede"
#. Description of the 'States' (Section Break) field in DocType 'Workflow'
#: workflow/doctype/workflow/workflow.json
@@ -8655,12 +8799,12 @@ msgstr "Verwerfen?"
#. Name of a DocType
#: website/doctype/discussion_reply/discussion_reply.json
msgid "Discussion Reply"
-msgstr "Diskussionsantwort"
+msgstr "Unterhaltungsantwort"
#. Name of a DocType
#: website/doctype/discussion_topic/discussion_topic.json
msgid "Discussion Topic"
-msgstr "Diskussionsthema"
+msgstr "Unterhaltungsthema"
#: templates/discussions/reply_card.html:16
msgid "Dismiss"
@@ -8701,7 +8845,7 @@ msgstr "Keinen neuen Benutzer erstellen"
#: integrations/doctype/ldap_settings/ldap_settings.json
msgctxt "LDAP Settings"
msgid "Do not create new user if user with email does not exist in the system"
-msgstr ""
+msgstr "Keinen neuen Benutzer anlegen, wenn ein Benutzer mit dieser E-Mail-Adresse nicht bereits im System vorhanden ist"
#: public/js/frappe/form/grid.js:1156
msgid "Do not edit headers which are preset in the template"
@@ -8985,7 +9129,7 @@ msgstr "DocType"
#: core/doctype/doctype/doctype.py:1004
msgid "Doctype name is limited to {0} characters ({1})"
-msgstr ""
+msgstr "Der DocType-Name ist auf {0} Zeichen begrenzt ({1})"
#: public/js/frappe/list/bulk_operations.js:3
msgid "Doctype required"
@@ -8993,7 +9137,7 @@ msgstr "Doctype erforderlich"
#: public/js/frappe/views/workspace/workspace.js:1303
msgid "Doctype with same route already exist. Please choose different title."
-msgstr ""
+msgstr "Unter demselben Pfad gibt es bereits einen DocType. Bitte wählen Sie einen anderen Titel."
#. Label of a Dynamic Link field in DocType 'Audit Trail'
#: core/doctype/audit_trail/audit_trail.json
@@ -9067,19 +9211,19 @@ msgstr "Dokumentverknüpfungen"
#: core/doctype/doctype/doctype.py:1162
msgid "Document Links Row #{0}: Could not find field {1} in {2} DocType"
-msgstr ""
+msgstr "Dokumentenverknüpfungen Zeile #{0}: Feld {1} konnte nicht in DocType {2} gefunden werden"
#: core/doctype/doctype/doctype.py:1182
msgid "Document Links Row #{0}: Invalid doctype or fieldname."
-msgstr ""
+msgstr "Dokumentenverknüpfungen Zeile #{0}: Ungültiger DocType oder Feldname."
#: core/doctype/doctype/doctype.py:1145
msgid "Document Links Row #{0}: Parent DocType is mandatory for internal links"
-msgstr ""
+msgstr "Dokumentenverknüpfungen Zeile #{0}: Übergeordneter DocType ist obligatorisch für interne Links"
#: core/doctype/doctype/doctype.py:1151
msgid "Document Links Row #{0}: Table Fieldname is mandatory for internal links"
-msgstr ""
+msgstr "Dokumentverknüpfungen Zeile #{0}: Tabellenfeldname ist obligatorisch für interne Links"
#: core/doctype/user_permission/user_permission_list.js:36
#: public/js/frappe/form/form_tour.js:58
@@ -9169,13 +9313,13 @@ msgstr "Dokumentenfreigabe"
#. Name of a DocType
#: core/doctype/document_share_key/document_share_key.json
msgid "Document Share Key"
-msgstr ""
+msgstr "Dokumentfreigabeschlüssel"
#. Label of a Int field in DocType 'System Settings'
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Document Share Key Expiry (in Days)"
-msgstr ""
+msgstr "Gültigkeitsdauer des Dokumentfreigabeschlüssels (in Tagen)"
#. Name of a report
#. Label of a Link in the Users Workspace
@@ -9349,7 +9493,7 @@ msgstr "Dokumententyp"
#: desk/doctype/number_card/number_card.py:55
msgid "Document Type and Function are required to create a number card"
-msgstr ""
+msgstr "Dokumententyp und Funktion werden benötigt, um eine Nummernkarte zu erstellen"
#: permissions.py:149
msgid "Document Type is not importable"
@@ -9379,7 +9523,7 @@ msgstr "Dokumententypen"
#: core/doctype/user_type/user_type.json
msgctxt "User Type"
msgid "Document Types (Select Permissions Only)"
-msgstr ""
+msgstr "Dokumententypen (nur „Auswahl“-Berechtigungen)"
#. Label of a Section Break field in DocType 'User Type'
#: core/doctype/user_type/user_type.json
@@ -9535,13 +9679,13 @@ msgstr "Senden Sie keine E-Mails"
#: custom/doctype/customize_form_field/customize_form_field.json
msgctxt "Customize Form Field"
msgid "Don't encode HTML tags like <script> or just characters like < or >, as they could be intentionally used in this field"
-msgstr ""
+msgstr "HTML-Tags wie <script> oder Zeichen wie < oder > nicht kodieren, da diese absichtlich in diesem Feld verwendet werden könnten"
#. Description of the 'Ignore XSS Filter' (Check) field in DocType 'DocField'
#: core/doctype/docfield/docfield.json
msgctxt "DocField"
msgid "Don't encode HTML tags like <script> or just characters like < or >, as they could be intentionally used in this field"
-msgstr ""
+msgstr "HTML-Tags wie <script> oder Zeichen wie < oder > nicht kodieren, da diese absichtlich in diesem Feld verwendet werden könnten"
#: www/login.html:119 www/login.html:135 www/update-password.html:34
msgid "Don't have an account?"
@@ -9688,7 +9832,7 @@ msgstr "Aktuelle Zeile duplizieren"
#: public/js/frappe/views/workspace/workspace.js:990
msgid "Duplicate of {0} named as {1} is created successfully"
-msgstr ""
+msgstr "Das Duplikat von {0} mit dem Namen {1} wurde erfolgreich erstellt"
#. Option for the 'Field Type' (Select) field in DocType 'Custom Field'
#: custom/doctype/custom_field/custom_field.json
@@ -9812,7 +9956,7 @@ msgstr "Dynamische Vorlage"
#. Description of the Onboarding Step 'Setup Naming Series'
#: custom/onboarding_step/naming_series/naming_series.json
msgid "Each document created in ERPNext can have a unique ID generated for it, using a prefix defined for it. Though each document has some prefix pre-configured, you can further customize it using tools like Naming Series Tool and Document Naming Rule.\n"
-msgstr ""
+msgstr "Für jedes in ERPNext erstellte Dokument kann eine eindeutige ID generiert werden, die ein dafür definiertes Präfix verwendet. Obwohl für jedes Dokument ein Präfix vorkonfiguriert ist, können Sie es mit Tools wie dem Nummernkreis-Tool und der Dokumentbenennungsregel weiter anpassen.\n"
#: core/page/dashboard_view/dashboard_view.js:169
#: printing/page/print_format_builder_beta/print_format_builder_beta.js:46
@@ -10258,7 +10402,7 @@ msgstr "E-Mail-Queue Empfänger"
#: email/queue.py:163
msgid "Email Queue flushing aborted due to too many failures."
-msgstr ""
+msgstr "Das Leeren der E-Mail-Warteschlange wurde aufgrund zu vieler Fehler abgebrochen."
#. Label of a HTML field in DocType 'Email Template'
#: email/doctype/email_template/email_template.json
@@ -10359,7 +10503,7 @@ msgstr "E-Mail-Vorlage"
#: desk/doctype/notification_settings/notification_settings.json
msgctxt "Notification Settings"
msgid "Email Threads on Assigned Document"
-msgstr ""
+msgstr "E-Mail-Threads zum zugewiesenen Dokument"
#. Label of a Small Text field in DocType 'Auto Email Report'
#: email/doctype/auto_email_report/auto_email_report.json
@@ -10589,7 +10733,7 @@ msgstr "Webseiten-Tracking aktivieren"
#: printing/doctype/print_format_field_template/print_format_field_template.py:27
msgid "Enable developer mode to create a standard Print Template"
-msgstr ""
+msgstr "Aktivieren Sie den Entwicklermodus, um eine Standard-Druckvorlage zu erstellen"
#: website/doctype/web_template/web_template.py:33
msgid "Enable developer mode to create a standard Web Template"
@@ -10600,14 +10744,15 @@ msgstr "Aktivieren Sie den Entwicklermodus, um eine Standard-Webvorlage zu erste
#: website/doctype/blog_post/blog_post.json
msgctxt "Blog Post"
msgid "Enable email notification for any comment or likes received on your Blog Post."
-msgstr ""
+msgstr "E-Mail-Benachrichtigung für Kommentare oder Likes zu Ihren Blog-Beiträgen aktivieren."
#. Description of the 'Modal Trigger' (Check) field in DocType 'Form Tour Step'
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "Enable if on click\n"
"opens modal."
-msgstr ""
+msgstr "Aktivieren, wenn bei Klick\n"
+"ein Modal geöffnet wird."
#. Label of a Check field in DocType 'Website Settings'
#: website/doctype/website_settings/website_settings.json
@@ -10726,21 +10871,21 @@ msgstr "Aktiviert Kalender- und Gantt-Ansichten."
#: email/doctype/email_account/email_account.js:232
msgid "Enabling auto reply on an incoming email account will send automated replies to all the synchronized emails. Do you wish to continue?"
-msgstr ""
+msgstr "Wenn Sie die automatische Beantwortung für ein eingehendes E-Mail-Konto aktivieren, werden automatische Antworten an alle synchronisierten E-Mails gesendet. Möchten Sie fortfahren?"
#. Description of the 'Queue in Background (BETA)' (Check) field in DocType
#. 'Customize Form'
#: custom/doctype/customize_form/customize_form.json
msgctxt "Customize Form"
msgid "Enabling this will submit documents in background"
-msgstr ""
+msgstr "Wenn Sie dies aktivieren, werden die Dokumente im Hintergrund gebucht"
#. Description of the 'Queue in Background (BETA)' (Check) field in DocType
#. 'DocType'
#: core/doctype/doctype/doctype.json
msgctxt "DocType"
msgid "Enabling this will submit documents in background"
-msgstr ""
+msgstr "Wenn Sie dies aktivieren, werden die Dokumente im Hintergrund gebucht"
#. Label of a Check field in DocType 'System Settings'
#: core/doctype/system_settings/system_settings.json
@@ -10873,7 +11018,7 @@ msgstr "Eingereiht von"
#: integrations/doctype/ldap_settings/ldap_settings.py:105
msgid "Ensure the user and group search paths are correct."
-msgstr ""
+msgstr "Stellen Sie sicher, dass die Suchpfade für Benutzer und Gruppen korrekt sind."
#: integrations/doctype/google_calendar/google_calendar.py:92
msgid "Enter Client Id and Client Secret in Google Settings."
@@ -10896,7 +11041,7 @@ msgstr "Wert eingeben"
#: public/js/frappe/form/form_tour.js:56
msgid "Enter a name for this {0}"
-msgstr ""
+msgstr "Geben Sie einen Namen für dieses {0} ein"
#. Description of the 'User Defaults' (Table) field in DocType 'User'
#: core/doctype/user/user.json
@@ -11031,11 +11176,11 @@ msgstr "Fehler beim Verbinden mit der QZ-Tray-Anwendung ...
Sie müssen
#: email/doctype/email_domain/email_domain.py:32
msgid "Error connecting via IMAP/POP3: {e}"
-msgstr ""
+msgstr "Fehler beim Verbinden über IMAP/POP3: {e}"
#: email/doctype/email_domain/email_domain.py:33
msgid "Error connecting via SMTP: {e}"
-msgstr ""
+msgstr "Fehler beim Verbinden über SMTP: {e}"
#: email/doctype/email_domain/email_domain.py:98
msgid "Error has occurred in {0}"
@@ -11119,7 +11264,7 @@ msgstr "Veranstaltungsteilnehmer"
#: desk/doctype/notification_settings/notification_settings.json
msgctxt "Notification Settings"
msgid "Event Reminders"
-msgstr ""
+msgstr "Ereignis Erinnerungen"
#: integrations/doctype/google_calendar/google_calendar.py:455
#: integrations/doctype/google_calendar/google_calendar.py:539
@@ -11146,7 +11291,8 @@ msgstr "Ereignisse im heutigen Kalender"
#: custom/onboarding_step/custom_field/custom_field.json
msgid "Every form in ERPNext has a standard set of fields. If you need to capture some information, but there is no standard Field available for it, you can insert Custom Field for it.\n\n"
"Once custom fields are added, you can use them for reports and analytics charts as well.\n"
-msgstr ""
+msgstr "Jedes Formular in ERPNext verfügt über eine Reihe von Standardfeldern. Wenn Sie eine Information erfassen müssen, für die kein Standardfeld zur Verfügung steht, können Sie dafür ein benutzerdefiniertes Feld einfügen.\n\n"
+"Sobald benutzerdefinierte Felder hinzugefügt sind, können Sie diese auch für Berichte und Diagramme verwenden.\n"
#. Label of a Check field in DocType 'DocShare'
#: core/doctype/docshare/docshare.json
@@ -11197,7 +11343,7 @@ msgstr "Beispiel: 00001"
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Example: Setting this to 24:00 will log out a user if they are not active for 24:00 hours."
-msgstr ""
+msgstr "Beispiel: Wenn Sie diesen Wert auf 24:00 setzen, wird ein Benutzer abgemeldet, wenn er 24:00 Stunden lang nicht aktiv ist."
#. Description of the 'Description' (Small Text) field in DocType 'Assignment
#. Rule'
@@ -11418,13 +11564,13 @@ msgstr "Export nicht erlaubt. Rolle {0} wird gebraucht zum exportieren."
#: core/doctype/data_export/data_export.json
msgctxt "Data Export"
msgid "Export the data without any header notes and column descriptions"
-msgstr ""
+msgstr "Daten ohne Kopfzeilenbeschreibungen und Spaltenbeschreibungen exportieren"
#. Label of a Check field in DocType 'Data Export'
#: core/doctype/data_export/data_export.json
msgctxt "Data Export"
msgid "Export without main header"
-msgstr ""
+msgstr "Export ohne Hauptkopfzeile"
#: public/js/frappe/data_import/data_exporter.js:243
msgid "Export {0} records"
@@ -11508,7 +11654,7 @@ msgstr "Fehlgeschlagen"
#: core/doctype/rq_worker/rq_worker.json
msgctxt "RQ Worker"
msgid "Failed Job Count"
-msgstr ""
+msgstr "Anzahl fehlgeschlagener Jobs"
#: model/workflow.py:305
msgid "Failed Transactions"
@@ -11516,7 +11662,7 @@ msgstr "Fehlgeschlagene Transaktionen"
#: utils/synchronization.py:46
msgid "Failed to aquire lock: {}. Lock may be held by another process."
-msgstr ""
+msgstr "Sperre konnte nicht erlangt werden: {}. Die Sperre wird möglicherweise von einem anderen Prozess gehalten."
#: integrations/doctype/ldap_settings/ldap_settings.py:360
msgid "Failed to change password."
@@ -11528,7 +11674,7 @@ msgstr "Der Abschluss des Setup ist fehlgeschlagen."
#: integrations/doctype/webhook/webhook.py:148
msgid "Failed to compute request body: {}"
-msgstr ""
+msgstr "Fehler beim Berechnen des Anfragekörpers: {}"
#: printing/doctype/network_printer_settings/network_printer_settings.py:45
#: printing/doctype/network_printer_settings/network_printer_settings.py:47
@@ -11541,11 +11687,11 @@ msgstr "Fehler beim Dekodieren des Tokens. Bitte geben Sie ein gültiges Base64-
#: core/doctype/rq_job/rq_job_list.js:33
msgid "Failed to enable scheduler: {0}"
-msgstr ""
+msgstr "Konnte Zeitplaner nicht aktivieren: {0}"
#: integrations/doctype/webhook/webhook.py:136
msgid "Failed to evaluate conditions: {}"
-msgstr ""
+msgstr "Die Bedingungen konnten nicht ausgewertet werden: {}"
#: types/exporter.py:197
msgid "Failed to export python type hints"
@@ -11569,11 +11715,11 @@ msgstr "Die Methode {0} mit {1} konnte nicht abgerufen werden"
#: model/virtual_doctype.py:64
msgid "Failed to import virtual doctype {}, is controller file present?"
-msgstr ""
+msgstr "Fehler beim Importieren des virtuellen Doctype {}, ist die Controller-Datei vorhanden?"
#: utils/image.py:75
msgid "Failed to optimize image: {0}"
-msgstr ""
+msgstr "Fehler beim Optimieren des Bilds: {0}"
#: email/doctype/email_queue/email_queue.py:278
msgid "Failed to send email with subject:"
@@ -11730,7 +11876,7 @@ msgstr "Das Feld "Route" ist für Web-Ansichten obligatorisch"
#: core/doctype/doctype/doctype.py:1477
msgid "Field \"title\" is mandatory if \"Website Search Field\" is set."
-msgstr ""
+msgstr "Das Feld \"Titel\" ist obligatorisch, wenn \"Website-Suchfeld\" eingestellt ist."
#: desk/doctype/bulk_update/bulk_update.js:17
msgid "Field \"value\" is mandatory. Please specify value to be updated"
@@ -11792,11 +11938,11 @@ msgstr "Feldtyp kann nicht für {0} geändert werden"
#: database/database.py:783
msgid "Field {0} does not exist on {1}"
-msgstr ""
+msgstr "Das Feld {0} existiert nicht auf {1}"
#: desk/form/meta.py:203
msgid "Field {0} is referring to non-existing doctype {1}."
-msgstr ""
+msgstr "Das Feld {0} bezieht sich auf einen nicht existierenden Doctype {1}."
#: public/js/frappe/form/form.js:1727
msgid "Field {0} not found."
@@ -11850,11 +11996,11 @@ msgstr "Feldname"
#: core/doctype/doctype/doctype.py:270
msgid "Fieldname '{0}' conflicting with a {1} of the name {2} in {3}"
-msgstr ""
+msgstr "Feldname '{0}' im Konflikt mit einem {1} mit dem Namen {2} in {3}"
#: core/doctype/doctype/doctype.py:1039
msgid "Fieldname called {0} must exist to enable autonaming"
-msgstr ""
+msgstr "Der Feldname {0} muss existieren, um die automatische Benennung zu ermöglichen"
#: database/schema.py:125 database/schema.py:359
msgid "Fieldname is limited to 64 characters ({0})"
@@ -11870,7 +12016,7 @@ msgstr "Feldname, der der DocType für dieses Verknüpfungsfeld sein wird."
#: public/js/form_builder/store.js:170
msgid "Fieldname {0} appears multiple times"
-msgstr ""
+msgstr "Feldname {0} erscheint mehrfach"
#: database/schema.py:349
msgid "Fieldname {0} cannot have special characters like {1}"
@@ -11937,7 +12083,7 @@ msgstr "Felder Multicheck"
#: core/doctype/file/file.py:406
msgid "Fields `file_name` or `file_url` must be set for File"
-msgstr ""
+msgstr "Felder `file_name` oder `file_url` müssen für die Datei gesetzt sein"
#. Description of the 'Search Fields' (Data) field in DocType 'Customize Form'
#: custom/doctype/customize_form/customize_form.json
@@ -11983,7 +12129,7 @@ msgstr "Feldtyp"
#: custom/doctype/custom_field/custom_field.py:189
msgid "Fieldtype cannot be changed from {0} to {1}"
-msgstr ""
+msgstr "Feldtyp kann nicht von {0} auf {1} geändert werden"
#: custom/doctype/customize_form/customize_form.py:586
msgid "Fieldtype cannot be changed from {0} to {1} in row {2}"
@@ -12095,7 +12241,7 @@ msgstr "Datei zu groß"
#: core/doctype/file/file.py:373
msgid "File type of {0} is not allowed"
-msgstr ""
+msgstr "Der Dateityp {0} ist nicht zulässig"
#: core/doctype/file/file.py:360 core/doctype/file/file.py:422
msgid "File {0} does not exist"
@@ -12227,7 +12373,7 @@ msgstr "Filter"
#: public/js/frappe/ui/filters/filter_list.js:131
msgid "Filters {0}"
-msgstr ""
+msgstr "Filter {0}"
#. Label of a Code field in DocType 'Number Card'
#: desk/doctype/number_card/number_card.json
@@ -12454,7 +12600,7 @@ msgstr "Folgen"
#: email/doctype/auto_email_report/auto_email_report.py:124
msgid "Following Report Filters have missing values:"
-msgstr ""
+msgstr "Die folgenden Berichtsfilter haben fehlende Werte:"
#: website/doctype/web_form/web_form.py:107
msgid "Following fields are missing:"
@@ -12474,7 +12620,7 @@ msgstr "Den folgende Feldern fehlen Werte:"
#: email/doctype/newsletter/newsletter.js:30
msgid "Following links are broken in the email content: {0}"
-msgstr ""
+msgstr "Die folgenden Links in der E-Mail sind defekt: {0}"
#. Label of a Select field in DocType 'Print Settings'
#: printing/doctype/print_settings/print_settings.json
@@ -12574,7 +12720,7 @@ msgstr "Fußzeile HTML"
#: printing/doctype/letter_head/letter_head.py:72
msgid "Footer HTML set from attachment {0}"
-msgstr ""
+msgstr "Fußzeilen-HTML aus Anhang {0} festgelegt"
#. Label of a Section Break field in DocType 'Letter Head'
#: printing/doctype/letter_head/letter_head.json
@@ -12609,7 +12755,7 @@ msgstr "Werte für Fußzeilenvorlagen"
#: printing/page/print/print.js:116
msgid "Footer might not be visible as {0} option is disabled"
-msgstr ""
+msgstr "Die Fußzeile ist möglicherweise nicht sichtbar, da die Option {0} deaktiviert ist"
#. Description of the 'Footer HTML' (HTML Editor) field in DocType 'Letter
#. Head'
@@ -12644,14 +12790,16 @@ msgstr "Zum Beispiel: {} Öffnen"
msgctxt "Customize Form Field"
msgid "For Links, enter the DocType as range.\n"
"For Select, enter list of Options, each on a new line."
-msgstr ""
+msgstr "Für Links geben Sie den DocType als Bereich ein.\n"
+"Für Auswahl geben Sie eine Liste von Optionen ein, jede in einer neuen Zeile."
#. Description of the 'Options' (Small Text) field in DocType 'DocField'
#: core/doctype/docfield/docfield.json
msgctxt "DocField"
msgid "For Links, enter the DocType as range.\n"
"For Select, enter list of Options, each on a new line."
-msgstr ""
+msgstr "Für Links geben Sie den DocType als Bereich ein.\n"
+"Für Auswahl geben Sie eine Liste von Optionen ein, jede in einer neuen Zeile."
#: core/doctype/user_permission/user_permission_list.js:10
#: core/doctype/user_permission/user_permission_list.js:148
@@ -12719,7 +12867,7 @@ msgstr "Weitere Informationen erhalten Sie bei {0}."
#: email/doctype/auto_email_report/auto_email_report.json
msgctxt "Auto Email Report"
msgid "For multiple addresses, enter the address on different line. e.g. test@test.com ⏎ test1@test.com"
-msgstr ""
+msgstr "Bei mehreren Adressen geben Sie bitte jede Adresse in einer neuen Zeile ein. z.B. test@test.com ⏎ test1@test.com"
#: core/doctype/data_export/exporter.py:199
msgid "For updating, you can update only selective columns."
@@ -12746,13 +12894,13 @@ msgstr "Erzwingen"
#: custom/doctype/customize_form/customize_form.json
msgctxt "Customize Form"
msgid "Force Re-route to Default View"
-msgstr ""
+msgstr "Umleitung zur Standardansicht erzwingen"
#. Label of a Check field in DocType 'DocType'
#: core/doctype/doctype/doctype.json
msgctxt "DocType"
msgid "Force Re-route to Default View"
-msgstr ""
+msgstr "Umleitung zur Standardansicht erzwingen"
#. Label of a Check field in DocType 'Desktop Icon'
#: desk/doctype/desktop_icon/desktop_icon.json
@@ -12762,7 +12910,7 @@ msgstr "Anzeige erzwingen"
#: core/doctype/rq_job/rq_job.js:13
msgid "Force Stop job"
-msgstr ""
+msgstr "Job stoppen erzwingen"
#. Label of a Int field in DocType 'System Settings'
#: core/doctype/system_settings/system_settings.json
@@ -12774,7 +12922,7 @@ msgstr "Benutzer zum Zurücksetzen des Kennworts zwingen"
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Force Web Capture Mode for Uploads"
-msgstr ""
+msgstr "Web-Capture-Modus für Uploads erzwingen"
#: www/login.html:35
msgid "Forgot Password?"
@@ -12818,13 +12966,13 @@ msgstr "Formular"
#: custom/doctype/customize_form/customize_form.json
msgctxt "Customize Form"
msgid "Form Builder"
-msgstr ""
+msgstr "Formular-Generator"
#. Label of a HTML field in DocType 'DocType'
#: core/doctype/doctype/doctype.json
msgctxt "DocType"
msgid "Form Builder"
-msgstr ""
+msgstr "Formular-Generator"
#. Label of a Code field in DocType 'Recorder'
#: core/doctype/recorder/recorder.json
@@ -12933,7 +13081,7 @@ msgstr "Frappe-Framework"
#: public/js/frappe/ui/theme_switcher.js:59
msgid "Frappe Light"
-msgstr ""
+msgstr "Frappe Hell"
#. Label of a standard help item
#. Type: Action
@@ -13057,7 +13205,7 @@ msgstr "Vom Benutzer"
#: public/js/frappe/utils/diffview.js:30
msgid "From version"
-msgstr ""
+msgstr "Von Version"
#. Option for the 'Width' (Select) field in DocType 'Dashboard Chart Link'
#: desk/doctype/dashboard_chart_link/dashboard_chart_link.json
@@ -13126,7 +13274,7 @@ msgstr "Funktion basiert auf"
#: __init__.py:835
msgid "Function {0} is not whitelisted."
-msgstr ""
+msgstr "Funktion {0} ist nicht freigegeben."
#: public/js/frappe/views/treeview.js:402
msgid "Further nodes can be only created under 'Group' type nodes"
@@ -13241,7 +13389,7 @@ msgstr "Alarme für heute"
#: desk/page/backups/backups.js:19
msgid "Get Backup Encryption Key"
-msgstr ""
+msgstr "Backup-Verschlüsselungsschlüssel abrufen"
#. Label of a Button field in DocType 'Auto Repeat'
#: automation/doctype/auto_repeat/auto_repeat.json
@@ -13259,7 +13407,7 @@ msgstr "Artikel aufrufen"
#: integrations/doctype/connected_app/connected_app.js:6
msgid "Get OpenID Configuration"
-msgstr ""
+msgstr "OpenID-Konfiguration abrufen"
#: www/printview.html:22
msgid "Get PDF"
@@ -13270,14 +13418,14 @@ msgstr "PDF herunterladen"
#: core/doctype/document_naming_settings/document_naming_settings.json
msgctxt "Document Naming Settings"
msgid "Get a preview of generated names with a series."
-msgstr ""
+msgstr "Erhalten Sie eine Vorschau der generierten Namen eines Nummernkreises."
#. Description of the 'Email Threads on Assigned Document' (Check) field in
#. DocType 'Notification Settings'
#: desk/doctype/notification_settings/notification_settings.json
msgctxt "Notification Settings"
msgid "Get notified when an email is received on any of the documents assigned to you."
-msgstr ""
+msgstr "Benachrichtigen, wenn eine E-Mail auf einem der Ihnen zugewiesenen Dokumente empfangen wird."
#. Description of the 'User Image' (Attach Image) field in DocType 'User'
#: core/doctype/user/user.json
@@ -13289,7 +13437,7 @@ msgstr "Allgemein wiedererkennbaren Avatar von Gravatar.com abrufen"
#: core/doctype/installed_application/installed_application.json
msgctxt "Installed Application"
msgid "Git Branch"
-msgstr ""
+msgstr "Git-Zweig"
#. Option for the 'Social Login Provider' (Select) field in DocType 'Social
#. Login Key'
@@ -13371,7 +13519,7 @@ msgstr "Gehe zum Dokument"
#: website/doctype/web_form/web_form.json
msgctxt "Web Form"
msgid "Go to this URL after completing the form"
-msgstr ""
+msgstr "Nach dem Ausfüllen des Formulars diese URL aufrufen"
#: core/doctype/doctype/doctype.js:54
#: custom/doctype/client_script/client_script.js:10
@@ -13435,7 +13583,7 @@ msgstr "Google-Kalender"
#: integrations/doctype/google_calendar/google_calendar.py:781
msgid "Google Calendar - Contact / email not found. Did not add attendee for -
{0}"
-msgstr ""
+msgstr "Google Kalender - Kontakt / E-Mail nicht gefunden. Teilnehmer wurde nicht hinzugefügt für -
{0}"
#: integrations/doctype/google_calendar/google_calendar.py:251
msgid "Google Calendar - Could not create Calendar for {0}, error code {1}."
@@ -13696,11 +13844,11 @@ msgstr "Gruppen-Knoten"
#: integrations/doctype/ldap_settings/ldap_settings.json
msgctxt "LDAP Settings"
msgid "Group Object Class"
-msgstr ""
+msgstr "Gruppenobjektklasse"
#: public/js/frappe/ui/group_by/group_by.js:415
msgid "Grouped by {0}"
-msgstr ""
+msgstr "Gruppiert nach {0}"
#. Option for the 'Method' (Select) field in DocType 'Recorder'
#: core/doctype/recorder/recorder.json
@@ -13865,7 +14013,7 @@ msgstr "Hat Domain"
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "Has Next Condition"
-msgstr ""
+msgstr "Hat nächste Bedingung"
#. Name of a DocType
#: core/doctype/has_role/has_role.json
@@ -13932,13 +14080,13 @@ msgstr "Header, Robots"
#: integrations/doctype/webhook/webhook.json
msgctxt "Webhook"
msgid "Headers"
-msgstr ""
+msgstr "Headers"
#. Label of a Code field in DocType 'Webhook Request Log'
#: integrations/doctype/webhook_request_log/webhook_request_log.json
msgctxt "Webhook Request Log"
msgid "Headers"
-msgstr ""
+msgstr "Headers"
#: printing/page/print_format_builder/print_format_builder.js:602
msgid "Heading"
@@ -14048,7 +14196,7 @@ msgstr "Hilfe zur Suche"
#: desk/doctype/note/note.json
msgctxt "Note"
msgid "Help: To link to another record in the system, use \"/app/note/[Note Name]\" as the Link URL. (don't use \"http://\")"
-msgstr ""
+msgstr "Hilfe: Um einen Link zu einem anderen Datensatz im System zu erstellen, verwenden Sie \"/app/note/[Name der Notiz]\" als Link URL. (ohne \"http://\" und Domain)"
#. Label of a Int field in DocType 'Help Article'
#: website/doctype/help_article/help_article.json
@@ -14222,13 +14370,13 @@ msgstr "Tage verstecken"
#: core/doctype/user_permission/user_permission_list.js:96
msgid "Hide Descendants"
-msgstr ""
+msgstr "Nachkommen ausblenden"
#. Label of a Check field in DocType 'User Permission'
#: core/doctype/user_permission/user_permission.json
msgctxt "User Permission"
msgid "Hide Descendants"
-msgstr ""
+msgstr "Nachkommen ausblenden"
#: www/error.html:41 www/error.html:56
msgid "Hide Error"
@@ -14249,7 +14397,7 @@ msgstr "Vorschau verbergen"
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "Hide Previous, Next and Close button on highlight dialog."
-msgstr ""
+msgstr "Die Schaltflächen Zurück, Weiter und Schließen ausblenden."
#: public/js/frappe/list/list_filter.js:87
msgid "Hide Saved"
@@ -14277,7 +14425,7 @@ msgstr "Sekunden ausblenden"
#: core/doctype/doctype/doctype.json
msgctxt "DocType"
msgid "Hide Sidebar, Menu, and Comments"
-msgstr ""
+msgstr "Seitenleiste, Menü und Kommentare ausblenden"
#. Label of a Check field in DocType 'Portal Settings'
#: website/doctype/portal_settings/portal_settings.json
@@ -14302,7 +14450,7 @@ msgstr "Arbeitsbereich ausblenden"
#: core/doctype/user_permission/user_permission.json
msgctxt "User Permission"
msgid "Hide descendant records of For Value."
-msgstr ""
+msgstr "Untergeordnete Datensätze von Für Wert ausblenden."
#: public/js/frappe/form/layout.js:260
msgid "Hide details"
@@ -14466,7 +14614,7 @@ msgstr "ID (Name) der Einheit, deren Eigenschaft festgelegt werden muss"
#: website/doctype/web_page_block/web_page_block.json
msgctxt "Web Page Block"
msgid "IDs must contain only alphanumeric characters, not contain spaces, and should be unique."
-msgstr ""
+msgstr "IDs dürfen nur alphanumerische Zeichen enthalten, keine Leerzeichen und sollten eindeutig sein."
#. Label of a Section Break field in DocType 'Email Account'
#: email/doctype/email_account/email_account.json
@@ -14585,7 +14733,7 @@ msgstr "Identitätsdetails"
#: desk/doctype/desktop_icon/desktop_icon.json
msgctxt "Desktop Icon"
msgid "Idx"
-msgstr ""
+msgstr "Pos"
#. Description of the 'Apply Strict User Permissions' (Check) field in DocType
#. 'System Settings'
@@ -14623,7 +14771,7 @@ msgstr "Wenn aktiviert, werden alle anderen Workflows inaktiv."
#: printing/doctype/print_format/print_format.json
msgctxt "Print Format"
msgid "If checked, negative numeric values of Currency, Quantity or Count would be shown as positive"
-msgstr ""
+msgstr "Wenn aktiviert, werden negative numerische Werte von Währung, Menge oder Anzahl als positiv angezeigt"
#. Description of the 'Skip Authorization' (Check) field in DocType 'OAuth
#. Client'
@@ -14733,13 +14881,13 @@ msgstr "Wenn nicht gesetzt, hängt die Währungspräzision vom Zahlenformat ab"
#: desk/doctype/dashboard_chart/dashboard_chart.json
msgctxt "Dashboard Chart"
msgid "If set, only user with these roles can access this chart. If not set, DocType or Report permissions will be used."
-msgstr ""
+msgstr "Wenn diese Option gesetzt ist, können nur Benutzer mit diesen Rollen auf dieses Diagramm zugreifen. Wenn nicht festgelegt, werden die Berechtigungen für den zugehörigen DocType oder Report verwendet."
#. Description of the 'Condition' (Code) field in DocType 'Energy Point Rule'
#: social/doctype/energy_point_rule/energy_point_rule.json
msgctxt "Energy Point Rule"
msgid "If the condition is satisfied user will be rewarded with the points. eg. doc.status == 'Closed'\n"
-msgstr ""
+msgstr "Wenn die Bedingung erfüllt ist, wird der Benutzer mit den Punkten belohnt. z.B. doc.status == 'Closed'\n"
#. Description of the 'User Type' (Link) field in DocType 'User'
#: core/doctype/user/user.json
@@ -14752,21 +14900,21 @@ msgstr "Wenn der Benutzer eine Rolle geprüft hat, wird er ein \"System User\".
#: custom/doctype/custom_field/custom_field.json
msgctxt "Custom Field"
msgid "If unchecked, the value will always be re-fetched on save."
-msgstr ""
+msgstr "Wenn diese Option deaktiviert ist, wird der Wert beim Speichern immer erneut abgerufen."
#. Description of the 'Fetch on Save if Empty' (Check) field in DocType
#. 'Customize Form Field'
#: custom/doctype/customize_form_field/customize_form_field.json
msgctxt "Customize Form Field"
msgid "If unchecked, the value will always be re-fetched on save."
-msgstr ""
+msgstr "Wenn diese Option deaktiviert ist, wird der Wert beim Speichern immer erneut abgerufen."
#. Description of the 'Fetch on Save if Empty' (Check) field in DocType
#. 'DocField'
#: core/doctype/docfield/docfield.json
msgctxt "DocField"
msgid "If unchecked, the value will always be re-fetched on save."
-msgstr ""
+msgstr "Wenn diese Option deaktiviert ist, wird der Wert beim Speichern immer erneut abgerufen."
#. Label of a Check field in DocType 'Custom DocPerm'
#: core/doctype/custom_docperm/custom_docperm.json
@@ -14794,11 +14942,11 @@ msgstr "Wenn neue Datensätze hochgeladen werden, bitte die Spalte \"Bezeichnung
#: utils/password.py:200
msgid "If you have recently restored the site you may need to copy the site config contaning original Encryption Key."
-msgstr ""
+msgstr "Falls Sie diese Instanz kürzlich wiederhergestellt haben, müssen Sie möglicherweise noch den Verschlüsselungsschlüssel des vorherigen Systems in die Site Config übernehmen."
#: core/doctype/doctype/doctype.js:80
msgid "If you just want to customize for your site, use {0} instead."
-msgstr ""
+msgstr "Falls Sie nur für Ihre Instanz anpassen möchten, verwenden Sie stattdessen {0}."
#. Description of the 'Parent Label' (Select) field in DocType 'Top Bar Item'
#: website/doctype/top_bar_item/top_bar_item.json
@@ -14997,7 +15145,7 @@ msgstr "Bilder"
#: core/doctype/log_settings/log_settings.py:56
msgid "Implement `clear_old_logs` method to enable auto error clearing."
-msgstr ""
+msgstr "Implementieren Sie die Methode `clear_old_logs`, um die automatische Fehlerbereinigung zu aktivieren."
#. Option for the 'Grant Type' (Select) field in DocType 'OAuth Client'
#: integrations/doctype/oauth_client/oauth_client.json
@@ -15137,7 +15285,7 @@ msgstr "In Tagen"
#. Description of the Onboarding Step 'Setup Limited Access for a User'
#: custom/onboarding_step/role_permissions/role_permissions.json
msgid "In ERPNext, you can add your Employees as Users, and give them restricted access. Tools like Role Permission and User Permission allow you to define rules which give restricted access to the user to masters and transactions."
-msgstr ""
+msgstr "In ERPNext können Sie Ihre Mitarbeiter als Benutzer hinzufügen und ihnen eingeschränkten Zugriff gewähren. Mit Werkzeugen wie Rollenberechtigung und Benutzerberechtigung können Sie Regeln definieren, die dem Benutzer einen eingeschränkten Zugang zu Stammdaten und Transaktionen ermöglichen."
#. Label of a Check field in DocType 'Customize Form Field'
#: custom/doctype/customize_form_field/customize_form_field.json
@@ -15248,7 +15396,7 @@ msgstr "Im Standard-Filter"
#. Description of the Onboarding Step 'Generate Custom Reports'
#: custom/onboarding_step/report_builder/report_builder.json
msgid "In each module, you will find a host of single-click reports, ranging from financial statements to sales and purchase analytics and stock tracking reports. If a required new report is not available out-of-the-box, you can create custom reports in ERPNext by pulling values from the same multiple ERPNext tables.\n"
-msgstr ""
+msgstr "In jedem Modul finden Sie eine Vielzahl von Berichten, die Sie per Mausklick erstellen können – von Finanzberichten über Verkaufs- und Einkaufsanalysen bis hin zu Berichten zur Bestandsverfolgung. Wenn ein benötigter Bericht noch nicht angeboten wird, können Sie in ERPNext benutzerdefinierte Berichte erstellen, in denen Sie Werte aus denselben vielzähligen ERPNext-Tabellen abrufen.\n"
#. Description of the 'Font Size' (Float) field in DocType 'Print Settings'
#: printing/doctype/print_settings/print_settings.json
@@ -15311,7 +15459,7 @@ msgstr "Dokument Web View Link per E-Mail senden"
#: public/js/frappe/views/reports/query_report.js:1488
msgid "Include filters"
-msgstr ""
+msgstr "Filter einbeziehen"
#: public/js/frappe/views/reports/query_report.js:1480
msgid "Include indentation"
@@ -15325,25 +15473,25 @@ msgstr "Geben Sie Symbole, Zahlen und Großbuchstaben in das Passwort ein"
#: email/doctype/email_account/email_account.json
msgctxt "Email Account"
msgid "Incoming (POP/IMAP) Settings"
-msgstr ""
+msgstr "Eingehende (POP/IMAP) Einstellungen"
#. Label of a Data field in DocType 'Email Account'
#: email/doctype/email_account/email_account.json
msgctxt "Email Account"
msgid "Incoming Server"
-msgstr ""
+msgstr "Eingehender Server"
#. Label of a Data field in DocType 'Email Domain'
#: email/doctype/email_domain/email_domain.json
msgctxt "Email Domain"
msgid "Incoming Server"
-msgstr ""
+msgstr "Eingehender Server"
#. Label of a Section Break field in DocType 'Email Domain'
#: email/doctype/email_domain/email_domain.json
msgctxt "Email Domain"
msgid "Incoming Settings"
-msgstr ""
+msgstr "Eingehende Einstellungen"
#: email/doctype/email_domain/email_domain.py:32
msgid "Incoming email account not correct"
@@ -15351,7 +15499,7 @@ msgstr "Falsches Konto für eingehende E-Mails"
#: model/virtual_doctype.py:81 model/virtual_doctype.py:94
msgid "Incomplete Virtual Doctype Implementation"
-msgstr ""
+msgstr "Unvollständige Implementierung des virtuellen DocTypes"
#: auth.py:236
msgid "Incomplete login details"
@@ -15385,25 +15533,25 @@ msgstr "Falscher Wert: {0} muss {1} {2} sein"
#: public/js/frappe/model/model.js:114
#: public/js/frappe/views/reports/report_view.js:941
msgid "Index"
-msgstr ""
+msgstr "Pos"
#. Label of a Check field in DocType 'Custom Field'
#: custom/doctype/custom_field/custom_field.json
msgctxt "Custom Field"
msgid "Index"
-msgstr ""
+msgstr "Pos"
#. Label of a Check field in DocType 'DocField'
#: core/doctype/docfield/docfield.json
msgctxt "DocField"
msgid "Index"
-msgstr ""
+msgstr "Pos"
#. Label of a Int field in DocType 'Recorder Query'
#: core/doctype/recorder_query/recorder_query.json
msgctxt "Recorder Query"
msgid "Index"
-msgstr ""
+msgstr "Pos"
#. Label of a Check field in DocType 'DocType'
#: core/doctype/doctype/doctype.json
@@ -15520,7 +15668,7 @@ msgstr "Stil einfügen"
#: public/js/frappe/ui/toolbar/search_utils.js:646
#: public/js/frappe/ui/toolbar/search_utils.js:647
msgid "Install {0} from Marketplace"
-msgstr ""
+msgstr "{0} aus Marketplace installieren"
#. Name of a DocType
#: core/doctype/installed_application/installed_application.json
@@ -15560,7 +15708,7 @@ msgstr "Unzureichende Berechtigungen um Bericht zu bearbeiten"
#: core/doctype/doctype/doctype.py:447
msgid "Insufficient attachment limit"
-msgstr ""
+msgstr "Unzureichende Begrenzung für Anhänge"
#. Option for the 'Field Type' (Select) field in DocType 'Custom Field'
#: custom/doctype/custom_field/custom_field.json
@@ -15717,7 +15865,7 @@ msgstr "Ungültiger "abhängiger_on" -Ausdruck im Filter {0}"
#: public/js/frappe/form/save.js:206
msgid "Invalid \"mandatory_depends_on\" expression"
-msgstr ""
+msgstr "Ungültiger Ausdruck in Bedingung für Pflichtfeld"
#: utils/nestedset.py:181
msgid "Invalid Action"
@@ -15793,7 +15941,7 @@ msgstr "Ungültige Option"
#: email/smtp.py:102
msgid "Invalid Outgoing Mail Server or Port: {0}"
-msgstr ""
+msgstr "Ungültiger Postausgang Server oder Port: {0}"
#: email/doctype/auto_email_report/auto_email_report.py:182
msgid "Invalid Output Format"
@@ -15840,7 +15988,7 @@ msgstr "Ungültiger Benutzername oder fehlendes Passwort. Bitte Angaben korrigie
#: integrations/doctype/webhook/webhook.py:116
msgid "Invalid Webhook Secret"
-msgstr ""
+msgstr "Ungültiges Webhook Geheimnis"
#: desk/reportview.py:150
msgid "Invalid aggregate function"
@@ -15889,7 +16037,7 @@ msgstr "Ungültiger JSON in den benutzerdefinierten Optionen hinzugefügt: {0}"
#: model/naming.py:445
msgid "Invalid name type (integer) for varchar name column"
-msgstr ""
+msgstr "Ungültiger Namenstyp (Ganzzahl) für die Varchar-Namensspalte"
#: model/naming.py:52
msgid "Invalid naming series {}: dot (.) missing"
@@ -15901,11 +16049,11 @@ msgstr "Ungültiger oder beschädigter Inhalt für den Import"
#: website/doctype/website_settings/website_settings.py:139
msgid "Invalid redirect regex in row #{}: {}"
-msgstr ""
+msgstr "Ungültige Weiterleitungs-Regex in Zeile #{}: {}"
#: app.py:301
msgid "Invalid request arguments"
-msgstr ""
+msgstr "Ungültige Anfrageargumente"
#: integrations/doctype/connected_app/connected_app.py:172
msgid "Invalid state."
@@ -16413,49 +16561,49 @@ msgstr "Jinja"
#: core/doctype/prepared_report/prepared_report.json
msgctxt "Prepared Report"
msgid "Job ID"
-msgstr ""
+msgstr "Job-ID"
#. Label of a Data field in DocType 'RQ Job'
#: core/doctype/rq_job/rq_job.json
msgctxt "RQ Job"
msgid "Job ID"
-msgstr ""
+msgstr "Job-ID"
#. Label of a Link field in DocType 'Submission Queue'
#: core/doctype/submission_queue/submission_queue.json
msgctxt "Submission Queue"
msgid "Job Id"
-msgstr ""
+msgstr "Job Id"
#. Label of a Section Break field in DocType 'RQ Job'
#: core/doctype/rq_job/rq_job.json
msgctxt "RQ Job"
msgid "Job Info"
-msgstr ""
+msgstr "Jobinfo"
#. Label of a Data field in DocType 'RQ Job'
#: core/doctype/rq_job/rq_job.json
msgctxt "RQ Job"
msgid "Job Name"
-msgstr ""
+msgstr "Jobname"
#. Label of a Section Break field in DocType 'RQ Job'
#: core/doctype/rq_job/rq_job.json
msgctxt "RQ Job"
msgid "Job Status"
-msgstr ""
+msgstr "Jobstatus"
#: core/doctype/rq_job/rq_job.js:24
msgid "Job Stopped Successfully"
-msgstr ""
+msgstr "Job erfolgreich beendet"
#: core/doctype/rq_job/rq_job.py:122
msgid "Job is not running."
-msgstr ""
+msgstr "Job läuft nicht."
#: desk/doctype/event/event.js:51
msgid "Join video conference with {0}"
-msgstr ""
+msgstr "Videokonferenz mit {0} beitreten"
#: public/js/frappe/form/toolbar.js:355 public/js/frappe/form/toolbar.js:757
msgid "Jump to field"
@@ -16562,7 +16710,7 @@ msgstr "Tastatürkürzel"
#: public/js/frappe/utils/number_systems.js:37
msgctxt "Number system"
msgid "Kh"
-msgstr ""
+msgstr "Kh"
#. Label of a Card Break in the Website Workspace
#: website/doctype/help_article/help_article.py:80
@@ -16584,13 +16732,13 @@ msgstr "Wissensdatenbank Bearbeiter/-in"
#: public/js/frappe/utils/number_systems.js:49
msgctxt "Number system"
msgid "L"
-msgstr ""
+msgstr "L"
#. Label of a Section Break field in DocType 'LDAP Settings'
#: integrations/doctype/ldap_settings/ldap_settings.json
msgctxt "LDAP Settings"
msgid "LDAP Auth"
-msgstr ""
+msgstr "LDAP-Authentifizierung"
#. Label of a Section Break field in DocType 'LDAP Settings'
#: integrations/doctype/ldap_settings/ldap_settings.json
@@ -16638,7 +16786,7 @@ msgstr "LDAP-Gruppenzuordnungen"
#: integrations/doctype/ldap_settings/ldap_settings.json
msgctxt "LDAP Settings"
msgid "LDAP Group Member attribute"
-msgstr ""
+msgstr "LDAP-Gruppenmitgliedsattribut"
#. Label of a Data field in DocType 'LDAP Settings'
#: integrations/doctype/ldap_settings/ldap_settings.json
@@ -16656,7 +16804,7 @@ msgstr "LDAP Middle Name-Feld"
#: integrations/doctype/ldap_settings/ldap_settings.json
msgctxt "LDAP Settings"
msgid "LDAP Mobile Field"
-msgstr ""
+msgstr "LDAP-Mobilfunkfeld"
#: integrations/doctype/ldap_settings/ldap_settings.py:160
msgid "LDAP Not Installed"
@@ -16676,13 +16824,13 @@ msgstr "LDAP Suchstring"
#: integrations/doctype/ldap_settings/ldap_settings.py:127
msgid "LDAP Search String must be enclosed in '()' and needs to contian the user placeholder {0}, eg sAMAccountName={0}"
-msgstr ""
+msgstr "Der LDAP-Suchstring muss in '()' eingeschlossen sein und den Benutzerplatzhalter {0} enthalten, z.B. sAMAccountName={0}"
#. Label of a Section Break field in DocType 'LDAP Settings'
#: integrations/doctype/ldap_settings/ldap_settings.json
msgctxt "LDAP Settings"
msgid "LDAP Search and Paths"
-msgstr ""
+msgstr "LDAP-Suche und Pfade"
#. Label of a Section Break field in DocType 'LDAP Settings'
#: integrations/doctype/ldap_settings/ldap_settings.json
@@ -17072,11 +17220,11 @@ msgstr "Zuletzt synchronisiert {0}"
#: custom/doctype/customize_form/customize_form.js:186
msgid "Layout Reset"
-msgstr ""
+msgstr "Layout zurücksetzen"
#: custom/doctype/customize_form/customize_form.js:178
msgid "Layout will be reset to standard layout, are you sure you want to do this?"
-msgstr ""
+msgstr "Das Layout wird auf das Standardlayout zurückgesetzt. Sind Sie sicher, dass Sie dies tun möchten?"
#: desk/page/leaderboard/leaderboard.js:15
msgid "Leaderboard"
@@ -17085,7 +17233,7 @@ msgstr "Bestenliste"
#. Label of an action in the Onboarding Step 'Customize Print Formats'
#: custom/onboarding_step/print_format/print_format.json
msgid "Learn about Standard and Custom Print Formats"
-msgstr ""
+msgstr "Erfahren Sie mehr über Standard- und benutzerdefinierte Druckformate"
#. Title of an Onboarding Step
#: website/onboarding_step/web_page_tour/web_page_tour.json
@@ -17104,7 +17252,7 @@ msgstr "Mehr erfahren"
#. Label of an action in the Onboarding Step 'Generate Custom Reports'
#: custom/onboarding_step/report_builder/report_builder.json
msgid "Learn more about Report Builders"
-msgstr ""
+msgstr "Erfahren Sie mehr über Berichterstellungswerkzeuge"
#. Label of an action in the Onboarding Step 'Custom Document Types'
#: custom/onboarding_step/custom_doctype/custom_doctype.json
@@ -17596,17 +17744,17 @@ msgstr "Link zu"
#: desk/doctype/workspace_link/workspace_link.json
msgctxt "Workspace Link"
msgid "Link Type"
-msgstr ""
+msgstr "Linktyp"
#: website/doctype/about_us_settings/about_us_settings.js:6
msgid "Link for About Us Page is \"/about\"."
-msgstr ""
+msgstr "Der Link zur Seite „Über uns“ lautet „/about“."
#. Description of the 'Home Page' (Data) field in DocType 'Website Settings'
#: website/doctype/website_settings/website_settings.json
msgctxt "Website Settings"
msgid "Link that is the website home page. Standard Links (home, login, products, blog, about, contact)"
-msgstr ""
+msgstr "Pfad, der als Startseite verwendet werden soll. Standardpfade: home, login, products, blog, about, contact"
#. Description of the 'URL' (Data) field in DocType 'Top Bar Item'
#: website/doctype/top_bar_item/top_bar_item.json
@@ -17694,13 +17842,13 @@ msgstr "Liste"
#: core/doctype/docfield/docfield.json
msgctxt "DocField"
msgid "List / Search Settings"
-msgstr ""
+msgstr "Listen-/Sucheinstellungen"
#. Label of a Table field in DocType 'Web Form'
#: website/doctype/web_form/web_form.json
msgctxt "Web Form"
msgid "List Columns"
-msgstr ""
+msgstr "Listenspalten"
#. Name of a DocType
#: desk/doctype/list_filter/list_filter.json
@@ -17759,7 +17907,7 @@ msgstr "Liste als [{ \"label\": _ ( \"Jobs\"), \"route\": \"jobs\"}]"
#: public/js/frappe/ui/toolbar/search_utils.js:526
msgid "Lists"
-msgstr ""
+msgstr "Listen"
#. Option for the 'Rule' (Select) field in DocType 'Assignment Rule'
#: automation/doctype/assignment_rule/assignment_rule.json
@@ -17825,7 +17973,7 @@ msgstr "Anmelden bei {0}"
#: core/doctype/data_import_log/data_import_log.json
msgctxt "Data Import Log"
msgid "Log Index"
-msgstr ""
+msgstr "Protokollindex"
#. Name of a DocType
#: core/doctype/log_setting_user/log_setting_user.json
@@ -17928,7 +18076,7 @@ msgstr "Anmelden und im Browser anzeigen"
#: website/doctype/web_form/web_form.js:358
msgid "Login is required to see web form list view. Enable {0} to see list settings"
-msgstr ""
+msgstr "Um die Listenansicht des Webformulars zu sehen, ist eine Anmeldung erforderlich. Aktivieren Sie {0}, um die Listeneinstellungen zu sehen"
#: auth.py:322 auth.py:325
msgid "Login not allowed at this time"
@@ -17968,7 +18116,7 @@ msgstr "Mit E-Mail-Link anmelden"
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Login with email link expiry (in minutes)"
-msgstr ""
+msgstr "Gültigkeitsdauer des E-Mail-Links (in Minuten)"
#: auth.py:131
msgid "Login with username and password is not allowed."
@@ -18048,7 +18196,7 @@ msgstr "Sieht so aus, als hätten Sie den Wert nicht geändert"
#: www/third_party_apps.html:57
msgid "Looks like you haven’t added any third party apps."
-msgstr ""
+msgstr "Wie es aussieht haben Sie keine Drittanbieter-Apps hinzugefügt."
#: public/js/frappe/form/sidebar/assign_to.js:190
msgid "Low"
@@ -18128,7 +18276,7 @@ msgstr " Anhänge im Standard als öffentlich markieren"
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Make sure to configure a Social Login Key before disabling to prevent lockout"
-msgstr ""
+msgstr "Stellen Sie sicher, dass Sie vor der Deaktivierung einen Social Login Key konfigurieren, um eine Sperre zu verhindern"
#: utils/password_strength.py:94
msgid "Make use of longer keyboard patterns"
@@ -18148,7 +18296,7 @@ msgstr "Drittanbieter-Anwendungen verwalten"
#: www/me.html:59
msgid "Manage your apps"
-msgstr ""
+msgstr "Verwalten Sie Ihre Apps"
#. Label of a Check field in DocType 'Customize Form Field'
#: custom/doctype/customize_form_field/customize_form_field.json
@@ -18184,25 +18332,25 @@ msgstr "Zwingend notwendig"
#: custom/doctype/custom_field/custom_field.json
msgctxt "Custom Field"
msgid "Mandatory Depends On"
-msgstr "Obligatorisch Hängt von ab"
+msgstr "Bedingung für Pflichtfeld"
#. Label of a Code field in DocType 'Customize Form Field'
#: custom/doctype/customize_form_field/customize_form_field.json
msgctxt "Customize Form Field"
msgid "Mandatory Depends On"
-msgstr "Obligatorisch Hängt von ab"
+msgstr "Bedingung für Pflichtfeld"
#. Label of a Code field in DocType 'Web Form Field'
#: website/doctype/web_form_field/web_form_field.json
msgctxt "Web Form Field"
msgid "Mandatory Depends On"
-msgstr "Obligatorisch Hängt von ab"
+msgstr "Bedingung für Pflichtfeld"
#. Label of a Code field in DocType 'DocField'
#: core/doctype/docfield/docfield.json
msgctxt "DocField"
msgid "Mandatory Depends On (JS)"
-msgstr ""
+msgstr "Bedingung für Pflichtfeld (JS)"
#: website/doctype/web_form/web_form.py:412
msgid "Mandatory Information missing:"
@@ -18227,7 +18375,7 @@ msgstr "Für {0} benötigte Pflichtfelder:"
#: public/js/frappe/web_form/web_form.js:234
msgctxt "Error message in web form"
msgid "Mandatory fields required:"
-msgstr ""
+msgstr "Pflichtfelder erforderlich:"
#: core/doctype/data_export/exporter.py:142
msgid "Mandatory:"
@@ -18407,7 +18555,7 @@ msgstr "Maximaler Wert"
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Max auto email report per user"
-msgstr ""
+msgstr "Höchstzahl automatischer E-Mail-Berichte pro Benutzer"
#: core/doctype/doctype/doctype.py:1293
msgid "Max width for type Currency is 100px in row {0}"
@@ -18421,7 +18569,7 @@ msgstr "Maximal"
#: core/doctype/file/file.py:317
msgid "Maximum Attachment Limit of {0} has been reached for {1} {2}."
-msgstr ""
+msgstr "Die Höchstgrenze für Anhänge von {0} wurde für {1} {2} erreicht."
#. Label of a Select field in DocType 'List View Settings'
#: desk/doctype/list_view_settings/list_view_settings.json
@@ -18437,7 +18585,7 @@ msgstr "Maximale Punkte"
#: public/js/frappe/form/sidebar/attachments.js:38
msgid "Maximum attachment limit of {0} has been reached."
-msgstr ""
+msgstr "Die Höchstgrenze für Anhänge von {0} wurde erreicht."
#. Description of the 'Maximum Points' (Int) field in DocType 'Energy Point
#. Rule'
@@ -18445,7 +18593,8 @@ msgstr ""
msgctxt "Energy Point Rule"
msgid "Maximum points allowed after multiplying points with the multiplier value\n"
"(Note: For no limit leave this field empty or set 0)"
-msgstr ""
+msgstr "Maximal erlaubte Punkte nach Multiplikation mit dem Multiplikatorwert\n"
+"(Hinweis: Für kein Limit lassen Sie dieses Feld leer oder setzen Sie es auf 0)"
#: model/rename_doc.py:675
msgid "Maximum {0} rows allowed"
@@ -18489,7 +18638,7 @@ msgstr "Treffen"
#: integrations/doctype/webhook/webhook.json
msgctxt "Webhook"
msgid "Meets Condition?"
-msgstr ""
+msgstr "Bedingungen erfüllen?"
#. Group in Email Group's connections
#: email/doctype/email_group/email_group.json
@@ -18670,7 +18819,7 @@ msgstr "Nachrichten ID"
#: core/doctype/data_import_log/data_import_log.json
msgctxt "Data Import Log"
msgid "Messages"
-msgstr ""
+msgstr "Nachrichten"
#. Label of a Section Break field in DocType 'Web Form'
#: website/doctype/web_form/web_form.json
@@ -18868,7 +19017,7 @@ msgstr "Nicht ausgefüllte Felder"
#: email/doctype/auto_email_report/auto_email_report.py:123
msgid "Missing Filters Required"
-msgstr ""
+msgstr "Fehlende Filter erforderlich"
#: desk/form/assign_to.py:105
msgid "Missing Permission"
@@ -18910,7 +19059,7 @@ msgstr "Mobilfunknummer"
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "Modal Trigger"
-msgstr ""
+msgstr "Modal-Auslöser"
#. Label of a Card Break in the Build Workspace
#: core/workspace/build/build.json
@@ -19085,7 +19234,7 @@ msgstr "Modul-Def"
#: core/doctype/module_profile/module_profile.json
msgctxt "Module Profile"
msgid "Module HTML"
-msgstr ""
+msgstr "Modul HTML"
#. Label of a Data field in DocType 'Desktop Icon'
#: desk/doctype/desktop_icon/desktop_icon.json
@@ -19135,7 +19284,7 @@ msgstr "Modulprofil Name"
#: desk/doctype/module_onboarding/module_onboarding.py:68
msgid "Module onboarding progress reset"
-msgstr ""
+msgstr "Modul Onboarding-Fortschritt zurücksetzen"
#: custom/doctype/customize_form/customize_form.js:208
msgid "Module to Export"
@@ -19327,7 +19476,7 @@ msgstr "Am Meisten verwendet"
#: utils/password.py:65
msgid "Most probably your password is too long."
-msgstr ""
+msgstr "Wahrscheinlich ist Ihr Passwort zu lang."
#: core/doctype/communication/communication.js:86
#: core/doctype/communication/communication.js:194
@@ -19345,19 +19494,19 @@ msgstr "In den Papierkorb verschieben"
#: public/js/frappe/form/form.js:176
msgid "Move cursor to above row"
-msgstr ""
+msgstr "Cursor zur Zeile darüber bewegen"
#: public/js/frappe/form/form.js:180
msgid "Move cursor to below row"
-msgstr ""
+msgstr "Cursor zur Zeile darunter bewegen"
#: public/js/frappe/form/form.js:184
msgid "Move cursor to next column"
-msgstr ""
+msgstr "Cursor zur nächsten Spalte bewegen"
#: public/js/frappe/form/form.js:188
msgid "Move cursor to previous column"
-msgstr ""
+msgstr "Cursor zur vorherigen Spalte bewegen"
#: public/js/frappe/form/grid_row.js:165
msgid "Move to Row Number"
@@ -19367,14 +19516,14 @@ msgstr "Gehe zu Zeilennummer"
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "Move to next step when clicked inside highlighted area."
-msgstr ""
+msgstr "Zum nächsten Schritt bewegen, wenn innerhalb des markierten Bereichs geklickt wird."
#. Description of the 'Parent Element Selector' (Data) field in DocType 'Form
#. Tour Step'
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "Mozilla doesn't support :has() so you can pass parent selector here as workaround"
-msgstr ""
+msgstr "Mozilla unterstützt :has() nicht, daher können Sie hier den übergeordneten Selektor als Workaround übergeben"
#: utils/nestedset.py:334
msgid "Multiple root nodes not allowed."
@@ -19398,7 +19547,7 @@ msgstr "Muss eine öffentlich zugängliche Google Sheets-URL sein"
#: integrations/doctype/ldap_settings/ldap_settings.json
msgctxt "LDAP Settings"
msgid "Must be enclosed in '()' and include '{0}', which is a placeholder for the user/login name. i.e. (&(objectclass=user)(uid={0}))"
-msgstr ""
+msgstr "Muss in '()' eingeschlossen sein und '{0}' enthalten, was ein Platzhalter für den Benutzer-/Loginnamen ist. d.h. (&(objectclass=user)(uid={0}))"
#. Description of the 'Image Field' (Data) field in DocType 'Customize Form'
#: custom/doctype/customize_form/customize_form.json
@@ -19453,14 +19602,14 @@ msgstr "MyISAM"
#: workflow/doctype/workflow/workflow.js:19
msgid "NOTE: If you add states or transitions in the table, it will be reflected in the Workflow Builder but you will have to position them manually. Also Workflow Builder is currently in BETA."
-msgstr ""
+msgstr "HINWEIS: Wenn Sie in der Tabelle Zustände oder Übergänge hinzufügen, wird dies im Workflow Builder berücksichtigt, aber Sie müssen sie manuell positionieren. Außerdem befindet sich Workflow Builder derzeit noch in der BETA-Phase."
#. Description of the 'LDAP Group Field' (Data) field in DocType 'LDAP
#. Settings'
#: integrations/doctype/ldap_settings/ldap_settings.json
msgctxt "LDAP Settings"
msgid "NOTE: This box is due for depreciation. Please re-setup LDAP to work with the newer settings"
-msgstr ""
+msgstr "HINWEIS: Dieses Feld ist veraltet. Bitte richten Sie LDAP neu ein, um mit den neueren Einstellungen zu arbeiten"
#: public/js/frappe/form/layout.js:75
#: public/js/frappe/form/multi_select_dialog.js:239
@@ -19468,31 +19617,31 @@ msgstr ""
#: public/js/frappe/views/file/file_view.js:97
#: website/doctype/website_slideshow/website_slideshow.js:25
msgid "Name"
-msgstr ""
+msgstr "Name"
#. Label of a Data field in DocType 'Customize Form Field'
#: custom/doctype/customize_form_field/customize_form_field.json
msgctxt "Customize Form Field"
msgid "Name"
-msgstr ""
+msgstr "Name"
#. Label of a Data field in DocType 'DocField'
#: core/doctype/docfield/docfield.json
msgctxt "DocField"
msgid "Name"
-msgstr ""
+msgstr "Name"
#. Label of a Data field in DocType 'Slack Webhook URL'
#: integrations/doctype/slack_webhook_url/slack_webhook_url.json
msgctxt "Slack Webhook URL"
msgid "Name"
-msgstr ""
+msgstr "Name"
#. Label of a Data field in DocType 'Workspace'
#: desk/doctype/workspace/workspace.json
msgctxt "Workspace"
msgid "Name"
-msgstr ""
+msgstr "Name"
#: desk/utils.py:22
msgid "Name already taken, please set a new name"
@@ -19542,7 +19691,9 @@ msgctxt "DocType"
msgid "Naming Options:\n"
"- field:[fieldname] - By Field
- autoincrement - Uses Databases' Auto Increment feature
- naming_series: - By Naming Series (field called naming_series must be present)
- Prompt - Prompt user for a name
- [series] - Series by prefix (separated by a dot); for example PRE.#####
\n"
"- format:EXAMPLE-{MM}morewords{fieldname1}-{fieldname2}-{#####} - Replace all braced words (fieldnames, date words (DD, MM, YY), series) with their value. Outside braces, any characters can be used.
"
-msgstr ""
+msgstr "Benennungsoptionen:\n"
+"- field:[fieldname] - Nach Feld
- autoincrement - Verwendet die Funktion Auto Increment der Datenbanken
- naming_series: - Nach Nummernkreis (ein Feld namens naming_series muss vorhanden sein)
- Prompt - Fragt den Benutzer nach einem Namen
- [series] - Zähler nach Präfix (durch einen Punkt getrennt); zum Beispiel PRE.#####
\n"
+"- format:EXAMPLE-{MM}morewords{fieldname1}-{fieldname2}-{#####} - Ersetzt alle Wörter in geschweiften Klammern (Feldnamen, Datumskürzel (DD, MM, YY), Zähler) durch ihren Wert. Außerhalb der geschweiften Klammern können beliebige Zeichen verwendet werden.
"
#. Description of the 'Auto Name' (Data) field in DocType 'Customize Form'
#: custom/doctype/customize_form/customize_form.json
@@ -19550,7 +19701,9 @@ msgctxt "Customize Form"
msgid "Naming Options:\n"
"- field:[fieldname] - By Field
- naming_series: - By Naming Series (field called naming_series must be present)
- Prompt - Prompt user for a name
- [series] - Series by prefix (separated by a dot); for example PRE.#####
\n"
"- format:EXAMPLE-{MM}morewords{fieldname1}-{fieldname2}-{#####} - Replace all braced words (fieldnames, date words (DD, MM, YY), series) with their value. Outside braces, any characters can be used.
"
-msgstr ""
+msgstr "Benennungsoptionen:\n"
+"- field:[fieldname] - Nach Feld
- naming_series: - Nach Nummernkreis (ein Feld namens naming_series muss vorhanden sein)
- Prompt - Aufforderung zur Eingabe eines Namens
- [series] - Zähler nach Präfix (durch einen Punkt getrennt); zum Beispiel PRE.#####
\n"
+"- format:EXAMPLE-{MM}morewords{fieldname1}-{fieldname2}-{#####} - Ersetzt alle Wörter in geschweiften Klammern (Feldnamen, Datumskürzel (DD, MM, YY), Zähler) durch ihren Wert. Außerhalb der geschweiften Klammern können beliebige Zeichen verwendet werden.
"
#. Label of a Select field in DocType 'Customize Form'
#: custom/doctype/customize_form/customize_form.json
@@ -19642,11 +19795,11 @@ msgstr "Navigationseinstellungen"
#: desk/doctype/workspace/workspace.py:297
msgid "Need Workspace Manager role to edit private workspace of other users"
-msgstr ""
+msgstr "Sie benötigen die Rolle des Workspace Managers, um den privaten Arbeitsbereich anderer Benutzer zu bearbeiten"
#: desk/doctype/workspace/workspace.py:343
msgid "Need Workspace Manager role to hide/unhide public workspaces"
-msgstr ""
+msgstr "Benötigen Sie die Rolle des Workspace Managers, um öffentliche Arbeitsbereiche ein- und auszublenden"
#: model/document.py:607
msgid "Negative Value"
@@ -19704,7 +19857,7 @@ msgstr "Neues benutzerdefiniertes Druckformat"
#: desk/doctype/form_tour/form_tour.json
msgctxt "Form Tour"
msgid "New Document Form"
-msgstr ""
+msgstr "Neues Dokumentenformular"
#: desk/doctype/notification_log/notification_log.py:158
msgid "New Document Shared {0}"
@@ -19792,7 +19945,7 @@ msgstr "Neue Updates sind verfügbar"
#: website/doctype/website_settings/website_settings.json
msgctxt "Website Settings"
msgid "New users will have to be manually registered by system managers."
-msgstr ""
+msgstr "Neue Benutzer müssen von den Systemmanagern manuell angelegt werden."
#. Description of the 'Set Value' (Small Text) field in DocType 'Property
#. Setter'
@@ -19836,7 +19989,7 @@ msgstr "Neue {} Versionen für die folgenden Apps sind verfügbar"
#: core/doctype/user/user.py:764
msgid "Newly created user {0} has no roles enabled."
-msgstr ""
+msgstr "Der neu erstellte Benutzer {0} hat keine aktivierten Rollen."
#. Label of a Card Break in the Tools Workspace
#. Name of a DocType
@@ -19919,7 +20072,7 @@ msgstr "Nächste Ausführung"
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "Next Form Tour"
-msgstr ""
+msgstr "Nächste Formular-Tour"
#. Label of a Date field in DocType 'Auto Repeat'
#: automation/doctype/auto_repeat/auto_repeat.json
@@ -19937,7 +20090,7 @@ msgstr "Nächster Status"
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "Next Step Condition"
-msgstr ""
+msgstr "Bedingung für den nächsten Schritt"
#. Label of a Password field in DocType 'Google Calendar'
#: integrations/doctype/google_calendar/google_calendar.json
@@ -19955,7 +20108,7 @@ msgstr "Nächstes Sync-Token"
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "Next on Click"
-msgstr ""
+msgstr "Weiter bei Klick"
#: integrations/doctype/webhook/webhook.py:137
#: public/js/form_builder/utils.js:341
@@ -20511,7 +20664,7 @@ msgstr "Hinweis: Wenn Sie den Seitennamen ändern, wird die vorherige URL auf di
#: core/doctype/user/user.js:25
msgid "Note: Etc timezones have their signs reversed."
-msgstr ""
+msgstr "Hinweis: Bei \"Etc\"-Zeitzonen sind die Vorzeichen umgekehrt."
#. Description of the 'sb0' (Section Break) field in DocType 'Website
#. Slideshow'
@@ -20529,7 +20682,7 @@ msgstr "Hinweis: Mehrere Sitzungen wird im Falle einer mobilen Gerät erlaubt se
#: website/web_form/request_to_delete_data/request_to_delete_data.js:8
msgid "Note: Your request for account deletion will be fulfilled within {0} hours."
-msgstr ""
+msgstr "Hinweis: Ihr Antrag auf Kontolöschung wird innerhalb von {0} Stunden bearbeitet."
#: core/doctype/data_export/exporter.py:183
msgid "Notes:"
@@ -20757,7 +20910,7 @@ msgstr "Anzahl der Abfragen"
#: core/doctype/doctype/doctype.py:444 public/js/frappe/doctype/index.js:59
msgid "Number of attachment fields are more than {}, limit updated to {}."
-msgstr ""
+msgstr "Anzahl der Anhangsfelder ist größer als {}, Limit auf {} aktualisiert."
#: core/doctype/system_settings/system_settings.py:152
msgid "Number of backups must be greater than zero."
@@ -20870,7 +21023,7 @@ msgstr "Name des OTP-Emittenten"
#: twofactor.py:468
msgid "OTP Secret Reset - {0}"
-msgstr ""
+msgstr "OTP Geheimnis zurücksetzen - {0}"
#: twofactor.py:487
msgid "OTP Secret has been reset. Re-registration will be required on next login."
@@ -20972,11 +21125,11 @@ msgstr "Onboarding-Schritt"
#. Name of a DocType
#: desk/doctype/onboarding_step_map/onboarding_step_map.json
msgid "Onboarding Step Map"
-msgstr ""
+msgstr "Onboarding-Schritt Zuordnung"
#: public/js/frappe/widgets/onboarding_widget.js:269
msgid "Onboarding complete"
-msgstr ""
+msgstr "Onboarding abgeschlossen"
#: core/doctype/doctype/doctype_list.js:28
msgid "Once submitted, submittable documents cannot be changed. They can only be Cancelled and Amended."
@@ -21002,7 +21155,7 @@ msgstr "Einer von"
#: public/js/frappe/views/workspace/workspace.js:1312
msgid "One of the child page with name {0} already exist in {1} Section. Please update the name of the child page first before moving"
-msgstr ""
+msgstr "Eine untergeordnete Seiten mit dem Namen {0} existiert bereits im Bereich {1}. Bitte aktualisieren Sie zuerst den Namen der untergeordneten Seite, bevor Sie sie verschieben."
#: client.py:213
msgid "Only 200 inserts allowed in one request"
@@ -21042,22 +21195,22 @@ msgstr "Nur Send Records aktualisiert in den letzten X Stunden"
#: desk/doctype/workspace/workspace.js:36
msgid "Only Workspace Manager can edit public workspaces"
-msgstr ""
+msgstr "Nur der Workspace Manager kann öffentliche Arbeitsbereiche bearbeiten"
#: public/js/frappe/views/workspace/workspace.js:536
msgid "Only Workspace Manager can sort or edit this page"
-msgstr ""
+msgstr "Nur der Workspace-Manager kann diese Seite sortieren oder bearbeiten"
#: modules/utils.py:66
msgid "Only allowed to export customizations in developer mode"
-msgstr ""
+msgstr "Anpassungen können nur im Entwicklermodus exportiert werden"
#. Description of the 'Endpoint URL' (Data) field in DocType 'S3 Backup
#. Settings'
#: integrations/doctype/s3_backup_settings/s3_backup_settings.json
msgctxt "S3 Backup Settings"
msgid "Only change this if you want to use other S3 compatible object storage backends."
-msgstr ""
+msgstr "Ändern Sie dies nur, wenn Sie andere S3-kompatible Objektspeicher-Backends verwenden möchten."
#. Label of a Link field in DocType 'Workspace Link'
#: desk/doctype/workspace_link/workspace_link.json
@@ -21076,11 +21229,11 @@ msgstr "Es kann nur eine {0} als primäre festgelegt werden."
#: desk/reportview.py:319
msgid "Only reports of type Report Builder can be deleted"
-msgstr ""
+msgstr "Nur Berichte aus dem Berichterstellungswerkzeug können gelöscht werden"
#: desk/reportview.py:290
msgid "Only reports of type Report Builder can be edited"
-msgstr ""
+msgstr "Nur Berichte aus dem Berichterstellungswerkzeug können bearbeitet werden"
#: custom/doctype/customize_form/customize_form.py:124
msgid "Only standard DocTypes are allowed to be customized from Customize Form."
@@ -21096,7 +21249,7 @@ msgstr "Es werden nur Benutzer aufgelistet, die an dem Dokument beteiligt sind"
#: email/doctype/auto_email_report/auto_email_report.py:100
msgid "Only {0} emailed reports are allowed per user."
-msgstr ""
+msgstr "Pro Benutzer sind nur {0} per E-Mail versandte Berichte erlaubt."
#: core/doctype/deleted_document/deleted_document.js:7
msgid "Open"
@@ -21207,7 +21360,7 @@ msgstr "{0} öffnen"
#: integrations/doctype/connected_app/connected_app.json
msgctxt "Connected App"
msgid "OpenID Configuration"
-msgstr ""
+msgstr "OpenID-Konfiguration"
#. Option for the 'Directory Server' (Select) field in DocType 'LDAP Settings'
#: integrations/doctype/ldap_settings/ldap_settings.json
@@ -21321,7 +21474,7 @@ msgstr "Hilfe zu Optionen"
#: core/doctype/doctype/doctype.py:1601
msgid "Options for Rating field can range from 3 to 10"
-msgstr ""
+msgstr "Optionen für Bewertungsfeld können zwischen 3 und 10 liegen"
#: custom/doctype/custom_field/custom_field.js:96
msgid "Options for select. Each option on a new line."
@@ -21333,7 +21486,7 @@ msgstr "Optionen für {0} müssen festgelegt werden, bevor der Standardwert fest
#: public/js/form_builder/store.js:177
msgid "Options is required for field {0} of type {1}"
-msgstr ""
+msgstr "Optionen sind erforderlich für Feld {0} des Typs {1}"
#: model/base_document.py:767
msgid "Options not set for link field {0}"
@@ -21635,7 +21788,7 @@ msgstr "Seitenumbruch"
#: website/doctype/web_page/web_page.json
msgctxt "Web Page"
msgid "Page Builder"
-msgstr ""
+msgstr "Seitengenerator"
#. Label of a Table field in DocType 'Web Page'
#: website/doctype/web_page/web_page.json
@@ -21760,7 +21913,7 @@ msgstr "Übergeordneter DocType wird benötigt, um Zahlenkarte zu erstellen"
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "Parent Element Selector"
-msgstr ""
+msgstr "Selektor für übergeordnetes Element"
#. Label of a Select field in DocType 'Form Tour Step'
#: desk/doctype/form_tour_step/form_tour_step.json
@@ -21804,7 +21957,7 @@ msgstr "Übergeordnete Tabelle"
#: desk/doctype/dashboard_chart/dashboard_chart.py:404
msgid "Parent document type is required to create a dashboard chart"
-msgstr ""
+msgstr "Übergeordneter Dokumententyp wird benötigt, um ein Dashboard-Diagramm zu erstellen"
#: core/doctype/data_export/exporter.py:255
msgid "Parent is the name of the document to which the data will get added to."
@@ -21812,7 +21965,7 @@ msgstr "Parent ist der Name des Dokuments, zu dem die Daten hinzugefügt werden.
#: permissions.py:806
msgid "Parentfield not specified in {0}: {1}"
-msgstr ""
+msgstr "Das übergeordnete Feld wurde in {0}: {1} nicht angegeben"
#: client.py:476
msgid "Parenttype, Parent and Parentfield are required to insert a child record"
@@ -21986,7 +22139,7 @@ msgstr "Korrektur-Protokoll"
#: modules/patch_handler.py:137
msgid "Patch type {} not found in patches.txt"
-msgstr ""
+msgstr "Patch-Typ {} nicht in patches.txt gefunden"
#: website/report/website_analytics/website_analytics.js:35
msgid "Path"
@@ -22038,7 +22191,7 @@ msgstr "Pfad zur privaten Schlüsseldatei"
#: core/doctype/data_import/data_import.json
msgctxt "Data Import"
msgid "Payload Count"
-msgstr ""
+msgstr "Nutzlast Anzahl"
#. Option for the 'Status' (Select) field in DocType 'Data Import'
#: core/doctype/data_import/data_import.json
@@ -22406,11 +22559,11 @@ msgstr "Bitte zuerst eine Datei anhängen."
#: printing/doctype/letter_head/letter_head.py:73
msgid "Please attach an image file to set HTML for Footer."
-msgstr ""
+msgstr "Bitte fügen Sie eine Bilddatei an, um HTML für die Fußzeile festzulegen."
#: printing/doctype/letter_head/letter_head.py:61
msgid "Please attach an image file to set HTML for Letter Head."
-msgstr ""
+msgstr "Bitte fügen Sie eine Bilddatei an, um HTML für den Briefkopf festzulegen."
#: core/doctype/package_import/package_import.py:38
msgid "Please attach the package"
@@ -22418,7 +22571,7 @@ msgstr "Bitte das Paket anhängen"
#: integrations/doctype/connected_app/connected_app.js:19
msgid "Please check OpenID Configuration URL"
-msgstr ""
+msgstr "Bitte überprüfen Sie die OpenID-Konfigurations-URL"
#: utils/dashboard.py:58
msgid "Please check the filter values set for Dashboard Chart: {}"
@@ -22442,7 +22595,7 @@ msgstr "Bitte überprüfen Sie Ihren Posteingang auf weitere Instruktionen.\\nLa
#: twofactor.py:291
msgid "Please click on the following link and follow the instructions on the page. {0}"
-msgstr ""
+msgstr "Bitte klicken Sie auf den folgenden Link und folgen Sie den Anweisungen auf der Seite. {0}"
#: templates/emails/password_reset.html:2
msgid "Please click on the following link to set your new password"
@@ -22458,7 +22611,7 @@ msgstr "Bitte bestätigen Sie Ihre Aktion für {0} dieses Dokument."
#: core/doctype/server_script/server_script.js:33
msgid "Please contact your system administrator to enable this feature."
-msgstr ""
+msgstr "Bitte kontaktieren Sie Ihren Systemadministrator, um diese Funktion zu aktivieren."
#: desk/doctype/number_card/number_card.js:44
msgid "Please create Card first"
@@ -22470,7 +22623,7 @@ msgstr "Bitte erstellen Sie zuerst ein Diagramm"
#: desk/form/meta.py:209
msgid "Please delete the field from {0} or add the required doctype."
-msgstr ""
+msgstr "Bitte löschen Sie das Feld von {0} oder fügen Sie den erforderlichen DocType hinzu."
#: core/doctype/data_export/exporter.py:184
msgid "Please do not change the template headings."
@@ -22482,7 +22635,7 @@ msgstr "Bitte kopieren um Änderungen vorzunehmen"
#: core/doctype/system_settings/system_settings.py:145
msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login."
-msgstr ""
+msgstr "Bitte aktivieren Sie mindestens eines der Anmeldeverfahren Social Login Key, LDAP oder Anmeldung per E-Mail-Link, bevor Sie die Anmeldung per Benutzernamen und Passwort deaktivieren."
#: desk/doctype/notification_log/notification_log.js:45
#: email/doctype/auto_email_report/auto_email_report.js:17
@@ -22543,7 +22696,7 @@ msgstr "Bitte Passwort eingeben"
#: public/js/frappe/desk.js:196
msgctxt "Email Account"
msgid "Please enter the password for: {0}"
-msgstr ""
+msgstr "Bitte geben Sie das Passwort ein für: {0}"
#: core/doctype/sms_settings/sms_settings.py:42
msgid "Please enter valid mobile nos"
@@ -22623,7 +22776,7 @@ msgstr "Bitte wählen Sie Minimum Password Score"
#: utils/__init__.py:115
msgid "Please select a country code for field {1}."
-msgstr ""
+msgstr "Bitte wählen Sie einen Ländercode für das Feld {1} aus."
#: utils/file_manager.py:50
msgid "Please select a file or url"
@@ -22666,7 +22819,7 @@ msgstr "Bitte {0} auswählen"
#: integrations/doctype/dropbox_settings/dropbox_settings.py:306
msgid "Please set Dropbox access keys in site config or doctype"
-msgstr ""
+msgstr "Bitte setzen Sie die Dropbox-Zugriffsschlüssel in der Site Config oder im DocType"
#: contacts/doctype/contact/contact.py:200
msgid "Please set Email Address"
@@ -22686,7 +22839,7 @@ msgstr "Bitte setzen Sie Filter Wert in Berichtsfiltertabelle."
#: model/naming.py:533
msgid "Please set the document name"
-msgstr ""
+msgstr "Bitte geben Sie den Dokumentnamen ein"
#: desk/doctype/dashboard/dashboard.py:125
msgid "Please set the following documents in this Dashboard as standard first."
@@ -22706,11 +22859,11 @@ msgstr "Bitte richten Sie zuerst eine Nachricht ein"
#: email/doctype/email_account/email_account.py:389
msgid "Please setup default Email Account from Settings > Email Account"
-msgstr ""
+msgstr "Bitte richten Sie ein Standard-E-Mail-Konto unter Einstellungen > E-Mail-Konto ein"
#: core/doctype/user/user.py:369
msgid "Please setup default outgoing Email Account from Settings > Email Account"
-msgstr ""
+msgstr "Bitte legen Sie das Standard-E-Mail-Konto unter Einstellungen > E-Mail-Konto fest"
#: public/js/frappe/model/model.js:785
msgid "Please specify"
@@ -22718,7 +22871,7 @@ msgstr "Bitte angeben"
#: permissions.py:782
msgid "Please specify a valid parent DocType for {0}"
-msgstr ""
+msgstr "Bitte geben Sie einen gültigen übergeordneten DocType für {0} an"
#: email/doctype/notification/notification.py:86
msgid "Please specify which date field must be checked"
@@ -22775,13 +22928,13 @@ msgstr "Punkte gegeben"
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "Popover Element"
-msgstr ""
+msgstr "Popover-Element"
#. Label of a HTML Editor field in DocType 'Form Tour Step'
#: desk/doctype/form_tour_step/form_tour_step.json
msgctxt "Form Tour Step"
msgid "Popover or Modal Description"
-msgstr ""
+msgstr "Popover- oder Modal-Beschreibung"
#. Label of a Data field in DocType 'Email Account'
#: email/doctype/email_account/email_account.json
@@ -22845,7 +22998,7 @@ msgstr "Absenden"
#: templates/discussions/reply_section.html:39
msgid "Post it here, our mentors will help you out."
-msgstr ""
+msgstr "Posten Sie es hier, unsere Mentoren werden Ihnen helfen."
#. Option for the 'Address Type' (Select) field in DocType 'Address'
#: contacts/doctype/address/address.json
@@ -23050,7 +23203,7 @@ msgstr "Vorheriger Hash"
#: public/js/frappe/form/form.js:2162
msgid "Previous Submission"
-msgstr ""
+msgstr "Vorherige Buchungen"
#. Option for the 'Style' (Select) field in DocType 'Workflow State'
#: workflow/doctype/workflow_state/workflow_state.json
@@ -23156,13 +23309,13 @@ msgstr "Programm zum Erstellen von Druckformaten"
#. Label of a Link in the Tools Workspace
#: automation/workspace/tools/tools.json
msgid "Print Format Builder (New)"
-msgstr ""
+msgstr "Druckformat-Generator (neu)"
#. Label of a Check field in DocType 'Print Format'
#: printing/doctype/print_format/print_format.json
msgctxt "Print Format"
msgid "Print Format Builder Beta"
-msgstr ""
+msgstr "Format-Builder Beta drucken"
#: utils/pdf.py:52
msgid "Print Format Error"
@@ -23171,7 +23324,7 @@ msgstr "Druckformatfehler"
#. Name of a DocType
#: printing/doctype/print_format_field_template/print_format_field_template.json
msgid "Print Format Field Template"
-msgstr ""
+msgstr "Druckformat Feldvorlage"
#. Label of a HTML field in DocType 'Print Format'
#: printing/doctype/print_format/print_format.json
@@ -23192,12 +23345,12 @@ msgstr "Druckformat {0} ist deaktiviert"
#. Description of the Onboarding Step 'Customize Print Formats'
#: custom/onboarding_step/print_format/print_format.json
msgid "Print Formats allow you can define looks for documents when printed or converted to PDF. You can also create a custom Print Format using drag-and-drop tools."
-msgstr ""
+msgstr "Mit Druckformaten können Sie das Aussehen von Dokumenten festlegen, die gedruckt oder in PDF konvertiert werden. Sie können auch ein benutzerdefiniertes Druckformat mit Hilfe von Drag-and-Drop-Tools erstellen."
#. Name of a DocType
#: printing/doctype/print_heading/print_heading.json
msgid "Print Heading"
-msgstr ""
+msgstr "Druck-Kopfzeile"
#. Label of a Link in the Tools Workspace
#. Label of a Data field in DocType 'Print Heading'
@@ -23205,7 +23358,7 @@ msgstr ""
#: printing/doctype/print_heading/print_heading.json
msgctxt "Print Heading"
msgid "Print Heading"
-msgstr ""
+msgstr "Druck-Kopfzeile"
#. Label of a Check field in DocType 'Custom Field'
#: custom/doctype/custom_field/custom_field.json
@@ -23495,7 +23648,7 @@ msgstr "Eigenschaftstyp"
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Provide a list of allowed file extensions for file uploads. Each line should contain one allowed file type. If unset, all file extensions are allowed. Example:
CSV
JPG
PNG"
-msgstr ""
+msgstr "Geben Sie eine Liste der zulässigen Dateierweiterungen für Datei-Uploads an. Jede Zeile sollte einen erlaubten Dateityp enthalten. Wenn Sie nichts angeben, sind alle Dateierweiterungen erlaubt. Beispiel:
CSV
JPG
PNG"
#. Label of a Data field in DocType 'User Social Login'
#: core/doctype/user_social_login/user_social_login.json
@@ -23864,7 +24017,7 @@ msgstr "Eingereiht von"
#: core/doctype/submission_queue/submission_queue.py:173
msgid "Queued for Submission. You can track the progress over {0}."
-msgstr ""
+msgstr "In der Warteschlange für die Buchung. Sie können den Fortschritt über {0} verfolgen."
#: integrations/doctype/dropbox_settings/dropbox_settings.py:64
#: integrations/doctype/google_drive/google_drive.py:156
@@ -23878,15 +24031,15 @@ msgstr "Warteschlange für Backup. Sie erhalten eine E-Mail mit dem Download-Lin
#: email/doctype/newsletter/newsletter.js:95
msgid "Queued {0} emails"
-msgstr ""
+msgstr "{0} E-Mails in der Warteschlange"
#: email/doctype/newsletter/newsletter.js:90
msgid "Queuing emails..."
-msgstr ""
+msgstr "E-Mails in die Warteschlange stellen..."
#: desk/doctype/bulk_update/bulk_update.py:88
msgid "Queuing {0} for Submission"
-msgstr ""
+msgstr "Einreihen von {0} zur Buchung"
#. Label of a Check field in DocType 'Customize Form'
#: custom/doctype/customize_form/customize_form.json
@@ -23904,18 +24057,18 @@ msgstr "Schnelleingabe"
#: desk/doctype/workspace_quick_list/workspace_quick_list.json
msgctxt "Workspace Quick List"
msgid "Quick List Filter"
-msgstr ""
+msgstr "Schnelllisten-Filter"
#. Label of a Tab Break field in DocType 'Workspace'
#. Label of a Table field in DocType 'Workspace'
#: desk/doctype/workspace/workspace.json
msgctxt "Workspace"
msgid "Quick Lists"
-msgstr ""
+msgstr "Schnelllisten"
#: public/js/frappe/views/reports/report_utils.js:280
msgid "Quoting must be between 0 and 3"
-msgstr ""
+msgstr "Einstellung für CSV-Anführungszeichen muss zwischen 0 und 3 liegen"
#. Label of a Section Break field in DocType 'Access Log'
#: core/doctype/access_log/access_log.json
@@ -23953,13 +24106,13 @@ msgstr "Bandbreite"
#: core/doctype/server_script/server_script.json
msgctxt "Server Script"
msgid "Rate Limiting"
-msgstr ""
+msgstr "Anfragen begrenzen"
#. Label of a Section Break field in DocType 'Blog Settings'
#: website/doctype/blog_settings/blog_settings.json
msgctxt "Blog Settings"
msgid "Rate Limits"
-msgstr ""
+msgstr "Anfragen begrenzen"
#. Label of a Int field in DocType 'Communication'
#: core/doctype/communication/communication.json
@@ -24021,7 +24174,7 @@ msgstr "Rohdruck"
#: printing/page/print/print.js:165
msgid "Raw Printing Setting"
-msgstr ""
+msgstr "Einstellung für Rohdruck"
#: desk/doctype/console_log/console_log.js:6
msgid "Re-Run in Console"
@@ -24136,7 +24289,7 @@ msgstr "Nur lesen hängt von ab"
#: core/doctype/docfield/docfield.json
msgctxt "DocField"
msgid "Read Only Depends On (JS)"
-msgstr ""
+msgstr "Bedingungen für Schreibschutz (JS)"
#: templates/includes/navbar/navbar_items.html:97
msgid "Read Only Mode"
@@ -24166,7 +24319,7 @@ msgstr "Lesemodus"
#: utils/safe_exec.py:91
msgid "Read the documentation to know more"
-msgstr ""
+msgstr "Lesen Sie die Dokumentation, um mehr zu erfahren"
#. Label of a Markdown Editor field in DocType 'Package'
#: core/doctype/package/package.json
@@ -24201,13 +24354,13 @@ msgstr "Baum neu aufbauen"
#: utils/nestedset.py:180
msgid "Rebuilding of tree is not supported for {}"
-msgstr ""
+msgstr "Die Neuberechnung des Baums wird für {} nicht unterstützt"
#. Description of the 'Anonymous' (Check) field in DocType 'Web Form'
#: website/doctype/web_form/web_form.json
msgctxt "Web Form"
msgid "Receive anonymous response"
-msgstr ""
+msgstr "Anonyme Antwort erhalten"
#. Option for the 'Sent or Received' (Select) field in DocType 'Communication'
#: core/doctype/communication/communication.json
@@ -24217,7 +24370,7 @@ msgstr "Empfangen"
#: integrations/doctype/token_cache/token_cache.py:49
msgid "Received an invalid token type."
-msgstr ""
+msgstr "Es wurde ein ungültiger Tokentyp empfangen."
#. Label of a Select field in DocType 'Notification Recipient'
#: email/doctype/notification_recipient/notification_recipient.json
@@ -24243,7 +24396,7 @@ msgstr "Die letzten Jahre sind leicht zu erraten."
#: public/js/frappe/ui/toolbar/search_utils.js:516
msgid "Recents"
-msgstr ""
+msgstr "Kürzlich aufgerufen"
#. Label of a Table field in DocType 'Email Queue'
#: email/doctype/email_queue/email_queue.json
@@ -24320,7 +24473,7 @@ msgstr "Redirect URI Bound To Auth-Code"
#: integrations/doctype/oauth_client/oauth_client.json
msgctxt "OAuth Client"
msgid "Redirect URIs"
-msgstr ""
+msgstr "Weiterleitungs-URIs"
#. Label of a Data field in DocType 'Social Login Key'
#: integrations/doctype/social_login_key/social_login_key.json
@@ -24338,13 +24491,13 @@ msgstr "Redirect-URL"
#: email/doctype/email_group/email_group.json
msgctxt "Email Group"
msgid "Redirect to this URL after successful confirmation."
-msgstr ""
+msgstr "Nach erfolgreicher Bestätigung zu dieser URL weiterleiten."
#. Label of a Tab Break field in DocType 'Website Settings'
#: website/doctype/website_settings/website_settings.json
msgctxt "Website Settings"
msgid "Redirects"
-msgstr ""
+msgstr "Weiterleitungen"
#: sessions.py:148
msgid "Redis cache server not running. Please contact Administrator / Tech support"
@@ -24366,7 +24519,7 @@ msgstr "Ref-DocType"
#: desk/doctype/form_tour/form_tour.js:38
msgid "Referance Doctype and Dashboard Name both can't be used at the same time."
-msgstr ""
+msgstr "Referenz-DocType und Dashboard-Name können nicht gleichzeitig verwendet werden."
#: core/doctype/user_type/user_type_dashboard.py:5 desk/report/todo/todo.py:42
#: public/js/frappe/views/interaction.js:54
@@ -24494,13 +24647,13 @@ msgstr "Referenzdokument"
#: core/doctype/document_share_key/document_share_key.json
msgctxt "Document Share Key"
msgid "Reference Document Name"
-msgstr ""
+msgstr "Name des Referenzdokuments"
#. Label of a Dynamic Link field in DocType 'Integration Request'
#: integrations/doctype/integration_request/integration_request.json
msgctxt "Integration Request"
msgid "Reference Document Name"
-msgstr ""
+msgstr "Name des Referenzdokuments"
#. Label of a Link field in DocType 'Activity Log'
#: core/doctype/activity_log/activity_log.json
@@ -24757,13 +24910,13 @@ msgstr "Referenz: {0} {1}"
#: website/report/website_analytics/website_analytics.js:37
msgid "Referrer"
-msgstr ""
+msgstr "Referrer"
#. Label of a Data field in DocType 'Web Page View'
#: website/doctype/web_page_view/web_page_view.json
msgctxt "Web Page View"
msgid "Referrer"
-msgstr ""
+msgstr "Referrer"
#: printing/page/print/print.js:73 public/js/frappe/desk.js:133
#: public/js/frappe/form/form.js:1174 public/js/frappe/list/base_list.js:65
@@ -24850,7 +25003,7 @@ msgstr "Versionshinweise"
#: core/doctype/communication/communication.js:48
#: core/doctype/communication/communication.js:159
msgid "Relink"
-msgstr ""
+msgstr "Neu verknüpfen"
#: core/doctype/communication/communication.js:138
msgid "Relink Communication"
@@ -24860,13 +25013,13 @@ msgstr "Relink Kommunikation"
#: core/doctype/comment/comment.json
msgctxt "Comment"
msgid "Relinked"
-msgstr ""
+msgstr "Neu verknüpft"
#. Option for the 'Comment Type' (Select) field in DocType 'Communication'
#: core/doctype/communication/communication.json
msgctxt "Communication"
msgid "Relinked"
-msgstr ""
+msgstr "Neu verknüpft"
#. Label of a standard navbar item
#. Type: Action
@@ -24877,7 +25030,7 @@ msgstr "Neu laden"
#: public/js/frappe/list/base_list.js:239
msgid "Reload List"
-msgstr ""
+msgstr "Reload List"
#: public/js/frappe/views/reports/query_report.js:99
msgid "Reload Report"
@@ -24897,13 +25050,13 @@ msgstr "Zuletzt gewählten Wert merken"
#: public/js/frappe/form/reminders.js:33
msgid "Remind At"
-msgstr ""
+msgstr "Erinnern am"
#. Label of a Datetime field in DocType 'Reminder'
#: automation/doctype/reminder/reminder.json
msgctxt "Reminder"
msgid "Remind At"
-msgstr ""
+msgstr "Erinnern am"
#: public/js/frappe/form/toolbar.js:436
msgid "Remind Me"
@@ -24911,7 +25064,7 @@ msgstr "Erinnere mich"
#: public/js/frappe/form/reminders.js:13
msgid "Remind Me In"
-msgstr ""
+msgstr "Erinnere mich in"
#. Name of a DocType
#: automation/doctype/reminder/reminder.json
@@ -24928,7 +25081,7 @@ msgstr ""
#: core/doctype/rq_job/rq_job_list.js:8
msgid "Remove Failed Jobs"
-msgstr ""
+msgstr "Fehlgeschlagene Jobs entfernen"
#: printing/page/print_format_builder/print_format_builder.js:488
msgid "Remove Field"
@@ -25141,19 +25294,19 @@ msgstr "Bericht"
#: public/js/frappe/list/list_view_select.js:66
msgid "Report Builder"
-msgstr "Berichts-Generator"
+msgstr "Berichterstellungswerkzeug"
#. Option for the 'Report Type' (Select) field in DocType 'Report'
#: core/doctype/report/report.json
msgctxt "Report"
msgid "Report Builder"
-msgstr "Berichts-Generator"
+msgstr "Berichterstellungswerkzeug"
#. Option for the 'DocType View' (Select) field in DocType 'Workspace Shortcut'
#: desk/doctype/workspace_shortcut/workspace_shortcut.json
msgctxt "Workspace Shortcut"
msgid "Report Builder"
-msgstr "Berichts-Generator"
+msgstr "Berichterstellungswerkzeug"
#. Name of a DocType
#: core/doctype/report_column/report_column.json
@@ -25247,7 +25400,7 @@ msgstr "Berichtsname"
#: desk/doctype/number_card/number_card.py:65
msgid "Report Name, Report Field and Fucntion are required to create a number card"
-msgstr ""
+msgstr "Zum Erstellen einer Nummernkarte sind Berichtsname, Berichtsfeld und Funktion erforderlich"
#. Label of a Data field in DocType 'Onboarding Step'
#: desk/doctype/onboarding_step/onboarding_step.json
@@ -25289,11 +25442,11 @@ msgstr "Der Bericht enthält keine numerischen Felder. Bitte ändern Sie den Ber
#: public/js/frappe/views/reports/query_report.js:935
msgid "Report initiated, click to view status"
-msgstr ""
+msgstr "Bericht initiiert. Klicken Sie hier, um den Status anzuzeigen"
#: email/doctype/auto_email_report/auto_email_report.py:102
msgid "Report limit reached"
-msgstr ""
+msgstr "Berichtsgrenze erreicht"
#: core/doctype/prepared_report/prepared_report.py:202
msgid "Report timed out."
@@ -25358,7 +25511,7 @@ msgstr "Kontolöschung anfordern"
#: integrations/doctype/webhook/webhook.json
msgctxt "Webhook"
msgid "Request Body"
-msgstr ""
+msgstr "Body anfordern"
#. Label of a Code field in DocType 'Integration Request'
#: integrations/doctype/integration_request/integration_request.json
@@ -25370,19 +25523,19 @@ msgstr "Daten anfordern"
#: integrations/doctype/integration_request/integration_request.json
msgctxt "Integration Request"
msgid "Request Description"
-msgstr ""
+msgstr "Beschreibung der Anfrage"
#. Label of a Code field in DocType 'Integration Request'
#: integrations/doctype/integration_request/integration_request.json
msgctxt "Integration Request"
msgid "Request Headers"
-msgstr ""
+msgstr "Anfrage-Kopfzeilen"
#. Label of a Code field in DocType 'Recorder'
#: core/doctype/recorder/recorder.json
msgctxt "Recorder"
msgid "Request Headers"
-msgstr ""
+msgstr "Anfrage-Kopfzeilen"
#. Label of a Data field in DocType 'Integration Request'
#: integrations/doctype/integration_request/integration_request.json
@@ -25414,13 +25567,13 @@ msgstr "Zeitüberschreitung der Anfrage"
#: public/js/frappe/request.js:241
msgid "Request Timeout"
-msgstr ""
+msgstr "Zeitüberschreitung der Anfrage"
#. Label of a Int field in DocType 'Webhook'
#: integrations/doctype/webhook/webhook.json
msgctxt "Webhook"
msgid "Request Timeout"
-msgstr ""
+msgstr "Zeitüberschreitung der Anfrage"
#. Label of a Data field in DocType 'Webhook'
#: integrations/doctype/webhook/webhook.json
@@ -25445,14 +25598,14 @@ msgstr "Vertrauenswürdiges Zertifikat anfordern"
#: integrations/doctype/ldap_settings/ldap_settings.json
msgctxt "LDAP Settings"
msgid "Requires any valid fdn path. i.e. ou=groups,dc=example,dc=com"
-msgstr ""
+msgstr "Benötigt einen gültigen fdn-Pfad. z.B. ou=groups,dc=example,dc=com"
#. Description of the 'LDAP search path for Users' (Data) field in DocType
#. 'LDAP Settings'
#: integrations/doctype/ldap_settings/ldap_settings.json
msgctxt "LDAP Settings"
msgid "Requires any valid fdn path. i.e. ou=users,dc=example,dc=com"
-msgstr ""
+msgstr "Benötigt einen gültigen fdn-Pfad. z.B. ou=users,dc=example,dc=com"
#: core/doctype/communication/communication.js:279
msgid "Res: {0}"
@@ -25513,13 +25666,13 @@ msgstr "Passwortschlüssel zurücksetzen"
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Reset Password Link Expiry Duration"
-msgstr ""
+msgstr "Gültigkeitsdauer des Passwort-Links zurücksetzen"
#. Label of a Link field in DocType 'System Settings'
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Reset Password Template"
-msgstr ""
+msgstr "Vorlage Passwort zurücksetzen"
#: core/page/permission_manager/permission_manager.js:109
msgid "Reset Permissions for {0}?"
@@ -25758,19 +25911,19 @@ msgstr "Gesperrte"
#: website/doctype/blog_post/blog_post.json
msgctxt "Blog Post"
msgid "Rich Text"
-msgstr ""
+msgstr "Rich-Text"
#. Option for the 'Content Type' (Select) field in DocType 'Newsletter'
#: email/doctype/newsletter/newsletter.json
msgctxt "Newsletter"
msgid "Rich Text"
-msgstr ""
+msgstr "Rich-Text"
#. Option for the 'Content Type' (Select) field in DocType 'Web Page'
#: website/doctype/web_page/web_page.json
msgctxt "Web Page"
msgid "Rich Text"
-msgstr ""
+msgstr "Rich-Text"
#. Option for the 'Position' (Select) field in DocType 'Form Tour Step'
#: desk/doctype/form_tour_step/form_tour_step.json
@@ -25970,7 +26123,7 @@ msgstr "Rolle und Ebene"
#: core/doctype/user/user.py:314
msgid "Role has been set as per the user type {0}"
-msgstr ""
+msgstr "Die Rolle wurde gemäß Benutzertyp {0} festgelegt"
#: core/page/permission_manager/permission_manager.js:59
msgid "Roles"
@@ -26186,7 +26339,7 @@ msgstr "Zeile"
#: core/doctype/doctype/doctype.py:1772 core/doctype/doctype/doctype.py:1782
msgid "Row # {0}: Non administrator user can not set the role {1} to the custom doctype"
-msgstr ""
+msgstr "Zeile # {0}: Nicht-Administrator-Benutzer können die Rolle {1} nicht auf den benutzerdefinierten Doctype einstellen"
#: model/base_document.py:868
msgid "Row #{0}:"
@@ -26194,7 +26347,7 @@ msgstr "Zeile #{0}:"
#: core/doctype/doctype/doctype.py:492
msgid "Row #{}: Fieldname is required"
-msgstr ""
+msgstr "Zeile #{}: Feldname ist erforderlich"
#. Label of a Data field in DocType 'Transaction Log'
#: core/doctype/transaction_log/transaction_log.json
@@ -26260,7 +26413,7 @@ msgstr "Regelname"
#: permissions.py:662
msgid "Rule for this doctype, role, permlevel and if-owner combination already exists."
-msgstr ""
+msgstr "Die Regel für diese Kombination aus Doctype, Rolle, Permlevel und if-owner existiert bereits."
#. Group in DocType's connections
#: core/doctype/doctype/doctype.json
@@ -26592,7 +26745,7 @@ msgstr "Speichere Anpassung..."
#: desk/doctype/module_onboarding/module_onboarding.js:8
msgid "Saving this will export this document as well as the steps linked here as json."
-msgstr ""
+msgstr "Wenn Sie dies speichern, werden dieses Dokument und die hier verlinkten Schritte als JSON exportiert."
#: public/js/form_builder/store.js:228
#: public/js/print_format_builder/store.js:36
@@ -26628,7 +26781,7 @@ msgstr "Senden planen"
#: email/doctype/newsletter/newsletter.json
msgctxt "Newsletter"
msgid "Schedule sending at a later time"
-msgstr ""
+msgstr "Senden zu einem späteren Zeitpunkt planen"
#: email/doctype/newsletter/newsletter_list.js:7
msgid "Scheduled"
@@ -26684,13 +26837,13 @@ msgstr "Geplanter Auftragstyp"
#: core/workspace/build/build.json
msgctxt "Scheduled Job Log"
msgid "Scheduled Jobs Logs"
-msgstr ""
+msgstr "Protokolle geplanter Jobs"
#. Label of a Section Break field in DocType 'Newsletter'
#: email/doctype/newsletter/newsletter.json
msgctxt "Newsletter"
msgid "Scheduled Sending"
-msgstr ""
+msgstr "Geplanter Versand"
#. Label of a Int field in DocType 'Newsletter'
#: email/doctype/newsletter/newsletter.json
@@ -26718,7 +26871,7 @@ msgstr "Scheduler Inaktiv"
#: utils/scheduler.py:196
msgid "Scheduler can not be re-enabled when maintenance mode is active."
-msgstr ""
+msgstr "Scheduler kann nicht wieder aktiviert werden, wenn der Wartungsmodus aktiv ist."
#: core/doctype/data_import/data_import.py:97
msgid "Scheduler is inactive. Cannot import data."
@@ -26726,48 +26879,48 @@ msgstr "Scheduler ist inaktiv. Daten können nicht importiert werden."
#: core/doctype/rq_job/rq_job_list.js:19
msgid "Scheduler: Active"
-msgstr ""
+msgstr "Planer: Aktiv"
#: core/doctype/rq_job/rq_job_list.js:21
msgid "Scheduler: Inactive"
-msgstr ""
+msgstr "Zeitplaner: Inaktiv"
#. Label of a Data field in DocType 'OAuth Scope'
#: integrations/doctype/oauth_scope/oauth_scope.json
msgctxt "OAuth Scope"
msgid "Scope"
-msgstr ""
+msgstr "Geltungsbereich"
#. Label of a Section Break field in DocType 'Connected App'
#. Label of a Table field in DocType 'Connected App'
#: integrations/doctype/connected_app/connected_app.json
msgctxt "Connected App"
msgid "Scopes"
-msgstr ""
+msgstr "Geltungsbereiche"
#. Label of a Text field in DocType 'OAuth Authorization Code'
#: integrations/doctype/oauth_authorization_code/oauth_authorization_code.json
msgctxt "OAuth Authorization Code"
msgid "Scopes"
-msgstr ""
+msgstr "Geltungsbereiche"
#. Label of a Text field in DocType 'OAuth Bearer Token'
#: integrations/doctype/oauth_bearer_token/oauth_bearer_token.json
msgctxt "OAuth Bearer Token"
msgid "Scopes"
-msgstr ""
+msgstr "Geltungsbereiche"
#. Label of a Text field in DocType 'OAuth Client'
#: integrations/doctype/oauth_client/oauth_client.json
msgctxt "OAuth Client"
msgid "Scopes"
-msgstr ""
+msgstr "Geltungsbereiche"
#. Label of a Table field in DocType 'Token Cache'
#: integrations/doctype/token_cache/token_cache.json
msgctxt "Token Cache"
msgid "Scopes"
-msgstr ""
+msgstr "Geltungsbereiche"
#. Label of a Code field in DocType 'Client Script'
#: custom/doctype/client_script/client_script.json
@@ -26825,19 +26978,19 @@ msgstr "Skripttyp"
#. Label of a Card Break in the Build Workspace
#: core/workspace/build/build.json
msgid "Scripting"
-msgstr ""
+msgstr "Skripterstellung"
#. Label of a Tab Break field in DocType 'Web Page'
#: website/doctype/web_page/web_page.json
msgctxt "Web Page"
msgid "Scripting"
-msgstr ""
+msgstr "Skripterstellung"
#. Label of a Section Break field in DocType 'Web Form'
#: website/doctype/web_form/web_form.json
msgctxt "Web Form"
msgid "Scripting / Style"
-msgstr ""
+msgstr "Skripterstellung / Stil"
#: public/js/frappe/form/link_selector.js:46
#: public/js/frappe/ui/toolbar/search.js:49
@@ -26972,7 +27125,7 @@ msgstr "Auf der Webseite ansehen"
#: website/doctype/web_form/templates/web_form.html:150
msgid "See previous responses"
-msgstr ""
+msgstr "Vorherige Antworten anzeigen"
#: integrations/doctype/slack_webhook_url/slack_webhook_url.py:48
msgid "See the document at {0}"
@@ -27267,11 +27420,11 @@ msgstr "DocType auswählen, um ein neues Format zu erstellen"
#: integrations/doctype/webhook/webhook.py:130
msgid "Select a document to check if it meets conditions."
-msgstr ""
+msgstr "Wählen Sie ein Dokument aus, um zu prüfen, ob es die Bedingungen erfüllt."
#: integrations/doctype/webhook/webhook.py:142
msgid "Select a document to preview request data"
-msgstr ""
+msgstr "Wählen Sie ein Dokument zur Vorschau der Anfragedaten"
#: public/js/frappe/views/treeview.js:342
msgid "Select a group node first."
@@ -27331,7 +27484,7 @@ msgstr "Bitte Element auswählen, nach dem ein neues Feld eingefügt werden soll
#: public/js/frappe/utils/diffview.js:101
msgid "Select two versions to view the diff."
-msgstr ""
+msgstr "Wählen Sie zwei Versionen aus, um den Unterschied anzuzeigen."
#: public/js/frappe/form/link_selector.js:24
#: public/js/frappe/form/multi_select_dialog.js:79
@@ -27379,7 +27532,7 @@ msgstr "E-Mail-Benachrichtigung senden"
#: email/doctype/newsletter/newsletter.json
msgctxt "Newsletter"
msgid "Send Email At"
-msgstr ""
+msgstr "E-Mail senden am"
#. Description of the 'Send Print as PDF' (Check) field in DocType 'Print
#. Settings'
@@ -27488,7 +27641,7 @@ msgstr "Abmelde-Link senden"
#: email/doctype/newsletter/newsletter.json
msgctxt "Newsletter"
msgid "Send Web View Link"
-msgstr ""
+msgstr "Webview-Link senden"
#. Label of a Check field in DocType 'User'
#: core/doctype/user/user.json
@@ -27498,7 +27651,7 @@ msgstr "Willkommens-E-Mail senden"
#: www/me.html:67
msgid "Send a request to delete your account"
-msgstr ""
+msgstr "Senden Sie eine Anfrage zum Löschen Ihres Kontos"
#: email/doctype/newsletter/newsletter.js:10
msgid "Send a test email"
@@ -27815,15 +27968,15 @@ msgstr "Serverskript"
#: utils/safe_exec.py:90
msgid "Server Scripts are disabled. Please enable server scripts from bench configuration."
-msgstr ""
+msgstr "Serverskripte sind deaktiviert. Bitte aktivieren Sie Server-Skripte in der Bankkonfiguration."
#: core/doctype/server_script/server_script.js:32
msgid "Server Scripts feature is not available on this site."
-msgstr ""
+msgstr "Server-Skript-Funktion ist auf dieser Seite nicht verfügbar."
#: public/js/frappe/request.js:243 public/js/frappe/request.js:251
msgid "Server was too busy to process this request. Please try again."
-msgstr ""
+msgstr "Server war zu beschäftigt, um diese Anfrage zu bearbeiten. Bitte versuchen Sie es erneut."
#. Label of a Select field in DocType 'Email Account'
#: email/doctype/email_account/email_account.json
@@ -27923,7 +28076,7 @@ msgstr "Limit festlegen"
#: core/doctype/document_naming_settings/document_naming_settings.json
msgctxt "Document Naming Settings"
msgid "Set Naming Series options on your transactions."
-msgstr ""
+msgstr "Legen Sie Nummernkreise für Ihre Transaktionen fest."
#. Label of a Password field in DocType 'User'
#: core/doctype/user/user.json
@@ -28058,7 +28211,24 @@ msgid "Set the filters here. For example:\n"
"\treqd: 1\n"
"}]\n"
""
-msgstr ""
+msgstr "Legen Sie hier die Filter fest. Beispiel:\n"
+"\n"
+"[{\n"
+"\tfieldname: \"company\",\n"
+"\tlabel: __(\"Company\"),\n"
+"\tfieldtype: \"Link\",\n"
+"\toptions: \"Company\",\n"
+"\tdefault: frappe.defaults.get_user_default(\"Company\"),\n"
+"\treqd: 1\n"
+"},\n"
+"{\n"
+"\tfieldname: \"account\",\n"
+"\tlabel: __(\"Account\"),\n"
+"\tfieldtype: \"Link\",\n"
+"\toptions: \"Account\",\n"
+"\treqd: 1\n"
+"}]\n"
+""
#. Description of the 'Method' (Data) field in DocType 'Number Card'
#: desk/doctype/number_card/number_card.json
@@ -28071,7 +28241,14 @@ msgid "Set the path to a whitelisted function that will return the data for the
"\t\"route_options\": {\"from_date\": \"2023-05-23\"},\n"
"\t\"route\": [\"query-report\", \"Permitted Documents For User\"]\n"
"}"
-msgstr ""
+msgstr "Tragen Sie den Pfad zu einer freigegebenen Funktion ein, die die Daten für die Zahlenkarte im folgenden Format zurückgibt:\n\n"
+"\n"
+"{\n"
+"\t\"value\": value,\n"
+"\t\"fieldtype\": \"Currency\",\n"
+"\t\"route_options\": {\"from_date\": \"2023-05-23\"},\n"
+"\t\"route\": [\"query-report\", \"Permitted Documents For User\"]\n"
+"}"
#: contacts/doctype/address_template/address_template.py:32
msgid "Setting this Address Template as default as there is no other default"
@@ -28138,7 +28315,7 @@ msgstr "Einrichtung"
#. Title of an Onboarding Step
#: custom/onboarding_step/workflows/workflows.json
msgid "Setup Approval Workflows"
-msgstr ""
+msgstr "Genehmigungsworkflows einrichten"
#: public/js/frappe/views/reports/query_report.js:1658
#: public/js/frappe/views/reports/report_view.js:1609
@@ -28158,7 +28335,7 @@ msgstr "Einrichtung abgeschlossen"
#. Title of an Onboarding Step
#: custom/onboarding_step/role_permissions/role_permissions.json
msgid "Setup Limited Access for a User"
-msgstr ""
+msgstr "Eingeschränkten Zugriff für einen Benutzer einrichten"
#. Title of an Onboarding Step
#: custom/onboarding_step/naming_series/naming_series.json
@@ -28257,7 +28434,7 @@ msgstr "Anzeigen"
#: website/doctype/blog_settings/blog_settings.json
msgctxt "Blog Settings"
msgid "Show \"Call to Action\" in Blog"
-msgstr ""
+msgstr "„Aufruf zum Handeln\" im Blog anzeigen"
#. Label of a Check field in DocType 'Print Format'
#: printing/doctype/print_format/print_format.json
@@ -28599,7 +28776,7 @@ msgstr "Registrieren"
#: integrations/doctype/social_login_key/social_login_key.json
msgctxt "Social Login Key"
msgid "Sign ups"
-msgstr ""
+msgstr "Registrierungen"
#. Option for the 'Field Type' (Select) field in DocType 'Custom Field'
#: custom/doctype/custom_field/custom_field.json
@@ -28683,7 +28860,7 @@ msgstr "Einzelne Typen haben nur einen Datensatz, keine Tabellen zugeordnet. Die
#: database/database.py:230
msgid "Site is running in read only mode for maintenance or site update, this action can not be performed right now. Please try again later."
-msgstr ""
+msgstr "Diese Instanz läuft im schreibgeschützten Modus für Wartungsarbeiten und Aktualisierungen. Diese Aktion kann daher momentan nicht ausgeführt werden. Bitte versuchen Sie es später erneut."
#: public/js/onboarding_tours/onboarding_tours.js:18
msgid "Skip"
@@ -28725,11 +28902,11 @@ msgstr "Spalte {0} wird übersprungen"
#: modules/utils.py:162
msgid "Skipping fixture syncing for doctype {0} from file {1}"
-msgstr ""
+msgstr "Überspringe Synchronisierung von Fixtures für den Doctype {0} aus der Datei {1}"
#: core/doctype/data_import/data_import.js:39
msgid "Skipping {0} of {1}, {2}"
-msgstr ""
+msgstr "Überspringe {0} von {1}, {2}"
#. Label of a Data field in DocType 'Contact Us Settings'
#: website/doctype/contact_us_settings/contact_us_settings.json
@@ -28840,13 +29017,13 @@ msgstr "Typ des sozialen Links"
#. Name of a DocType
#: integrations/doctype/social_login_key/social_login_key.json
msgid "Social Login Key"
-msgstr ""
+msgstr "Social Login Key"
#. Label of a Link in the Integrations Workspace
#: integrations/workspace/integrations/integrations.json
msgctxt "Social Login Key"
msgid "Social Login Key"
-msgstr ""
+msgstr "Social Login Key"
#. Label of a Select field in DocType 'Social Login Key'
#: integrations/doctype/social_login_key/social_login_key.json
@@ -29043,7 +29220,7 @@ msgstr "Standard"
#: model/delete_doc.py:79
msgid "Standard DocType can not be deleted."
-msgstr ""
+msgstr "Standard DocType kann nicht gelöscht werden."
#: core/doctype/doctype/doctype.py:228
msgid "Standard DocType cannot have default print format, use Customize Form"
@@ -29085,7 +29262,7 @@ msgstr "Standardrollen kann nicht umbenannt werden"
#: core/doctype/user_type/user_type.py:60
msgid "Standard user type {0} can not be deleted."
-msgstr ""
+msgstr "Standard-Benutzertyp {0} kann nicht gelöscht werden."
#: templates/emails/energy_points_summary.html:33
msgid "Standings"
@@ -29136,7 +29313,7 @@ msgstr "Startzeit"
#: templates/includes/comments/comments.html:8
msgid "Start a new discussion"
-msgstr ""
+msgstr "Eine neue Unterhaltung starten"
#: core/doctype/data_export/exporter.py:22
msgid "Start entering data below this line"
@@ -29452,7 +29629,7 @@ msgstr "Speichert die JSON (JavaScript Object Notation) der letzten bekannten Ve
#: core/doctype/user/user.json
msgctxt "User"
msgid "Stores the datetime when the last reset password key was generated."
-msgstr ""
+msgstr "Speichert das Datum, an dem der letzte Schlüssel zum Zurücksetzen des Passworts generiert wurde."
#: utils/password_strength.py:99
msgid "Straight rows of keys are easy to guess"
@@ -29681,11 +29858,11 @@ msgstr "Nach dem Import buchen"
#: website/doctype/web_form/web_form.json
msgctxt "Web Form"
msgid "Submit Button Label"
-msgstr ""
+msgstr "Übertrage Button Label"
#: website/doctype/web_form/templates/web_form.html:153
msgid "Submit another response"
-msgstr ""
+msgstr "Eine weitere Antwort senden"
#. Label of a Check field in DocType 'Auto Repeat'
#: automation/doctype/auto_repeat/auto_repeat.json
@@ -29730,7 +29907,7 @@ msgstr "Buchung kann nicht in Entwurf umgewandelt werden. Zeile {0}"
#: public/js/workflow_builder/utils.js:176
msgid "Submitted document cannot be converted back to draft while transitioning from {0} State to {1} State"
-msgstr ""
+msgstr "Das gebuchte Dokument kann beim Übergang vom Status {0} zum Status {1} nicht wieder in einen Entwurf umgewandelt werden."
#: public/js/frappe/form/save.js:10
msgctxt "Freeze message while submitting a document"
@@ -29857,11 +30034,11 @@ msgstr "Erfolgreich aktualisiert"
#: core/doctype/data_import/data_import.js:434
msgid "Successfully imported {0}"
-msgstr ""
+msgstr "Erfolgreich importiert {0}"
#: desk/doctype/form_tour/form_tour.py:86
msgid "Successfully reset onboarding status for all users."
-msgstr ""
+msgstr "Onboarding-Status für alle Benutzer erfolgreich zurückgesetzt."
#: public/js/frappe/views/translation_manager.js:22
msgid "Successfully updated translations"
@@ -29869,11 +30046,11 @@ msgstr "Erfolgreich aktualisierte Übersetzungen"
#: core/doctype/data_import/data_import.js:442
msgid "Successfully updated {0}"
-msgstr ""
+msgstr "Erfolgreich aktualisiert {0}"
#: core/doctype/data_import/data_import.js:149
msgid "Successfully {0} 1 record."
-msgstr ""
+msgstr "Erfolgreich {0} 1 Datensatz."
#: core/doctype/data_import/data_import.js:156
msgid "Successfully {0} {1} record out of {2}. Click on Export Errored Rows, fix the errors and import again."
@@ -29885,7 +30062,7 @@ msgstr ""
#: core/doctype/data_import/data_import.js:151
msgid "Successfully {0} {1} records."
-msgstr ""
+msgstr "Erfolgreich {0} {1} Datensätze."
#: core/doctype/user/user.py:679
msgid "Suggested Username: {0}"
@@ -29971,7 +30148,7 @@ msgstr "Kamera wird gewechselt"
#: geo/doctype/currency/currency.json
msgctxt "Currency"
msgid "Symbol"
-msgstr ""
+msgstr "Symbol"
#. Label of a Section Break field in DocType 'Google Calendar'
#: integrations/doctype/google_calendar/google_calendar.json
@@ -29999,7 +30176,7 @@ msgstr "Anpassungen bei jeder Datenbankmigration synchronisieren"
#: integrations/doctype/google_calendar/google_calendar.py:295
msgid "Sync token was invalid and has been reset, Retry syncing."
-msgstr ""
+msgstr "Das Synchronisierungstoken war ungültig und wurde zurückgesetzt. Versuchen Sie die Synchronisierung erneut."
#. Label of a Check field in DocType 'Event'
#: desk/doctype/event/event.json
@@ -30038,7 +30215,7 @@ msgstr "Syntaxfehler"
#: core/doctype/doctype/doctype.json
msgctxt "DocType"
msgid "System"
-msgstr ""
+msgstr "System"
#. Name of a DocType
#: desk/doctype/system_console/system_console.json
@@ -30047,12 +30224,12 @@ msgstr "Systemkonsole"
#: custom/doctype/custom_field/custom_field.py:358
msgid "System Generated Fields can not be renamed"
-msgstr ""
+msgstr "Systemgenerierte Felder können nicht umbenannt werden"
#. Label of a Card Break in the Build Workspace
#: core/workspace/build/build.json
msgid "System Logs"
-msgstr ""
+msgstr "Systemprotokolle"
#. Name of a role
#: automation/doctype/assignment_rule/assignment_rule.json
@@ -30187,7 +30364,7 @@ msgstr "System-Manager"
#: desk/page/backups/backups.js:36
msgid "System Manager privileges required."
-msgstr ""
+msgstr "System-Manager-Berechtigungen erforderlich."
#. Option for the 'Channel' (Select) field in DocType 'Notification'
#: email/doctype/notification/notification.json
@@ -30199,7 +30376,7 @@ msgstr "Systembenachrichtigung"
#: desk/doctype/notification_settings/notification_settings.json
msgctxt "Notification Settings"
msgid "System Notifications"
-msgstr ""
+msgstr "Systembenachrichtigungen"
#. Label of a Check field in DocType 'Page'
#: core/doctype/page/page.json
@@ -30234,19 +30411,19 @@ msgstr "Bio"
#: custom/doctype/custom_field/custom_field.json
msgctxt "Custom Field"
msgid "Tab Break"
-msgstr ""
+msgstr "Tab-Umbruch"
#. Option for the 'Type' (Select) field in DocType 'Customize Form Field'
#: custom/doctype/customize_form_field/customize_form_field.json
msgctxt "Customize Form Field"
msgid "Tab Break"
-msgstr ""
+msgstr "Tab-Umbruch"
#. Option for the 'Type' (Select) field in DocType 'DocField'
#: core/doctype/docfield/docfield.json
msgctxt "DocField"
msgid "Tab Break"
-msgstr ""
+msgstr "Tab-Umbruch"
#: core/doctype/data_export/exporter.py:23
msgid "Table"
@@ -30290,7 +30467,7 @@ msgstr "Tabellenfeldname"
#: core/doctype/doctype/doctype.py:1154
msgid "Table Fieldname Missing"
-msgstr ""
+msgstr "Tabellenfeldname fehlt"
#. Label of a HTML field in DocType 'Version'
#: core/doctype/version/version.json
@@ -30328,7 +30505,7 @@ msgstr "Tabelle {0} darf nicht leer sein"
#: printing/doctype/print_settings/print_settings.json
msgctxt "Print Settings"
msgid "Tabloid"
-msgstr ""
+msgstr "Tabloid"
#. Name of a DocType
#: desk/doctype/tag/tag.json
@@ -30398,13 +30575,13 @@ msgstr "Überschrift zu den Teammitgliedern"
#: website/doctype/about_us_settings/about_us_settings.json
msgctxt "About Us Settings"
msgid "Team Members Subtitle"
-msgstr ""
+msgstr "Teammitglieder Untertitel"
#. Label of a Section Break field in DocType 'System Settings'
#: core/doctype/system_settings/system_settings.json
msgctxt "System Settings"
msgid "Telemetry"
-msgstr ""
+msgstr "Telemetrie"
#. Label of a Code field in DocType 'Address Template'
#: contacts/doctype/address_template/address_template.json
@@ -30439,7 +30616,7 @@ msgstr "Vorlagenfehler"
#: printing/doctype/print_format_field_template/print_format_field_template.json
msgctxt "Print Format Field Template"
msgid "Template File"
-msgstr ""
+msgstr "Vorlagendatei"
#. Label of a Code field in DocType 'Data Import'
#: core/doctype/data_import/data_import.json
@@ -30473,31 +30650,31 @@ msgstr "Test_Ordner"
#: custom/doctype/custom_field/custom_field.json
msgctxt "Custom Field"
msgid "Text"
-msgstr ""
+msgstr "Text"
#. Option for the 'Type' (Select) field in DocType 'Customize Form Field'
#: custom/doctype/customize_form_field/customize_form_field.json
msgctxt "Customize Form Field"
msgid "Text"
-msgstr ""
+msgstr "Text"
#. Option for the 'Type' (Select) field in DocType 'DocField'
#: core/doctype/docfield/docfield.json
msgctxt "DocField"
msgid "Text"
-msgstr ""
+msgstr "Text"
#. Option for the 'Fieldtype' (Select) field in DocType 'Web Form Field'
#: website/doctype/web_form_field/web_form_field.json
msgctxt "Web Form Field"
msgid "Text"
-msgstr ""
+msgstr "Text"
#. Option for the 'Fieldtype' (Select) field in DocType 'Web Template Field'
#: website/doctype/web_template_field/web_template_field.json
msgctxt "Web Template Field"
msgid "Text"
-msgstr ""
+msgstr "Text"
#. Label of a Select field in DocType 'Web Page'
#: website/doctype/web_page/web_page.json
@@ -30579,7 +30756,9 @@ msgctxt "Google Settings"
msgid "The Client ID obtained from the Google Cloud Console under \n"
"\"APIs & Services\" > \"Credentials\"\n"
""
-msgstr ""
+msgstr "Die Client-ID, die Sie in der Google Cloud Console unter \n"
+"\"APIs & Services\" > \"Credentials\"\n"
+"erhalten"
#: email/doctype/notification/notification.py:129
msgid "The Condition '{0}' is invalid"
@@ -30591,7 +30770,7 @@ msgstr "Die eingegebene Datei-URL ist falsch"
#: website/doctype/personal_data_deletion_request/personal_data_deletion_request.py:364
msgid "The User record for this request has been auto-deleted due to inactivity by system admins."
-msgstr ""
+msgstr "Der Benutzerdatensatz für diese Anfrage wurde aufgrund der Inaktivität der Systemadministratoren automatisch gelöscht."
#: public/js/frappe/desk.js:127
msgid "The application has been updated to a new version, please refresh this page"
@@ -30614,7 +30793,9 @@ msgctxt "Google Settings"
msgid "The browser API key obtained from the Google Cloud Console under \n"
"\"APIs & Services\" > \"Credentials\"\n"
""
-msgstr ""
+msgstr "Der Browser-API-Schlüssel, den Sie von der Google Cloud Console unter \n"
+"\"APIs & Dienste\" > \"Zugangsdaten\"\n"
+"erhalten"
#: database/database.py:388
msgid "The changes have been reverted."
@@ -30641,14 +30822,14 @@ msgstr "Das Dokument wurde {0} zugewiesen"
#: desk/doctype/dashboard_chart/dashboard_chart.json
msgctxt "Dashboard Chart"
msgid "The document type selected is a child table, so the parent document type is required."
-msgstr ""
+msgstr "Der ausgewählte Dokumenttyp ist eine untergeordnete Tabelle, daher ist der übergeordnete Dokumenttyp erforderlich."
#. Description of the 'Parent Document Type' (Link) field in DocType 'Number
#. Card'
#: desk/doctype/number_card/number_card.json
msgctxt "Number Card"
msgid "The document type selected is a child table, so the parent document type is required."
-msgstr ""
+msgstr "Der ausgewählte Dokumenttyp ist eine untergeordnete Tabelle, daher ist der übergeordnete Dokumenttyp erforderlich."
#: core/doctype/user_type/user_type.py:109
msgid "The field {0} is mandatory"
@@ -30656,11 +30837,11 @@ msgstr "Das Feld {0} ist ein Pflichtfeld"
#: core/doctype/file/file.py:143
msgid "The fieldname you've specified in Attached To Field is invalid"
-msgstr ""
+msgstr "Der Feldname, den Sie im Angehängten Feld angegeben haben, ist ungültig"
#: core/doctype/data_import/importer.py:1035
msgid "The following values are invalid: {0}. Values must be one of {1}"
-msgstr ""
+msgstr "Die folgenden Werte sind ungültig: {0}. Die Werte müssen einer der folgenden sein: {1}"
#: core/doctype/data_import/importer.py:998
msgid "The following values do not exist for {0}: {1}"
@@ -30668,7 +30849,7 @@ msgstr "Die folgenden Werte existieren nicht für {0}: {1}"
#: core/doctype/user_type/user_type.py:88
msgid "The limit has not set for the user type {0} in the site config file."
-msgstr ""
+msgstr "Das Limit für den Benutzertyp {0} in der Seitenkonfigurationsdatei wurde nicht gesetzt."
#: templates/emails/login_with_email_link.html:21
msgid "The link will expire in {0} minutes"
@@ -30722,7 +30903,9 @@ msgctxt "Google Settings"
msgid "The project number obtained from Google Cloud Console under \n"
"\"IAM & Admin\" > \"Settings\"\n"
""
-msgstr ""
+msgstr "Die Projektnummer aus der Google Cloud Console unter \n"
+"\"IAM & Admin\" > \"Einstellungen\"\n"
+""
#: core/doctype/user/user.py:943
msgid "The reset password link has been expired"
@@ -30742,11 +30925,11 @@ msgstr "Die Rolle {0} sollte eine benutzerdefinierte Rolle sein."
#: core/doctype/audit_trail/audit_trail.py:45
msgid "The selected document {0} is not a {1}."
-msgstr ""
+msgstr "Das ausgewählte Dokument {0} ist nicht vom Typ {1}."
#: utils/response.py:321
msgid "The system is being updated. Please refresh again after a few moments."
-msgstr ""
+msgstr "Das System wird gerade aktualisiert. Bitte probieren Sie es nach einigen Augenblicken erneut."
#: public/js/frappe/form/grid_row.js:615
msgid "The total column width cannot be more than 10."
@@ -30754,7 +30937,7 @@ msgstr "Die Gesamtbreite aller Spalten darf nicht mehr als 10 sein."
#: core/doctype/user_type/user_type.py:96
msgid "The total number of user document types limit has been crossed."
-msgstr ""
+msgstr "Das Limit für die Gesamtzahl der Benutzerdokumenttypen wurde überschritten."
#. Description of the 'User Field' (Select) field in DocType 'Energy Point
#. Rule'
@@ -30765,7 +30948,7 @@ msgstr "Der Benutzer aus diesem Feld erhält Punkte"
#: public/js/frappe/form/controls/data.js:24
msgid "The value you pasted was {0} characters long. Max allowed characters is {1}."
-msgstr ""
+msgstr "Der Wert, den Sie eingefügt haben, war {0} Zeichen lang. Die maximal erlaubten Zeichen sind {1}."
#. Description of the 'Condition' (Small Text) field in DocType 'Webhook'
#: integrations/doctype/webhook/webhook.json
@@ -30872,7 +31055,7 @@ msgstr "Hier gibt es nichts"
#: integrations/doctype/ldap_settings/ldap_settings.json
msgctxt "LDAP Settings"
msgid "These settings are required if 'Custom' LDAP Directory is used"
-msgstr ""
+msgstr "Diese Einstellungen sind erforderlich, wenn das 'Benutzerdefinierte' LDAP-Verzeichnis verwendet wird"
#. Description of the 'Defaults' (Section Break) field in DocType 'User'
#: core/doctype/user/user.json
@@ -30928,7 +31111,7 @@ msgstr "Dieses Diagramm steht allen Benutzern zur Verfügung, wenn dies festgele
#: desk/doctype/workspace/workspace.js:23
msgid "This document allows you to edit limited fields. For all kinds of workspace customization, use the Edit button located on the workspace page"
-msgstr ""
+msgstr "In diesem Dokument können Sie begrenzte Felder bearbeiten. Für alle Arten von Anpassungen des Arbeitsbereichs verwenden Sie die Schaltfläche Bearbeiten auf der Seite des Arbeitsbereichs"
#: social/doctype/energy_point_log/energy_point_log.py:90
msgid "This document cannot be reverted"
@@ -30957,7 +31140,8 @@ msgstr "Diese E-Mail wurde automatisch generiert"
#: printing/doctype/network_printer_settings/network_printer_settings.py:29
msgid "This feature can not be used as dependencies are missing.\n"
"\t\t\t\tPlease contact your system manager to enable this by installing pycups!"
-msgstr ""
+msgstr "Diese Funktion kann nicht verwendet werden, da die Abhängigkeiten fehlen.\n"
+"\t\t\t\tBitte wenden Sie sich an Ihren Systemmanager, um diese Funktion durch die Installation von pycups zu aktivieren!"
#. Description of the 'Depends On' (Code) field in DocType 'Customize Form
#. Field'
@@ -30967,11 +31151,14 @@ msgid "This field will appear only if the fieldname defined here has value OR th
"myfield\n"
"eval:doc.myfield=='My Value'\n"
"eval:doc.age>18"
-msgstr ""
+msgstr "Dieses Feld wird nur angezeigt, wenn der hier definierte Feldname Wert hat oder die Regeln wahr sind (Beispiele):\n"
+"myfield\n"
+"eval:doc.myfield=='Mein Wert'\n"
+"eval:doc.age>18"
#: core/doctype/file/file.js:10
msgid "This file is public. It can be accessed without authentication."
-msgstr ""
+msgstr "Diese Datei ist öffentlich. Sie kann ohne Authentifizierung aufgerufen werden."
#: public/js/frappe/form/form.js:1172
msgid "This form has been modified after you have loaded it"
@@ -31012,7 +31199,7 @@ msgstr "Dies ist ein sehr verbreitetes Passwort."
#: core/doctype/rq_job/rq_job.js:9
msgid "This is a virtual doctype and data is cleared periodically."
-msgstr ""
+msgstr "Dies ist ein virtueller Dokumenttyp und die Daten werden regelmäßig gelöscht."
#: templates/emails/auto_reply.html:5
msgid "This is an automatically generated reply"
@@ -31058,7 +31245,7 @@ msgstr "Dieser Newsletter wird voraussichtlich am {0} verschickt"
#: email/doctype/newsletter/newsletter.js:50
msgid "This newsletter was scheduled to send on a later date. Are you sure you want to send it now?"
-msgstr ""
+msgstr "Der Versand dieses Newsletters war zu einem späteren Zeitpunkt geplant. Sind Sie sicher, dass Sie es jetzt senden möchten?"
#: templates/emails/auto_email_report.html:57
msgid "This report was generated on {0}"
@@ -31074,7 +31261,7 @@ msgstr "Diese Anfrage wurde vom Benutzer noch nicht genehmigt."
#: templates/includes/navbar/navbar_items.html:95
msgid "This site is in read only mode, full functionality will be restored soon."
-msgstr ""
+msgstr "Diese Instanz erlaubt derzeit nur lesenden Zugriff. Die volle Funktionalität wird bald wiederhergestellt werden."
#: core/doctype/doctype/doctype.js:76
msgid "This site is running in developer mode. Any change made here will be updated in code."
@@ -31593,14 +31780,16 @@ msgstr "An Benutzer"
msgctxt "Auto Repeat"
msgid "To add dynamic subject, use jinja tags like\n\n"
"New {{ doc.doctype }} #{{ doc.name }}Neu {{ doc.doctype }} #{{ doc.name }}{{ doc.name }} Delivered{{ doc.name }} Delivered{ \"id\": \"{{ doc.name }}\" }\n"
"\n"
""
-msgstr ""
+msgstr "Um dynamische Werte aus dem Dokument hinzuzufügen, verwenden Sie Jinja-Tags wie\n\n"
+"{ \"id\": \"{{ doc.name }}\" }\n"
+"\n"
+"print(text)"
-msgstr ""
+msgstr "Um die Ausgabe zu drucken, verwenden Sie print(text)"
#: core/doctype/user_type/user_type.py:295
msgid "To set the role {0} in the user {1}, kindly set the {2} field as {3} in one of the {4} record."
-msgstr ""
+msgstr "Um die Rolle {0} im Benutzer {1} festzulegen, legen Sie bitte das Feld {2} als {3} in einem der Datensätze {4} fest."
#: integrations/doctype/google_calendar/google_calendar.js:8
msgid "To use Google Calendar, enable {0}."
@@ -31669,17 +31862,17 @@ msgstr "Aktivieren Sie {0}, um Google Drive zu verwenden."
#: website/doctype/website_settings/website_settings.json
msgctxt "Website Settings"
msgid "To use Google Indexing, enable Google Settings."
-msgstr ""
+msgstr "Um die Google-Indizierung zu verwenden, aktivieren Sie die Google-Einstellungen."
#. Description of the 'Slack Channel' (Link) field in DocType 'Notification'
#: email/doctype/notification/notification.json
msgctxt "Notification"
msgid "To use Slack Channel, add a Slack Webhook URL."
-msgstr ""
+msgstr "Um den Slack Kanal zu verwenden, fügen Sie eine Slack Webhook URL hinzu."
#: public/js/frappe/utils/diffview.js:43
msgid "To version"
-msgstr ""
+msgstr "Zu Version"
#. Name of a DocType
#. Name of a report
@@ -31747,19 +31940,19 @@ msgstr "Zeichen"
#. Name of a DocType
#: integrations/doctype/token_cache/token_cache.json
msgid "Token Cache"
-msgstr ""
+msgstr "Token Cache"
#. Linked DocType in Connected App's connections
#: integrations/doctype/connected_app/connected_app.json
msgctxt "Connected App"
msgid "Token Cache"
-msgstr ""
+msgstr "Token Cache"
#. Linked DocType in User's connections
#: core/doctype/user/user.json
msgctxt "User"
msgid "Token Cache"
-msgstr ""
+msgstr "Token Cache"
#. Label of a Data field in DocType 'Token Cache'
#: integrations/doctype/token_cache/token_cache.json
@@ -31836,7 +32029,7 @@ msgstr "Oben links"
#: templates/emails/energy_points_summary.html:3
msgid "Top Performer"
-msgstr ""
+msgstr "Top Performer"
#: templates/emails/energy_points_summary.html:18
msgid "Top Reviewer"
@@ -31918,7 +32111,7 @@ msgstr "Summenzeile"
#: core/doctype/error_log/error_log.json
msgctxt "Error Log"
msgid "Trace ID"
-msgstr ""
+msgstr "Trace ID"
#. Label of a Code field in DocType 'Patch Log'
#: core/doctype/patch_log/patch_log.json
@@ -31960,7 +32153,7 @@ msgstr "Track gesehen"
#: desk/doctype/form_tour/form_tour.json
msgctxt "Form Tour"
msgid "Track Steps"
-msgstr ""
+msgstr "Schritte verfolgen"
#. Label of a Check field in DocType 'Customize Form'
#: custom/doctype/customize_form/customize_form.json
@@ -31981,11 +32174,13 @@ msgctxt "Email Account"
msgid "Track if your email has been opened by the recipient.\n"
"filters. result = [result], or for old style data = [columns], [result]"
msgstr ""
-#: public/js/frappe/ui/toolbar/search_utils.js:556
+#: public/js/frappe/ui/toolbar/search_utils.js:572
msgid "Find '{0}' in ..."
msgstr ""
-#: public/js/frappe/ui/toolbar/awesome_bar.js:325
-#: public/js/frappe/ui/toolbar/awesome_bar.js:326
-#: public/js/frappe/ui/toolbar/search_utils.js:125
-#: public/js/frappe/ui/toolbar/search_utils.js:128
+#: public/js/frappe/ui/toolbar/awesome_bar.js:327
+#: public/js/frappe/ui/toolbar/awesome_bar.js:328
+#: public/js/frappe/ui/toolbar/search_utils.js:141
+#: public/js/frappe/ui/toolbar/search_utils.js:144
msgid "Find {0} in {1}"
msgstr ""
@@ -12410,11 +12426,11 @@ msgctxt "Report Filter"
msgid "Fold"
msgstr ""
-#: core/doctype/doctype/doctype.py:1401
+#: core/doctype/doctype/doctype.py:1397
msgid "Fold can not be at the end of the form"
msgstr ""
-#: core/doctype/doctype/doctype.py:1399
+#: core/doctype/doctype/doctype.py:1395
msgid "Fold must come before a Section Break"
msgstr ""
@@ -12460,7 +12476,7 @@ msgstr ""
msgid "Following fields have invalid values:"
msgstr ""
-#: public/js/frappe/widgets/widget_dialog.js:314
+#: public/js/frappe/widgets/widget_dialog.js:320
msgid "Following fields have missing values"
msgstr ""
@@ -12630,7 +12646,7 @@ msgstr ""
msgid "For Document Type"
msgstr ""
-#: public/js/frappe/widgets/widget_dialog.js:529
+#: public/js/frappe/widgets/widget_dialog.js:535
msgid "For Example: {} Open"
msgstr ""
@@ -12723,7 +12739,7 @@ msgstr ""
msgid "For updating, you can update only selective columns."
msgstr ""
-#: core/doctype/doctype/doctype.py:1692
+#: core/doctype/doctype/doctype.py:1688
msgid "For {0} at level {1} in {2} in row {3}"
msgstr ""
@@ -12870,7 +12886,7 @@ msgctxt "Webhook"
msgid "Form URL-Encoded"
msgstr ""
-#: public/js/frappe/widgets/widget_dialog.js:528
+#: public/js/frappe/widgets/widget_dialog.js:534
msgid "Format"
msgstr ""
@@ -13108,7 +13124,7 @@ msgid "Full Width"
msgstr ""
#: public/js/frappe/views/reports/query_report.js:245
-#: public/js/frappe/widgets/widget_dialog.js:666
+#: public/js/frappe/widgets/widget_dialog.js:672
msgid "Function"
msgstr ""
@@ -13118,11 +13134,11 @@ msgctxt "Number Card"
msgid "Function"
msgstr ""
-#: public/js/frappe/widgets/widget_dialog.js:673
+#: public/js/frappe/widgets/widget_dialog.js:679
msgid "Function Based On"
msgstr ""
-#: __init__.py:835
+#: __init__.py:875
msgid "Function {0} is not whitelisted."
msgstr ""
@@ -13206,12 +13222,12 @@ msgstr ""
msgid "Generate New Report"
msgstr ""
-#: public/js/frappe/ui/toolbar/awesome_bar.js:366
+#: public/js/frappe/ui/toolbar/awesome_bar.js:368
msgid "Generate Random Password"
msgstr ""
#: public/js/frappe/ui/toolbar/toolbar.js:137
-#: public/js/frappe/utils/utils.js:1750
+#: public/js/frappe/utils/utils.js:1751
msgid "Generate Tracking URL"
msgstr ""
@@ -13838,6 +13854,12 @@ msgctxt "Auto Email Report"
msgid "Half Yearly"
msgstr ""
+#. Option for the 'Repeat On' (Select) field in DocType 'Event'
+#: desk/doctype/event/event.json
+msgctxt "Event"
+msgid "Half Yearly"
+msgstr ""
+
#: public/js/frappe/utils/common.js:402
msgid "Half-yearly"
msgstr ""
@@ -14066,7 +14088,7 @@ msgctxt "Print Settings"
msgid "Helvetica Neue"
msgstr ""
-#: public/js/frappe/utils/utils.js:1747
+#: public/js/frappe/utils/utils.js:1748
msgid "Here's your tracking URL"
msgstr ""
@@ -14134,7 +14156,7 @@ msgctxt "Form Tour Step"
msgid "Hidden Fields"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:814
+#: public/js/frappe/views/workspace/workspace.js:820
#: public/js/frappe/widgets/base_widget.js:46
#: public/js/frappe/widgets/base_widget.js:176
msgid "Hide"
@@ -14291,7 +14313,7 @@ msgstr ""
msgid "Hide Weekends"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:815
+#: public/js/frappe/views/workspace/workspace.js:821
msgid "Hide Workspace"
msgstr ""
@@ -14501,9 +14523,9 @@ msgctxt "Comment"
msgid "IP Address"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:632
-#: public/js/frappe/views/workspace/workspace.js:960
-#: public/js/frappe/views/workspace/workspace.js:1205
+#: public/js/frappe/views/workspace/workspace.js:638
+#: public/js/frappe/views/workspace/workspace.js:966
+#: public/js/frappe/views/workspace/workspace.js:1211
msgid "Icon"
msgstr ""
@@ -14606,7 +14628,7 @@ msgctxt "Workflow Document State"
msgid "If Checked workflow status will not override status in list view"
msgstr ""
-#: core/doctype/doctype/doctype.py:1706
+#: core/doctype/doctype/doctype.py:1702
msgid "If Owner"
msgstr ""
@@ -14973,11 +14995,11 @@ msgctxt "Letter Head"
msgid "Image Width"
msgstr ""
-#: core/doctype/doctype/doctype.py:1457
+#: core/doctype/doctype/doctype.py:1453
msgid "Image field must be a valid fieldname"
msgstr ""
-#: core/doctype/doctype/doctype.py:1459
+#: core/doctype/doctype/doctype.py:1455
msgid "Image field must be of type Attach Image"
msgstr ""
@@ -15221,7 +15243,7 @@ msgstr ""
msgid "In Progress"
msgstr ""
-#: database/database.py:233
+#: database/database.py:241
msgid "In Read Only Mode"
msgstr ""
@@ -15351,7 +15373,7 @@ msgstr ""
msgid "Incomplete Virtual Doctype Implementation"
msgstr ""
-#: auth.py:236
+#: auth.py:238
msgid "Incomplete login details"
msgstr ""
@@ -15433,9 +15455,9 @@ msgctxt "Workspace"
msgid "Indicator Color"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:639
-#: public/js/frappe/views/workspace/workspace.js:967
-#: public/js/frappe/views/workspace/workspace.js:1211
+#: public/js/frappe/views/workspace/workspace.js:645
+#: public/js/frappe/views/workspace/workspace.js:973
+#: public/js/frappe/views/workspace/workspace.js:1217
msgid "Indicator color"
msgstr ""
@@ -15499,7 +15521,7 @@ msgstr ""
msgid "Insert Column Before {0}"
msgstr ""
-#: public/js/frappe/form/controls/markdown_editor.js:81
+#: public/js/frappe/form/controls/markdown_editor.js:82
msgid "Insert Image in Markdown"
msgstr ""
@@ -15515,8 +15537,8 @@ msgctxt "Web Page"
msgid "Insert Style"
msgstr ""
-#: public/js/frappe/ui/toolbar/search_utils.js:646
-#: public/js/frappe/ui/toolbar/search_utils.js:647
+#: public/js/frappe/ui/toolbar/search_utils.js:662
+#: public/js/frappe/ui/toolbar/search_utils.js:663
msgid "Install {0} from Marketplace"
msgstr ""
@@ -15540,11 +15562,11 @@ msgstr ""
msgid "Installed Apps"
msgstr ""
-#: permissions.py:826
+#: permissions.py:829
msgid "Insufficient Permission Level for {0}"
msgstr ""
-#: database/query.py:371 desk/form/load.py:40 model/document.py:234
+#: database/query.py:372 desk/form/load.py:40 model/document.py:234
msgid "Insufficient Permission for {0}"
msgstr ""
@@ -15556,7 +15578,7 @@ msgstr ""
msgid "Insufficient Permissions for editing Report"
msgstr ""
-#: core/doctype/doctype/doctype.py:447
+#: core/doctype/doctype/doctype.py:443
msgid "Insufficient attachment limit"
msgstr ""
@@ -15704,7 +15726,7 @@ msgctxt "OAuth Authorization Code"
msgid "Invalid"
msgstr ""
-#: public/js/form_builder/utils.js:221 public/js/frappe/form/grid_row.js:748
+#: public/js/form_builder/utils.js:221 public/js/frappe/form/grid_row.js:768
#: public/js/frappe/form/layout.js:774
msgid "Invalid \"depends_on\" expression"
msgstr ""
@@ -15741,11 +15763,11 @@ msgstr ""
msgid "Invalid DocType"
msgstr ""
-#: database/query.py:95
+#: database/query.py:96
msgid "Invalid DocType: {0}"
msgstr ""
-#: core/doctype/doctype/doctype.py:1223
+#: core/doctype/doctype/doctype.py:1219
msgid "Invalid Fieldname"
msgstr ""
@@ -15785,7 +15807,7 @@ msgstr ""
msgid "Invalid Operation"
msgstr ""
-#: core/doctype/doctype/doctype.py:1582 core/doctype/doctype/doctype.py:1591
+#: core/doctype/doctype/doctype.py:1578 core/doctype/doctype/doctype.py:1587
msgid "Invalid Option"
msgstr ""
@@ -15811,7 +15833,7 @@ msgstr ""
msgid "Invalid Phone Number"
msgstr ""
-#: auth.py:93 utils/oauth.py:184 utils/oauth.py:191 www/login.py:112
+#: auth.py:95 utils/oauth.py:184 utils/oauth.py:191 www/login.py:112
msgid "Invalid Request"
msgstr ""
@@ -15819,7 +15841,7 @@ msgstr ""
msgid "Invalid Search Field {0}"
msgstr ""
-#: core/doctype/doctype/doctype.py:1165
+#: core/doctype/doctype/doctype.py:1161
msgid "Invalid Table Fieldname"
msgstr ""
@@ -15827,7 +15849,7 @@ msgstr ""
msgid "Invalid Transition"
msgstr ""
-#: core/doctype/file/file.py:217 public/js/frappe/widgets/widget_dialog.js:565
+#: core/doctype/file/file.py:217 public/js/frappe/widgets/widget_dialog.js:571
#: utils/csvutils.py:199 utils/csvutils.py:220
msgid "Invalid URL"
msgstr ""
@@ -15860,11 +15882,11 @@ msgstr ""
msgid "Invalid expression set in filter {0} ({1})"
msgstr ""
-#: utils/data.py:2128
+#: utils/data.py:2122
msgid "Invalid field name {0}"
msgstr ""
-#: core/doctype/doctype/doctype.py:1048
+#: core/doctype/doctype/doctype.py:1044
msgid "Invalid fieldname '{0}' in autoname"
msgstr ""
@@ -15872,7 +15894,7 @@ msgstr ""
msgid "Invalid file path: {0}"
msgstr ""
-#: database/query.py:173 public/js/frappe/ui/filters/filter_list.js:199
+#: database/query.py:174 public/js/frappe/ui/filters/filter_list.js:199
msgid "Invalid filter: {0}"
msgstr ""
@@ -15923,7 +15945,7 @@ msgctxt "Error message in web form"
msgid "Invalid values for fields:"
msgstr ""
-#: core/doctype/doctype/doctype.py:1515
+#: core/doctype/doctype/doctype.py:1511
msgid "Invalid {0} condition"
msgstr ""
@@ -15965,7 +15987,7 @@ msgctxt "DocType"
msgid "Is Calendar and Gantt"
msgstr ""
-#: core/doctype/doctype/doctype_list.js:34
+#: core/doctype/doctype/doctype_list.js:49
msgid "Is Child Table"
msgstr ""
@@ -16127,7 +16149,7 @@ msgctxt "DocType"
msgid "Is Published Field"
msgstr ""
-#: core/doctype/doctype/doctype.py:1466
+#: core/doctype/doctype/doctype.py:1462
msgid "Is Published Field must be a valid fieldname"
msgstr ""
@@ -16143,7 +16165,7 @@ msgctxt "Integration Request"
msgid "Is Remote Request?"
msgstr ""
-#: core/doctype/doctype/doctype_list.js:48
+#: core/doctype/doctype/doctype_list.js:64
msgid "Is Single"
msgstr ""
@@ -16225,7 +16247,7 @@ msgctxt "Web Form"
msgid "Is Standard"
msgstr ""
-#: core/doctype/doctype/doctype_list.js:25
+#: core/doctype/doctype/doctype_list.js:39
msgid "Is Submittable"
msgstr ""
@@ -16451,7 +16473,7 @@ msgstr ""
msgid "Job is not running."
msgstr ""
-#: desk/doctype/event/event.js:51
+#: desk/doctype/event/event.js:55
msgid "Join video conference with {0}"
msgstr ""
@@ -16745,8 +16767,9 @@ msgid "LDAP settings incorrect. validation response was: {0}"
msgstr ""
#: printing/page/print_format_builder/print_format_builder.js:474
-#: public/js/frappe/widgets/widget_dialog.js:606
-#: public/js/frappe/widgets/widget_dialog.js:639
+#: public/js/frappe/widgets/widget_dialog.js:222
+#: public/js/frappe/widgets/widget_dialog.js:612
+#: public/js/frappe/widgets/widget_dialog.js:645
msgid "Label"
msgstr ""
@@ -17116,7 +17139,7 @@ msgid "Leave blank to repeat always"
msgstr ""
#: core/doctype/communication/mixins.py:206
-#: email/doctype/email_account/email_account.py:624
+#: email/doctype/email_account/email_account.py:626
msgid "Leave this conversation"
msgstr ""
@@ -17518,6 +17541,12 @@ msgstr ""
msgid "Link Expired"
msgstr ""
+#. Label of a Int field in DocType 'System Settings'
+#: core/doctype/system_settings/system_settings.json
+msgctxt "System Settings"
+msgid "Link Field Results Limit"
+msgstr ""
+
#. Label of a Data field in DocType 'DocType Link'
#: core/doctype/doctype_link/doctype_link.json
msgctxt "DocType Link"
@@ -17755,7 +17784,7 @@ msgctxt "Web Page"
msgid "List as [{\"label\": _(\"Jobs\"), \"route\":\"jobs\"}]"
msgstr ""
-#: public/js/frappe/ui/toolbar/search_utils.js:526
+#: public/js/frappe/ui/toolbar/search_utils.js:542
msgid "Lists"
msgstr ""
@@ -17928,7 +17957,7 @@ msgstr ""
msgid "Login is required to see web form list view. Enable {0} to see list settings"
msgstr ""
-#: auth.py:322 auth.py:325
+#: auth.py:324 auth.py:327
msgid "Login not allowed at this time"
msgstr ""
@@ -17968,7 +17997,7 @@ msgctxt "System Settings"
msgid "Login with email link expiry (in minutes)"
msgstr ""
-#: auth.py:131
+#: auth.py:133
msgid "Login with username and password is not allowed."
msgstr ""
@@ -18407,7 +18436,7 @@ msgctxt "System Settings"
msgid "Max auto email report per user"
msgstr ""
-#: core/doctype/doctype/doctype.py:1293
+#: core/doctype/doctype/doctype.py:1289
msgid "Max width for type Currency is 100px in row {0}"
msgstr ""
@@ -18455,7 +18484,7 @@ msgid "Me"
msgstr ""
#: public/js/frappe/form/sidebar/assign_to.js:194
-#: public/js/frappe/utils/utils.js:1719
+#: public/js/frappe/utils/utils.js:1720
#: website/report/website_analytics/website_analytics.js:40
msgid "Medium"
msgstr ""
@@ -18551,7 +18580,7 @@ msgctxt "Communication"
msgid "Message"
msgstr ""
-#: __init__.py:527 public/js/frappe/ui/messages.js:267
+#: __init__.py:567 public/js/frappe/ui/messages.js:267
msgctxt "Default title of the message dialog"
msgid "Message"
msgstr ""
@@ -18641,7 +18670,7 @@ msgctxt "Notification"
msgid "Message Type"
msgstr ""
-#: public/js/frappe/views/communication.js:841
+#: public/js/frappe/views/communication.js:883
msgid "Message clipped"
msgstr ""
@@ -18857,7 +18886,7 @@ msgstr ""
msgid "Missing DocType"
msgstr ""
-#: core/doctype/doctype/doctype.py:1477
+#: core/doctype/doctype/doctype.py:1473
msgid "Missing Field"
msgstr ""
@@ -18878,7 +18907,7 @@ msgid "Missing Value"
msgstr ""
#: public/js/frappe/ui/field_group.js:118
-#: public/js/frappe/widgets/widget_dialog.js:330
+#: public/js/frappe/widgets/widget_dialog.js:336
#: public/js/workflow_builder/store.js:97
#: workflow/doctype/workflow/workflow.js:71
msgid "Missing Values Required"
@@ -18921,7 +18950,7 @@ msgstr ""
msgid "Modified By"
msgstr ""
-#: core/doctype/doctype/doctype_list.js:17
+#: core/doctype/doctype/doctype_list.js:30
msgid "Module"
msgstr ""
@@ -19641,11 +19670,11 @@ msgctxt "Role"
msgid "Navigation Settings"
msgstr ""
-#: desk/doctype/workspace/workspace.py:297
+#: desk/doctype/workspace/workspace.py:303
msgid "Need Workspace Manager role to edit private workspace of other users"
msgstr ""
-#: desk/doctype/workspace/workspace.py:343
+#: desk/doctype/workspace/workspace.py:349
msgid "Need Workspace Manager role to hide/unhide public workspaces"
msgstr ""
@@ -19776,7 +19805,7 @@ msgstr ""
msgid "New Workflow Name"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:1172
+#: public/js/frappe/views/workspace/workspace.js:1178
msgid "New Workspace"
msgstr ""
@@ -19784,7 +19813,7 @@ msgstr ""
msgid "New password cannot be same as old password"
msgstr ""
-#: utils/change_log.py:306
+#: utils/change_log.py:322
msgid "New updates are available"
msgstr ""
@@ -19805,10 +19834,10 @@ msgstr ""
#: public/js/frappe/form/quick_entry.js:124 public/js/frappe/form/toolbar.js:36
#: public/js/frappe/form/toolbar.js:196 public/js/frappe/form/toolbar.js:209
#: public/js/frappe/form/toolbar.js:490
-#: public/js/frappe/ui/toolbar/search_utils.js:151
-#: public/js/frappe/ui/toolbar/search_utils.js:152
-#: public/js/frappe/ui/toolbar/search_utils.js:201
-#: public/js/frappe/ui/toolbar/search_utils.js:202
+#: public/js/frappe/ui/toolbar/search_utils.js:167
+#: public/js/frappe/ui/toolbar/search_utils.js:168
+#: public/js/frappe/ui/toolbar/search_utils.js:217
+#: public/js/frappe/ui/toolbar/search_utils.js:218
#: public/js/frappe/views/treeview.js:350
#: website/doctype/web_form/web_form.py:310
msgid "New {0}"
@@ -19831,7 +19860,7 @@ msgstr ""
msgid "New {0}: {1}"
msgstr ""
-#: utils/change_log.py:298
+#: utils/change_log.py:314
msgid "New {} releases for the following apps are available"
msgstr ""
@@ -19886,7 +19915,7 @@ msgstr ""
msgid "Newsletters"
msgstr ""
-#: public/js/frappe/form/form_tour.js:316
+#: public/js/frappe/form/form_tour.js:318
#: public/js/onboarding_tours/onboarding_tours.js:15
#: public/js/onboarding_tours/onboarding_tours.js:240
#: templates/includes/slideshow.html:38 website/utils.py:247
@@ -19960,7 +19989,7 @@ msgstr ""
#: integrations/doctype/webhook/webhook.py:137
#: public/js/form_builder/utils.js:341
-#: public/js/frappe/form/controls/link.js:471
+#: public/js/frappe/form/controls/link.js:472
#: public/js/frappe/list/list_sidebar_group_by.js:223
#: public/js/frappe/views/reports/query_report.js:1513
#: website/doctype/help_article/templates/help_article.html:26
@@ -20074,7 +20103,7 @@ msgstr ""
msgid "No Name Specified for {0}"
msgstr ""
-#: core/doctype/doctype/doctype.py:1684
+#: core/doctype/doctype/doctype.py:1680
msgid "No Permissions Specified"
msgstr ""
@@ -20130,7 +20159,7 @@ msgstr ""
msgid "No changes made because old and new name are the same."
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:1477
+#: public/js/frappe/views/workspace/workspace.js:1483
msgid "No changes made on the page"
msgstr ""
@@ -20216,7 +20245,7 @@ msgctxt "SMS Log"
msgid "No of Sent SMS"
msgstr ""
-#: __init__.py:1027 client.py:109 client.py:151
+#: __init__.py:1067 client.py:109 client.py:151
msgid "No permission for {0}"
msgstr ""
@@ -20350,7 +20379,7 @@ msgctxt "DocField"
msgid "Not Nullable"
msgstr ""
-#: __init__.py:921 app.py:354 desk/calendar.py:26 geo/utils.py:97
+#: __init__.py:961 app.py:354 desk/calendar.py:26 geo/utils.py:97
#: public/js/frappe/web_form/webform_script.js:15
#: website/doctype/web_form/web_form.py:603
#: website/page_renderers/not_permitted_page.py:20 www/login.py:177
@@ -20422,7 +20451,7 @@ msgstr ""
msgid "Not active"
msgstr ""
-#: permissions.py:367
+#: permissions.py:370
msgid "Not allowed for {0}: {1}"
msgstr ""
@@ -20430,7 +20459,7 @@ msgstr ""
msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings"
msgstr ""
-#: core/doctype/doctype/doctype.py:338
+#: core/doctype/doctype/doctype.py:334
msgid "Not allowed to create custom Virtual DocType."
msgstr ""
@@ -20454,12 +20483,12 @@ msgstr ""
msgid "Not in Developer Mode"
msgstr ""
-#: core/doctype/doctype/doctype.py:332
+#: core/doctype/doctype/doctype.py:328
msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType."
msgstr ""
#: api/v1.py:88 api/v1.py:93
-#: core/doctype/system_settings/system_settings.py:199 handler.py:109
+#: core/doctype/system_settings/system_settings.py:208 handler.py:109
#: public/js/frappe/request.js:157 public/js/frappe/request.js:167
#: public/js/frappe/request.js:172
#: public/js/frappe/views/kanban/kanban_board.bundle.js:68
@@ -20506,7 +20535,7 @@ msgctxt "Google Drive"
msgid "Note: By default emails for failed backups are sent."
msgstr ""
-#: public/js/frappe/utils/utils.js:775
+#: public/js/frappe/utils/utils.js:776
msgid "Note: Changing the Page Name will break previous URL to this page."
msgstr ""
@@ -20690,7 +20719,7 @@ msgstr ""
#. Name of a DocType
#: desk/doctype/number_card/number_card.json
-#: public/js/frappe/widgets/widget_dialog.js:591
+#: public/js/frappe/widgets/widget_dialog.js:597
msgid "Number Card"
msgstr ""
@@ -20705,7 +20734,7 @@ msgctxt "Workspace Number Card"
msgid "Number Card Name"
msgstr ""
-#: public/js/frappe/widgets/widget_dialog.js:621
+#: public/js/frappe/widgets/widget_dialog.js:627
msgid "Number Cards"
msgstr ""
@@ -20756,11 +20785,11 @@ msgctxt "Recorder"
msgid "Number of Queries"
msgstr ""
-#: core/doctype/doctype/doctype.py:444 public/js/frappe/doctype/index.js:59
+#: core/doctype/doctype/doctype.py:440 public/js/frappe/doctype/index.js:59
msgid "Number of attachment fields are more than {}, limit updated to {}."
msgstr ""
-#: core/doctype/system_settings/system_settings.py:152
+#: core/doctype/system_settings/system_settings.py:161
msgid "Number of backups must be greater than zero."
msgstr ""
@@ -20979,7 +21008,7 @@ msgstr ""
msgid "Onboarding complete"
msgstr ""
-#: core/doctype/doctype/doctype_list.js:28
+#: core/doctype/doctype/doctype_list.js:42
msgid "Once submitted, submittable documents cannot be changed. They can only be Cancelled and Amended."
msgstr ""
@@ -21001,7 +21030,7 @@ msgstr ""
msgid "One of"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:1312
+#: public/js/frappe/views/workspace/workspace.js:1318
msgid "One of the child page with name {0} already exist in {1} Section. Please update the name of the child page first before moving"
msgstr ""
@@ -21021,7 +21050,7 @@ msgstr ""
msgid "Only Administrator can save a standard report. Please rename and save."
msgstr ""
-#: recorder.py:234
+#: recorder.py:227
msgid "Only Administrator is allowed to use Recorder"
msgstr ""
@@ -21031,7 +21060,7 @@ msgctxt "Workflow Document State"
msgid "Only Allow Edit For"
msgstr ""
-#: core/doctype/doctype/doctype.py:1561
+#: core/doctype/doctype/doctype.py:1557
msgid "Only Options allowed for Data field are:"
msgstr ""
@@ -21045,7 +21074,7 @@ msgstr ""
msgid "Only Workspace Manager can edit public workspaces"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:536
+#: public/js/frappe/views/workspace/workspace.js:542
msgid "Only Workspace Manager can sort or edit this page"
msgstr ""
@@ -21087,7 +21116,7 @@ msgstr ""
msgid "Only standard DocTypes are allowed to be customized from Customize Form."
msgstr ""
-#: desk/form/assign_to.py:181
+#: desk/form/assign_to.py:195
msgid "Only the assignee can complete this to-do."
msgstr ""
@@ -21193,13 +21222,13 @@ msgid "Open your authentication app on your mobile phone."
msgstr ""
#: desk/doctype/todo/todo_list.js:23
-#: public/js/frappe/ui/toolbar/search_utils.js:261
-#: public/js/frappe/ui/toolbar/search_utils.js:262
-#: public/js/frappe/ui/toolbar/search_utils.js:273
-#: public/js/frappe/ui/toolbar/search_utils.js:283
-#: public/js/frappe/ui/toolbar/search_utils.js:292
-#: public/js/frappe/ui/toolbar/search_utils.js:310
-#: public/js/frappe/ui/toolbar/search_utils.js:311
+#: public/js/frappe/ui/toolbar/search_utils.js:277
+#: public/js/frappe/ui/toolbar/search_utils.js:278
+#: public/js/frappe/ui/toolbar/search_utils.js:289
+#: public/js/frappe/ui/toolbar/search_utils.js:299
+#: public/js/frappe/ui/toolbar/search_utils.js:308
+#: public/js/frappe/ui/toolbar/search_utils.js:326
+#: public/js/frappe/ui/toolbar/search_utils.js:327
#: social/doctype/energy_point_log/energy_point_log_list.js:23
msgid "Open {0}"
msgstr ""
@@ -21228,7 +21257,7 @@ msgctxt "Activity Log"
msgid "Operation"
msgstr ""
-#: utils/data.py:2063
+#: utils/data.py:2057
msgid "Operator must be one of {0}"
msgstr ""
@@ -21252,7 +21281,7 @@ msgstr ""
msgid "Option 3"
msgstr ""
-#: core/doctype/doctype/doctype.py:1579
+#: core/doctype/doctype/doctype.py:1575
msgid "Option {0} for field {1} is not a child table"
msgstr ""
@@ -21310,7 +21339,7 @@ msgctxt "Web Template Field"
msgid "Options"
msgstr ""
-#: core/doctype/doctype/doctype.py:1317
+#: core/doctype/doctype/doctype.py:1313
msgid "Options 'Dynamic Link' type of field must point to another Link Field with options as 'DocType'"
msgstr ""
@@ -21320,7 +21349,7 @@ msgctxt "Custom Field"
msgid "Options Help"
msgstr ""
-#: core/doctype/doctype/doctype.py:1601
+#: core/doctype/doctype/doctype.py:1597
msgid "Options for Rating field can range from 3 to 10"
msgstr ""
@@ -21328,7 +21357,7 @@ msgstr ""
msgid "Options for select. Each option on a new line."
msgstr ""
-#: core/doctype/doctype/doctype.py:1334
+#: core/doctype/doctype/doctype.py:1330
msgid "Options for {0} must be set before setting the default value."
msgstr ""
@@ -21336,7 +21365,7 @@ msgstr ""
msgid "Options is required for field {0} of type {1}"
msgstr ""
-#: model/base_document.py:767
+#: model/base_document.py:786
msgid "Options not set for link field {0}"
msgstr ""
@@ -21672,7 +21701,7 @@ msgctxt "Form Tour"
msgid "Page Route"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:1499
+#: public/js/frappe/views/workspace/workspace.js:1505
msgid "Page Saved Successfully"
msgstr ""
@@ -21713,7 +21742,7 @@ msgstr ""
msgid "Page not found"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:1299
+#: public/js/frappe/views/workspace/workspace.js:1305
msgid "Page with title {0} already exist."
msgstr ""
@@ -21729,9 +21758,9 @@ msgid "Parameter"
msgstr ""
#: public/js/frappe/model/model.js:132
-#: public/js/frappe/views/workspace/workspace.js:606
-#: public/js/frappe/views/workspace/workspace.js:934
-#: public/js/frappe/views/workspace/workspace.js:1181
+#: public/js/frappe/views/workspace/workspace.js:612
+#: public/js/frappe/views/workspace/workspace.js:940
+#: public/js/frappe/views/workspace/workspace.js:1187
msgid "Parent"
msgstr ""
@@ -21769,7 +21798,7 @@ msgctxt "Form Tour Step"
msgid "Parent Field"
msgstr ""
-#: core/doctype/doctype/doctype.py:915
+#: core/doctype/doctype/doctype.py:911
msgid "Parent Field (Tree)"
msgstr ""
@@ -21779,7 +21808,7 @@ msgctxt "DocType"
msgid "Parent Field (Tree)"
msgstr ""
-#: core/doctype/doctype/doctype.py:921
+#: core/doctype/doctype/doctype.py:917
msgid "Parent Field must be a valid fieldname"
msgstr ""
@@ -21789,7 +21818,7 @@ msgctxt "Top Bar Item"
msgid "Parent Label"
msgstr ""
-#: core/doctype/doctype/doctype.py:1148
+#: core/doctype/doctype/doctype.py:1144
msgid "Parent Missing"
msgstr ""
@@ -21811,7 +21840,7 @@ msgstr ""
msgid "Parent is the name of the document to which the data will get added to."
msgstr ""
-#: permissions.py:806
+#: permissions.py:809
msgid "Parentfield not specified in {0}: {1}"
msgstr ""
@@ -21910,7 +21939,7 @@ msgctxt "System Settings"
msgid "Password Reset Link Generation Limit"
msgstr ""
-#: public/js/frappe/form/grid_row.js:790
+#: public/js/frappe/form/grid_row.js:810
msgid "Password cannot be filtered"
msgstr ""
@@ -21944,7 +21973,7 @@ msgstr ""
msgid "Password set"
msgstr ""
-#: auth.py:239
+#: auth.py:241
msgid "Password size exceeded the maximum allowed size"
msgstr ""
@@ -22225,7 +22254,7 @@ msgctxt "System Settings"
msgid "Permissions"
msgstr ""
-#: core/doctype/doctype/doctype.py:1775 core/doctype/doctype/doctype.py:1785
+#: core/doctype/doctype/doctype.py:1771 core/doctype/doctype/doctype.py:1781
msgid "Permissions Error"
msgstr ""
@@ -22425,7 +22454,7 @@ msgstr ""
msgid "Please check the filter values set for Dashboard Chart: {}"
msgstr ""
-#: model/base_document.py:839
+#: model/base_document.py:858
msgid "Please check the value of \"Fetch From\" set for field {0}"
msgstr ""
@@ -22481,7 +22510,7 @@ msgstr ""
msgid "Please duplicate this to make changes"
msgstr ""
-#: core/doctype/system_settings/system_settings.py:145
+#: core/doctype/system_settings/system_settings.py:154
msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login."
msgstr ""
@@ -22489,7 +22518,7 @@ msgstr ""
#: email/doctype/auto_email_report/auto_email_report.js:17
#: printing/page/print/print.js:611 printing/page/print/print.js:640
#: public/js/frappe/list/bulk_operations.js:117
-#: public/js/frappe/utils/utils.js:1416
+#: public/js/frappe/utils/utils.js:1417
msgid "Please enable pop-ups"
msgstr ""
@@ -22618,7 +22647,7 @@ msgstr ""
msgid "Please select Entity Type first"
msgstr ""
-#: core/doctype/system_settings/system_settings.py:103
+#: core/doctype/system_settings/system_settings.py:105
msgid "Please select Minimum Password Score"
msgstr ""
@@ -22697,7 +22726,7 @@ msgstr ""
msgid "Please set the series to be used."
msgstr ""
-#: core/doctype/system_settings/system_settings.py:116
+#: core/doctype/system_settings/system_settings.py:118
msgid "Please setup SMS before setting it as an authentication method, via SMS Settings"
msgstr ""
@@ -22717,7 +22746,7 @@ msgstr ""
msgid "Please specify"
msgstr ""
-#: permissions.py:782
+#: permissions.py:785
msgid "Please specify a valid parent DocType for {0}"
msgstr ""
@@ -22898,7 +22927,7 @@ msgctxt "Web Form Field"
msgid "Precision"
msgstr ""
-#: core/doctype/doctype/doctype.py:1349
+#: core/doctype/doctype/doctype.py:1345
msgid "Precision should be between 1 and 6"
msgstr ""
@@ -22954,7 +22983,7 @@ msgstr ""
msgid "Preparing Report"
msgstr ""
-#: public/js/frappe/views/communication.js:321
+#: public/js/frappe/views/communication.js:363
msgid "Prepend the template to the email message"
msgstr ""
@@ -23075,7 +23104,7 @@ msgstr ""
msgid "Print"
msgstr ""
-#: public/js/frappe/list/list_view.js:1849
+#: public/js/frappe/list/list_view.js:1873
msgctxt "Button in list view actions menu"
msgid "Print"
msgstr ""
@@ -23523,9 +23552,9 @@ msgid "Provider Name"
msgstr ""
#: desk/doctype/note/note_list.js:6 public/js/frappe/views/interaction.js:78
-#: public/js/frappe/views/workspace/workspace.js:613
-#: public/js/frappe/views/workspace/workspace.js:941
-#: public/js/frappe/views/workspace/workspace.js:1187
+#: public/js/frappe/views/workspace/workspace.js:619
+#: public/js/frappe/views/workspace/workspace.js:947
+#: public/js/frappe/views/workspace/workspace.js:1193
msgid "Public"
msgstr ""
@@ -23746,6 +23775,12 @@ msgctxt "Dashboard Chart"
msgid "Quarterly"
msgstr ""
+#. Option for the 'Repeat On' (Select) field in DocType 'Event'
+#: desk/doctype/event/event.json
+msgctxt "Event"
+msgid "Quarterly"
+msgstr ""
+
#. Label of a Data field in DocType 'Recorder Query'
#: core/doctype/recorder_query/recorder_query.json
msgctxt "Recorder Query"
@@ -23819,7 +23854,7 @@ msgctxt "DocType"
msgid "Queue in Background (BETA)"
msgstr ""
-#: utils/background_jobs.py:473
+#: utils/background_jobs.py:433
msgid "Queue should be one of {0}"
msgstr ""
@@ -24028,13 +24063,13 @@ msgstr ""
msgid "Re-Run in Console"
msgstr ""
-#: email/doctype/email_account/email_account.py:630
+#: email/doctype/email_account/email_account.py:632
msgid "Re:"
msgstr ""
#: core/doctype/communication/communication.js:268
-#: public/js/frappe/form/footer/form_timeline.js:564
-#: public/js/frappe/views/communication.js:257
+#: public/js/frappe/form/footer/form_timeline.js:587
+#: public/js/frappe/views/communication.js:299
msgid "Re: {0}"
msgstr ""
@@ -24242,7 +24277,7 @@ msgstr ""
msgid "Recent years are easy to guess."
msgstr ""
-#: public/js/frappe/ui/toolbar/search_utils.js:516
+#: public/js/frappe/ui/toolbar/search_utils.js:532
msgid "Recents"
msgstr ""
@@ -24347,7 +24382,7 @@ msgctxt "Website Settings"
msgid "Redirects"
msgstr ""
-#: sessions.py:148
+#: sessions.py:149
msgid "Redis cache server not running. Please contact Administrator / Tech support"
msgstr ""
@@ -24951,7 +24986,7 @@ msgstr ""
msgid "Removed {0}"
msgstr ""
-#: custom/doctype/custom_field/custom_field.js:133
+#: custom/doctype/custom_field/custom_field.js:134
#: public/js/frappe/form/toolbar.js:234 public/js/frappe/form/toolbar.js:238
#: public/js/frappe/form/toolbar.js:398 public/js/frappe/model/model.js:737
#: public/js/frappe/views/treeview.js:295
@@ -24959,7 +24994,7 @@ msgid "Rename"
msgstr ""
#: custom/doctype/custom_field/custom_field.js:115
-#: custom/doctype/custom_field/custom_field.js:132
+#: custom/doctype/custom_field/custom_field.js:133
msgid "Rename Fieldname"
msgstr ""
@@ -24967,7 +25002,7 @@ msgstr ""
msgid "Rename {0}"
msgstr ""
-#: core/doctype/doctype/doctype.py:688
+#: core/doctype/doctype/doctype.py:684
msgid "Renamed files and replaced code in controllers, please check!"
msgstr ""
@@ -25274,7 +25309,7 @@ msgctxt "Report"
msgid "Report Type"
msgstr ""
-#: core/doctype/doctype/doctype.py:1750
+#: core/doctype/doctype/doctype.py:1746
msgid "Report cannot be set for Single types"
msgstr ""
@@ -25312,8 +25347,8 @@ msgstr ""
msgid "Report with more than 10 columns looks better in Landscape mode."
msgstr ""
-#: public/js/frappe/ui/toolbar/search_utils.js:235
-#: public/js/frappe/ui/toolbar/search_utils.js:236
+#: public/js/frappe/ui/toolbar/search_utils.js:251
+#: public/js/frappe/ui/toolbar/search_utils.js:252
msgid "Report {0}"
msgstr ""
@@ -25333,7 +25368,7 @@ msgstr ""
msgid "Report:"
msgstr ""
-#: public/js/frappe/ui/toolbar/search_utils.js:531
+#: public/js/frappe/ui/toolbar/search_utils.js:547
msgid "Reports"
msgstr ""
@@ -25656,8 +25691,8 @@ msgctxt "Title of message showing restrictions in list view"
msgid "Restrictions"
msgstr ""
-#: public/js/frappe/ui/toolbar/awesome_bar.js:354
-#: public/js/frappe/ui/toolbar/awesome_bar.js:369
+#: public/js/frappe/ui/toolbar/awesome_bar.js:356
+#: public/js/frappe/ui/toolbar/awesome_bar.js:371
msgid "Result"
msgstr ""
@@ -26181,19 +26216,19 @@ msgctxt "Role"
msgid "Route: Example \"/desk\""
msgstr ""
-#: model/base_document.py:710 model/base_document.py:751 model/document.py:591
+#: model/base_document.py:729 model/base_document.py:770 model/document.py:591
msgid "Row"
msgstr ""
-#: core/doctype/doctype/doctype.py:1772 core/doctype/doctype/doctype.py:1782
+#: core/doctype/doctype/doctype.py:1768 core/doctype/doctype/doctype.py:1778
msgid "Row # {0}: Non administrator user can not set the role {1} to the custom doctype"
msgstr ""
-#: model/base_document.py:868
+#: model/base_document.py:887
msgid "Row #{0}:"
msgstr ""
-#: core/doctype/doctype/doctype.py:492
+#: core/doctype/doctype/doctype.py:488
msgid "Row #{}: Fieldname is required"
msgstr ""
@@ -26259,7 +26294,7 @@ msgctxt "Energy Point Rule"
msgid "Rule Name"
msgstr ""
-#: permissions.py:662
+#: permissions.py:665
msgid "Rule for this doctype, role, permlevel and if-owner combination already exists."
msgstr ""
@@ -26508,7 +26543,7 @@ msgstr ""
#: desk/page/user_profile/user_profile_controller.js:319
#: printing/page/print/print.js:831
#: printing/page/print_format_builder/print_format_builder.js:160
-#: public/js/frappe/form/footer/form_timeline.js:638
+#: public/js/frappe/form/footer/form_timeline.js:661
#: public/js/frappe/form/quick_entry.js:156
#: public/js/frappe/list/list_settings.js:36
#: public/js/frappe/list/list_settings.js:244
@@ -26520,7 +26555,7 @@ msgstr ""
#: public/js/frappe/views/kanban/kanban_view.js:340
#: public/js/frappe/views/reports/query_report.js:1785
#: public/js/frappe/views/reports/report_view.js:1631
-#: public/js/frappe/views/workspace/workspace.js:487
+#: public/js/frappe/views/workspace/workspace.js:493
#: public/js/frappe/widgets/base_widget.js:140
#: public/js/frappe/widgets/quick_list_widget.js:117
#: public/js/print_format_builder/print_format_builder.bundle.js:15
@@ -26565,7 +26600,7 @@ msgctxt "Form Tour"
msgid "Save on Completion"
msgstr ""
-#: public/js/frappe/form/form_tour.js:287
+#: public/js/frappe/form/form_tour.js:289
msgid "Save the document."
msgstr ""
@@ -26578,7 +26613,7 @@ msgstr ""
#: public/js/frappe/list/list_settings.js:40
#: public/js/frappe/views/kanban/kanban_settings.js:47
-#: public/js/frappe/views/workspace/workspace.js:499
+#: public/js/frappe/views/workspace/workspace.js:505
msgid "Saving"
msgstr ""
@@ -26847,6 +26882,12 @@ msgstr ""
msgid "Search"
msgstr ""
+#. Label of a Section Break field in DocType 'System Settings'
+#: core/doctype/system_settings/system_settings.json
+msgctxt "System Settings"
+msgid "Search"
+msgstr ""
+
#. Label of a Check field in DocType 'Role'
#: core/doctype/role/role.json
msgctxt "Role"
@@ -26879,7 +26920,7 @@ msgstr ""
msgid "Search Results for"
msgstr ""
-#: core/doctype/doctype/doctype.py:1418
+#: core/doctype/doctype/doctype.py:1414
msgid "Search field {0} is not valid"
msgstr ""
@@ -27179,7 +27220,7 @@ msgstr ""
msgid "Select Filters"
msgstr ""
-#: desk/doctype/event/event.py:96
+#: desk/doctype/event/event.py:97
msgid "Select Google Calendar to which event should be synced."
msgstr ""
@@ -27278,15 +27319,15 @@ msgstr ""
msgid "Select a group node first."
msgstr ""
-#: core/doctype/doctype/doctype.py:1885
+#: core/doctype/doctype/doctype.py:1881
msgid "Select a valid Sender Field for creating documents from Email"
msgstr ""
-#: core/doctype/doctype/doctype.py:1869
+#: core/doctype/doctype/doctype.py:1865
msgid "Select a valid Subject field for creating documents from Email"
msgstr ""
-#: public/js/frappe/form/form_tour.js:313
+#: public/js/frappe/form/form_tour.js:315
msgid "Select an Image"
msgstr ""
@@ -27324,6 +27365,10 @@ msgstr ""
msgid "Select records for assignment"
msgstr ""
+#: public/js/frappe/list/bulk_operations.js:216
+msgid "Select records for removing assignment"
+msgstr ""
+
#. Description of the 'Insert After' (Select) field in DocType 'Custom Field'
#: custom/doctype/custom_field/custom_field.json
msgctxt "Custom Field"
@@ -27625,7 +27670,7 @@ msgctxt "DocType"
msgid "Sender Email Field"
msgstr ""
-#: core/doctype/doctype/doctype.py:1888
+#: core/doctype/doctype/doctype.py:1884
msgid "Sender Field should have Email in options"
msgstr ""
@@ -27763,7 +27808,7 @@ msgstr ""
msgid "Series counter for {} updated to {} successfully"
msgstr ""
-#: core/doctype/doctype/doctype.py:1073
+#: core/doctype/doctype/doctype.py:1069
#: core/doctype/document_naming_settings/document_naming_settings.py:171
msgid "Series {0} already used in {1}"
msgstr ""
@@ -27874,7 +27919,7 @@ msgctxt "System Settings"
msgid "Session Expiry (idle timeout)"
msgstr ""
-#: core/doctype/system_settings/system_settings.py:110
+#: core/doctype/system_settings/system_settings.py:112
msgid "Session Expiry must be in format {0}"
msgstr ""
@@ -28092,7 +28137,7 @@ msgstr ""
#. Label of a Card Break in the Integrations Workspace
#: integrations/workspace/integrations/integrations.json
#: public/js/frappe/ui/toolbar/toolbar.js:254
-#: public/js/frappe/views/workspace/workspace.js:515
+#: public/js/frappe/views/workspace/workspace.js:521
msgid "Settings"
msgstr ""
@@ -28128,7 +28173,7 @@ msgid "Settings Dropdown"
msgstr ""
#. Label of a Card Break in the Website Workspace
-#: public/js/frappe/ui/toolbar/search_utils.js:551
+#: public/js/frappe/ui/toolbar/search_utils.js:567
#: website/workspace/website/website.json
msgid "Setup"
msgstr ""
@@ -28675,7 +28720,7 @@ msgstr ""
msgid "Single DocTypes cannot be customized."
msgstr ""
-#: core/doctype/doctype/doctype_list.js:51
+#: core/doctype/doctype/doctype_list.js:67
msgid "Single Types have only one record no tables associated. Values are stored in tabSingles"
msgstr ""
@@ -28685,7 +28730,7 @@ msgctxt "DocType"
msgid "Single Types have only one record no tables associated. Values are stored in tabSingles"
msgstr ""
-#: database/database.py:230
+#: database/database.py:238
msgid "Site is running in read only mode for maintenance or site update, this action can not be performed right now. Please try again later."
msgstr ""
@@ -28928,11 +28973,11 @@ msgctxt "Customize Form"
msgid "Sort Order"
msgstr ""
-#: core/doctype/doctype/doctype.py:1501
+#: core/doctype/doctype/doctype.py:1497
msgid "Sort field {0} must be a valid fieldname"
msgstr ""
-#: public/js/frappe/utils/utils.js:1705
+#: public/js/frappe/utils/utils.js:1706
#: website/report/website_analytics/website_analytics.js:38
msgid "Source"
msgstr ""
@@ -29049,7 +29094,7 @@ msgstr ""
msgid "Standard DocType can not be deleted."
msgstr ""
-#: core/doctype/doctype/doctype.py:228
+#: core/doctype/doctype/doctype.py:224
msgid "Standard DocType cannot have default print format, use Customize Form"
msgstr ""
@@ -29599,7 +29644,7 @@ msgctxt "DocType"
msgid "Subject Field"
msgstr ""
-#: core/doctype/doctype/doctype.py:1878
+#: core/doctype/doctype/doctype.py:1874
msgid "Subject Field type should be Data, Text, Long Text, Small Text, Text Editor"
msgstr ""
@@ -29618,7 +29663,7 @@ msgstr ""
msgid "Submit"
msgstr ""
-#: public/js/frappe/list/list_view.js:1916
+#: public/js/frappe/list/list_view.js:1940
msgctxt "Button in list view actions menu"
msgid "Submit"
msgstr ""
@@ -29705,7 +29750,7 @@ msgstr ""
msgid "Submit this document to confirm"
msgstr ""
-#: public/js/frappe/list/list_view.js:1921
+#: public/js/frappe/list/list_view.js:1945
msgctxt "Title of confirmation dialog"
msgid "Submit {0} documents?"
msgstr ""
@@ -29766,7 +29811,7 @@ msgstr ""
#: core/doctype/data_import/data_import.js:470
#: desk/doctype/bulk_update/bulk_update.js:31
#: desk/doctype/desktop_icon/desktop_icon.py:452
-#: public/js/frappe/form/grid.js:1133
+#: public/js/frappe/form/grid.js:1135
#: public/js/frappe/views/translation_manager.js:21
#: templates/pages/integrations/gcalendar-success.html:9
#: workflow/doctype/workflow_action/workflow_action.py:171
@@ -30034,7 +30079,7 @@ msgstr ""
msgid "Syncing {0} of {1}"
msgstr ""
-#: utils/data.py:2424
+#: utils/data.py:2418
msgid "Syntax Error"
msgstr ""
@@ -30292,7 +30337,7 @@ msgctxt "DocType Link"
msgid "Table Fieldname"
msgstr ""
-#: core/doctype/doctype/doctype.py:1154
+#: core/doctype/doctype/doctype.py:1150
msgid "Table Fieldname Missing"
msgstr ""
@@ -30320,7 +30365,7 @@ msgctxt "DocField"
msgid "Table MultiSelect"
msgstr ""
-#: public/js/frappe/form/grid.js:1132
+#: public/js/frappe/form/grid.js:1134
msgid "Table updated"
msgstr ""
@@ -30345,14 +30390,14 @@ msgid "Tag Link"
msgstr ""
#: model/__init__.py:148 model/meta.py:52
-#: public/js/frappe/list/bulk_operations.js:365
+#: public/js/frappe/list/bulk_operations.js:386
#: public/js/frappe/list/list_sidebar.js:226 public/js/frappe/model/meta.js:204
#: public/js/frappe/model/model.js:123
#: public/js/frappe/ui/toolbar/awesome_bar.js:171
msgid "Tags"
msgstr ""
-#: integrations/doctype/google_drive/google_drive.js:28
+#: integrations/doctype/google_drive/google_drive.js:29
msgid "Take Backup"
msgstr ""
@@ -30573,7 +30618,7 @@ msgstr ""
msgid "The Auto Repeat for this document has been disabled."
msgstr ""
-#: public/js/frappe/form/grid.js:1155
+#: public/js/frappe/form/grid.js:1157
msgid "The CSV format is case sensitive"
msgstr ""
@@ -30622,7 +30667,7 @@ msgid ""
""
msgstr ""
-#: database/database.py:388
+#: database/database.py:424
msgid "The changes have been reverted."
msgstr ""
@@ -30664,6 +30709,10 @@ msgstr ""
msgid "The fieldname you've specified in Attached To Field is invalid"
msgstr ""
+#: automation/doctype/assignment_rule/assignment_rule.py:61
+msgid "The following Assignment Days have been repeated: {0}"
+msgstr ""
+
#: core/doctype/data_import/importer.py:1035
msgid "The following values are invalid: {0}. Values must be one of {1}"
msgstr ""
@@ -30755,7 +30804,7 @@ msgstr ""
msgid "The system is being updated. Please refresh again after a few moments."
msgstr ""
-#: public/js/frappe/form/grid_row.js:615
+#: public/js/frappe/form/grid_row.js:635
msgid "The total column width cannot be more than 10."
msgstr ""
@@ -30822,7 +30871,7 @@ msgstr ""
msgid "There can be only 9 Page Break fields in a Web Form"
msgstr ""
-#: core/doctype/doctype/doctype.py:1394
+#: core/doctype/doctype/doctype.py:1390
msgid "There can be only one Fold in a form"
msgstr ""
@@ -30862,7 +30911,7 @@ msgstr ""
msgid "There were errors while creating the document. Please try again."
msgstr ""
-#: public/js/frappe/views/communication.js:728
+#: public/js/frappe/views/communication.js:770
msgid "There were errors while sending email. Please try again."
msgstr ""
@@ -30913,7 +30962,7 @@ msgstr ""
msgid "This Kanban Board will be private"
msgstr ""
-#: __init__.py:917
+#: __init__.py:957
msgid "This action is only allowed for {}"
msgstr ""
@@ -31350,11 +31399,11 @@ msgctxt "Activity Log"
msgid "Timeline Name"
msgstr ""
-#: core/doctype/doctype/doctype.py:1489
+#: core/doctype/doctype/doctype.py:1485
msgid "Timeline field must be a Link or Dynamic Link"
msgstr ""
-#: core/doctype/doctype/doctype.py:1485
+#: core/doctype/doctype/doctype.py:1481
msgid "Timeline field must be a valid fieldname"
msgstr ""
@@ -31398,9 +31447,9 @@ msgid "Timestamp"
msgstr ""
#: public/js/form_builder/store.js:89
-#: public/js/frappe/views/workspace/workspace.js:599
-#: public/js/frappe/views/workspace/workspace.js:928
-#: public/js/frappe/views/workspace/workspace.js:1175
+#: public/js/frappe/views/workspace/workspace.js:605
+#: public/js/frappe/views/workspace/workspace.js:934
+#: public/js/frappe/views/workspace/workspace.js:1181
msgid "Title"
msgstr ""
@@ -31542,7 +31591,7 @@ msgctxt "Website Settings"
msgid "Title Prefix"
msgstr ""
-#: core/doctype/doctype/doctype.py:1426
+#: core/doctype/doctype/doctype.py:1422
msgid "Title field must be a valid fieldname"
msgstr ""
@@ -31800,7 +31849,7 @@ msgstr ""
msgid "Too Many Requests"
msgstr ""
-#: database/database.py:387
+#: database/database.py:423
msgid "Too many changes to database in single action."
msgstr ""
@@ -31999,7 +32048,7 @@ msgid ""
"Note: If you're sending to multiple recipients, even if 1 recipient reads the email, it'll be considered \"Opened\""
msgstr ""
-#: public/js/frappe/utils/utils.js:1744
+#: public/js/frappe/utils/utils.js:1745
msgid "Tracking URL generated and copied to clipboard"
msgstr ""
@@ -32475,7 +32524,7 @@ msgstr ""
msgid "Unhandled Email"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:556
+#: public/js/frappe/views/workspace/workspace.js:562
msgid "Unhide Workspace"
msgstr ""
@@ -32505,7 +32554,7 @@ msgstr ""
msgid "Unknown Rounding Method: {}"
msgstr ""
-#: auth.py:299
+#: auth.py:301
msgid "Unknown User"
msgstr ""
@@ -32604,7 +32653,7 @@ msgstr ""
msgid "Unzipping files..."
msgstr ""
-#: desk/doctype/event/event.py:258
+#: desk/doctype/event/event.py:259
msgid "Upcoming Events for Today"
msgstr ""
@@ -32617,7 +32666,7 @@ msgstr ""
#: printing/page/print_format_builder/print_format_builder.js:670
#: printing/page/print_format_builder/print_format_builder.js:757
#: public/js/frappe/form/grid_row.js:402
-#: public/js/frappe/views/workspace/workspace.js:647
+#: public/js/frappe/views/workspace/workspace.js:653
msgid "Update"
msgstr ""
@@ -32633,7 +32682,7 @@ msgctxt "Document Naming Settings"
msgid "Update Amendment Naming"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:596
+#: public/js/frappe/views/workspace/workspace.js:602
msgid "Update Details"
msgstr ""
@@ -32692,7 +32741,7 @@ msgctxt "Workflow Document State"
msgid "Update Value"
msgstr ""
-#: public/js/frappe/list/bulk_operations.js:310
+#: public/js/frappe/list/bulk_operations.js:331
msgid "Update {0} records"
msgstr ""
@@ -32721,7 +32770,7 @@ msgstr ""
msgid "Updated To A New Version 🎉"
msgstr ""
-#: public/js/frappe/list/bulk_operations.js:307
+#: public/js/frappe/list/bulk_operations.js:328
msgid "Updated successfully"
msgstr ""
@@ -32785,6 +32834,18 @@ msgctxt "File"
msgid "Uploaded To Google Drive"
msgstr ""
+#: integrations/doctype/google_drive/google_drive.py:199
+msgid "Uploading backup to Google Drive."
+msgstr ""
+
+#: integrations/doctype/google_drive/google_drive.py:204
+msgid "Uploading successful."
+msgstr ""
+
+#: integrations/doctype/google_drive/google_drive.js:16
+msgid "Uploading to Google Drive"
+msgstr ""
+
#. Description of the 'Value to Validate' (Data) field in DocType 'Onboarding
#. Step'
#: desk/doctype/onboarding_step/onboarding_step.json
@@ -33230,7 +33291,7 @@ msgid "User Permissions"
msgstr ""
#: core/doctype/user_permission/user_permission_list.js:124
-msgid "User Permissions created sucessfully"
+msgid "User Permissions created successfully"
msgstr ""
#. Label of a shortcut in the Users Workspace
@@ -33456,8 +33517,8 @@ msgid "Validity"
msgstr ""
#: email/doctype/auto_email_report/auto_email_report.js:92
-#: public/js/frappe/list/bulk_operations.js:271
-#: public/js/frappe/list/bulk_operations.js:333
+#: public/js/frappe/list/bulk_operations.js:292
+#: public/js/frappe/list/bulk_operations.js:354
msgid "Value"
msgstr ""
@@ -33534,7 +33595,7 @@ msgctxt "Notification"
msgid "Value To Be Set"
msgstr ""
-#: model/base_document.py:930 model/document.py:648
+#: model/base_document.py:949 model/document.py:648
msgid "Value cannot be changed for {0}"
msgstr ""
@@ -33554,7 +33615,7 @@ msgstr ""
msgid "Value for field {0} is too long in {1}. Length should be lesser than {2} characters"
msgstr ""
-#: model/base_document.py:360
+#: model/base_document.py:379
msgid "Value for {0} cannot be a list"
msgstr ""
@@ -33565,7 +33626,7 @@ msgctxt "Assignment Rule"
msgid "Value from this field will be set as the due date in the ToDo"
msgstr ""
-#: model/base_document.py:712
+#: model/base_document.py:731
msgid "Value missing for"
msgstr ""
@@ -33579,7 +33640,7 @@ msgctxt "Onboarding Step"
msgid "Value to Validate"
msgstr ""
-#: model/base_document.py:997
+#: model/base_document.py:1016
msgid "Value too big"
msgstr ""
@@ -33909,7 +33970,7 @@ msgstr ""
msgid "Web Page Block"
msgstr ""
-#: public/js/frappe/utils/utils.js:1697
+#: public/js/frappe/utils/utils.js:1698
msgid "Web Page URL"
msgstr ""
@@ -34122,7 +34183,7 @@ msgctxt "DocType"
msgid "Website Search Field"
msgstr ""
-#: core/doctype/doctype/doctype.py:1473
+#: core/doctype/doctype/doctype.py:1469
msgid "Website Search Field must be a valid fieldname"
msgstr ""
@@ -34405,7 +34466,7 @@ msgctxt "System Settings"
msgid "When uploading files, force the use of the web-based image capture. If this is unchecked, the default behavior is to use the mobile native camera when use from a mobile is detected."
msgstr ""
-#: public/js/frappe/widgets/widget_dialog.js:440
+#: public/js/frappe/widgets/widget_dialog.js:446
msgid "Which view of the associated DocType should this shortcut take you to?"
msgstr ""
@@ -34637,7 +34698,7 @@ msgstr ""
#. Name of a DocType
#: desk/doctype/workspace/workspace.json
-#: public/js/frappe/ui/toolbar/search_utils.js:541
+#: public/js/frappe/ui/toolbar/search_utils.js:557
#: public/js/frappe/views/workspace/workspace.js:10
msgid "Workspace"
msgstr ""
@@ -34694,15 +34755,19 @@ msgstr ""
msgid "Workspace Shortcut"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:1265
+#: desk/doctype/workspace/workspace.py:283
+msgid "Workspace not found"
+msgstr ""
+
+#: public/js/frappe/views/workspace/workspace.js:1271
msgid "Workspace {0} Created Successfully"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:894
+#: public/js/frappe/views/workspace/workspace.js:900
msgid "Workspace {0} Deleted Successfully"
msgstr ""
-#: public/js/frappe/views/workspace/workspace.js:672
+#: public/js/frappe/views/workspace/workspace.js:678
msgid "Workspace {0} Edited Successfully"
msgstr ""
@@ -34736,7 +34801,7 @@ msgctxt "User Document Type"
msgid "Write"
msgstr ""
-#: model/base_document.py:840
+#: model/base_document.py:859
msgid "Wrong Fetch From value"
msgstr ""
@@ -34861,7 +34926,7 @@ msgstr ""
#: integrations/doctype/webhook/webhook.py:127
#: integrations/doctype/webhook/webhook.py:137
#: public/js/form_builder/utils.js:336
-#: public/js/frappe/form/controls/link.js:471
+#: public/js/frappe/form/controls/link.js:472
#: public/js/frappe/list/list_sidebar_group_by.js:223
#: public/js/frappe/views/reports/query_report.js:1513
#: website/doctype/help_article/templates/help_article.html:25
@@ -34916,11 +34981,11 @@ msgstr ""
msgid "You are connected to internet."
msgstr ""
-#: permissions.py:417
+#: permissions.py:420
msgid "You are not allowed to access this {0} record because it is linked to {1} '{2}' in field {3}"
msgstr ""
-#: permissions.py:406
+#: permissions.py:409
msgid "You are not allowed to access this {0} record because it is linked to {1} '{2}' in row {3}, field {4}"
msgstr ""
@@ -34940,7 +35005,7 @@ msgstr ""
msgid "You are not allowed to edit the report."
msgstr ""
-#: permissions.py:614
+#: permissions.py:617
msgid "You are not allowed to export {} doctype"
msgstr ""
@@ -34948,7 +35013,7 @@ msgstr ""
msgid "You are not allowed to print this report"
msgstr ""
-#: public/js/frappe/views/communication.js:673
+#: public/js/frappe/views/communication.js:715
msgid "You are not allowed to send emails related to this document"
msgstr ""
@@ -34968,7 +35033,7 @@ msgstr ""
msgid "You are not permitted to access this page."
msgstr ""
-#: __init__.py:834
+#: __init__.py:874
msgid "You are not permitted to access this resource."
msgstr ""
@@ -35021,7 +35086,7 @@ msgstr ""
msgid "You can manually remove the lock if you think it's safe: {}"
msgstr ""
-#: public/js/frappe/form/controls/markdown_editor.js:74
+#: public/js/frappe/form/controls/markdown_editor.js:75
msgid "You can only insert images in Markdown fields"
msgstr ""
@@ -35169,7 +35234,7 @@ msgstr ""
msgid "You have hit the row size limit on database table: {0}"
msgstr ""
-#: public/js/frappe/list/bulk_operations.js:347
+#: public/js/frappe/list/bulk_operations.js:368
msgid "You have not entered a value. The field will be set to empty."
msgstr ""
@@ -35202,7 +35267,7 @@ msgstr ""
msgid "You last edited this"
msgstr ""
-#: public/js/frappe/widgets/widget_dialog.js:308
+#: public/js/frappe/widgets/widget_dialog.js:314
msgid "You must add atleast one link."
msgstr ""
@@ -35214,7 +35279,7 @@ msgstr ""
msgid "You must login to submit this form"
msgstr ""
-#: desk/doctype/workspace/workspace.py:69
+#: desk/doctype/workspace/workspace.py:72
msgid "You need to be Workspace Manager to edit this document"
msgstr ""
@@ -35310,11 +35375,11 @@ msgstr ""
msgid "Your account has been deleted"
msgstr ""
-#: auth.py:465
+#: auth.py:476
msgid "Your account has been locked and will resume after {0} seconds"
msgstr ""
-#: desk/form/assign_to.py:268
+#: desk/form/assign_to.py:282
msgid "Your assignment on {0} {1} has been removed by {2}"
msgstr ""
@@ -35389,6 +35454,10 @@ msgctxt "Desktop Icon"
msgid "_report"
msgstr ""
+#: database/database.py:315
+msgid "`as_iterator` only works with `as_list=True` or `as_dict=True`"
+msgstr ""
+
#: utils/background_jobs.py:94
msgid "`job_id` paramater is required for deduplication."
msgstr ""
@@ -35440,7 +35509,7 @@ msgctxt "Permission Inspector"
msgid "amend"
msgstr ""
-#: public/js/frappe/utils/utils.js:396 utils/data.py:1528
+#: public/js/frappe/utils/utils.js:396 utils/data.py:1526
msgid "and"
msgstr ""
@@ -35542,7 +35611,7 @@ msgctxt "Workflow State"
msgid "bullhorn"
msgstr ""
-#: public/js/frappe/ui/toolbar/search_utils.js:270
+#: public/js/frappe/ui/toolbar/search_utils.js:286
msgid "calendar"
msgstr ""
@@ -35660,7 +35729,7 @@ msgctxt "Workspace"
msgid "cyan"
msgstr ""
-#: public/js/frappe/utils/utils.js:1113
+#: public/js/frappe/utils/utils.js:1114
msgctxt "Days (Field: Duration)"
msgid "d"
msgstr ""
@@ -35810,12 +35879,12 @@ msgctxt "Social Link Settings"
msgid "email"
msgstr ""
-#: public/js/frappe/ui/toolbar/search_utils.js:289
+#: public/js/frappe/ui/toolbar/search_utils.js:305
msgid "email inbox"
msgstr ""
-#: permissions.py:411 permissions.py:422
-#: public/js/frappe/form/controls/link.js:479
+#: permissions.py:414 permissions.py:425
+#: public/js/frappe/form/controls/link.js:481
msgid "empty"
msgstr ""
@@ -35994,11 +36063,11 @@ msgctxt "Workspace"
msgid "grey"
msgstr ""
-#: utils/backups.py:375
+#: utils/backups.py:379
msgid "gzip not found in PATH! This is required to take a backup."
msgstr ""
-#: public/js/frappe/utils/utils.js:1117
+#: public/js/frappe/utils/utils.js:1118
msgctxt "Hours (Field: Duration)"
msgid "h"
msgstr ""
@@ -36051,7 +36120,7 @@ msgctxt "Workflow State"
msgid "home"
msgstr ""
-#: public/js/frappe/ui/toolbar/search_utils.js:280
+#: public/js/frappe/ui/toolbar/search_utils.js:296
msgid "hub"
msgstr ""
@@ -36181,7 +36250,7 @@ msgctxt "RQ Worker"
msgid "long"
msgstr ""
-#: public/js/frappe/utils/utils.js:1121
+#: public/js/frappe/utils/utils.js:1122
msgctxt "Minutes (Field: Duration)"
msgid "m"
msgstr ""
@@ -36253,7 +36322,7 @@ msgctxt "Workflow State"
msgid "music"
msgstr ""
-#: public/js/frappe/ui/toolbar/search_utils.js:144
+#: public/js/frappe/ui/toolbar/search_utils.js:160
msgid "new"
msgstr ""
@@ -36357,10 +36426,6 @@ msgstr ""
msgid "one of"
msgstr ""
-#: utils/data.py:1535
-msgid "only."
-msgstr ""
-
#: public/js/frappe/utils/utils.js:393 www/login.html:87
msgid "or"
msgstr ""
@@ -36597,7 +36662,7 @@ msgctxt "Workflow State"
msgid "road"
msgstr ""
-#: public/js/frappe/utils/utils.js:1125
+#: public/js/frappe/utils/utils.js:1126
msgctxt "Seconds (Field: Duration)"
msgid "s"
msgstr ""
@@ -36888,7 +36953,7 @@ msgctxt "Audit Trail"
msgid "version_table"
msgstr ""
-#: automation/doctype/assignment_rule/assignment_rule.py:386
+#: automation/doctype/assignment_rule/assignment_rule.py:383
msgid "via Assignment Rule"
msgstr ""
@@ -36991,21 +37056,15 @@ msgctxt "Workflow State"
msgid "zoom-out"
msgstr ""
-#: desk/doctype/event/event.js:83
-#: integrations/doctype/google_drive/google_drive.js:19
+#: desk/doctype/event/event.js:87
msgid "{0}"
msgstr ""
-#: public/js/frappe/ui/toolbar/search_utils.js:81
-#: public/js/frappe/ui/toolbar/search_utils.js:82
-msgid "{0} ${label}"
-msgstr ""
-
-#: public/js/frappe/ui/toolbar/search_utils.js:177
+#: public/js/frappe/ui/toolbar/search_utils.js:193
msgid "{0} ${skip_list ? \"\" : type}"
msgstr ""
-#: public/js/frappe/ui/toolbar/search_utils.js:182
+#: public/js/frappe/ui/toolbar/search_utils.js:198
msgid "{0} ${type}"
msgstr ""
@@ -37022,8 +37081,8 @@ msgstr ""
msgid "{0} ({1}) - {2}%"
msgstr ""
-#: public/js/frappe/ui/toolbar/awesome_bar.js:346
-#: public/js/frappe/ui/toolbar/awesome_bar.js:349
+#: public/js/frappe/ui/toolbar/awesome_bar.js:348
+#: public/js/frappe/ui/toolbar/awesome_bar.js:351
msgid "{0} = {1}"
msgstr ""
@@ -37036,9 +37095,9 @@ msgid "{0} Chart"
msgstr ""
#: core/page/dashboard_view/dashboard_view.js:67
-#: public/js/frappe/ui/toolbar/search_utils.js:331
-#: public/js/frappe/ui/toolbar/search_utils.js:332
-#: public/js/frappe/utils/utils.js:929
+#: public/js/frappe/ui/toolbar/search_utils.js:347
+#: public/js/frappe/ui/toolbar/search_utils.js:348
+#: public/js/frappe/utils/utils.js:930
#: public/js/frappe/views/dashboard/dashboard_view.js:10
msgid "{0} Dashboard"
msgstr ""
@@ -37061,7 +37120,9 @@ msgstr ""
msgid "{0} Liked"
msgstr ""
-#: public/js/frappe/utils/utils.js:923
+#: public/js/frappe/ui/toolbar/search_utils.js:83
+#: public/js/frappe/ui/toolbar/search_utils.js:84
+#: public/js/frappe/utils/utils.js:924
#: public/js/frappe/widgets/chart_widget.js:317 www/list.html:4 www/list.html:8
msgid "{0} List"
msgstr ""
@@ -37074,7 +37135,7 @@ msgstr ""
msgid "{0} Map"
msgstr ""
-#: public/js/frappe/utils/utils.js:926
+#: public/js/frappe/utils/utils.js:927
msgid "{0} Modules"
msgstr ""
@@ -37082,11 +37143,13 @@ msgstr ""
msgid "{0} Name"
msgstr ""
-#: model/base_document.py:1027
+#: model/base_document.py:1046
msgid "{0} Not allowed to change {1} after submission from {2} to {3}"
msgstr ""
-#: public/js/frappe/utils/utils.js:920
+#: public/js/frappe/ui/toolbar/search_utils.js:95
+#: public/js/frappe/ui/toolbar/search_utils.js:96
+#: public/js/frappe/utils/utils.js:921
#: public/js/frappe/widgets/chart_widget.js:325
msgid "{0} Report"
msgstr ""
@@ -37096,6 +37159,8 @@ msgstr ""
msgid "{0} Settings"
msgstr ""
+#: public/js/frappe/ui/toolbar/search_utils.js:87
+#: public/js/frappe/ui/toolbar/search_utils.js:88
#: public/js/frappe/views/treeview.js:139
msgid "{0} Tree"
msgstr ""
@@ -37109,6 +37174,11 @@ msgstr ""
msgid "{0} Web page views"
msgstr ""
+#: public/js/frappe/ui/toolbar/search_utils.js:91
+#: public/js/frappe/ui/toolbar/search_utils.js:92
+msgid "{0} Workspace"
+msgstr ""
+
#: public/js/frappe/form/link_selector.js:225
msgid "{0} added"
msgstr ""
@@ -37125,7 +37195,7 @@ msgstr ""
msgid "{0} already unsubscribed for {1} {2}"
msgstr ""
-#: utils/data.py:1715
+#: utils/data.py:1709
msgid "{0} and {1}"
msgstr ""
@@ -37163,7 +37233,7 @@ msgstr ""
msgid "{0} are required"
msgstr ""
-#: desk/form/assign_to.py:275
+#: desk/form/assign_to.py:289
msgid "{0} assigned a new task {1} {2} to you"
msgstr ""
@@ -37176,6 +37246,10 @@ msgctxt "Form timeline"
msgid "{0} attached {1}"
msgstr ""
+#: core/doctype/system_settings/system_settings.py:139
+msgid "{0} can not be more than {1}"
+msgstr ""
+
#: public/js/frappe/form/footer/version_timeline_content_builder.js:77
msgid "{0} cancelled this document"
msgstr ""
@@ -37310,7 +37384,7 @@ msgstr ""
msgid "{0} has left the conversation in {1} {2}"
msgstr ""
-#: __init__.py:2373
+#: __init__.py:2427
msgid "{0} has no versions tracked."
msgstr ""
@@ -37327,7 +37401,7 @@ msgstr ""
msgid "{0} in row {1} cannot have both URL and child items"
msgstr ""
-#: core/doctype/doctype/doctype.py:916
+#: core/doctype/doctype/doctype.py:912
msgid "{0} is a mandatory field"
msgstr ""
@@ -37335,7 +37409,7 @@ msgstr ""
msgid "{0} is a not a valid zip file"
msgstr ""
-#: core/doctype/doctype/doctype.py:1559
+#: core/doctype/doctype/doctype.py:1555
msgid "{0} is an invalid Data field."
msgstr ""
@@ -37412,11 +37486,11 @@ msgstr ""
msgid "{0} is not a valid Workflow State. Please update your Workflow and try again."
msgstr ""
-#: permissions.py:795
+#: permissions.py:798
msgid "{0} is not a valid parent DocType for {1}"
msgstr ""
-#: permissions.py:815
+#: permissions.py:818
msgid "{0} is not a valid parentfield for {1}"
msgstr ""
@@ -37506,11 +37580,11 @@ msgstr ""
msgid "{0} must be one of {1}"
msgstr ""
-#: model/base_document.py:771
+#: model/base_document.py:790
msgid "{0} must be set first"
msgstr ""
-#: model/base_document.py:629
+#: model/base_document.py:648
msgid "{0} must be unique"
msgstr ""
@@ -37544,7 +37618,12 @@ msgstr ""
msgid "{0} of {1} sent"
msgstr ""
-#: utils/data.py:1705
+#: utils/data.py:1529
+msgctxt "Money in words"
+msgid "{0} only."
+msgstr ""
+
+#: utils/data.py:1699
msgid "{0} or {1}"
msgstr ""
@@ -37612,7 +37691,7 @@ msgstr ""
msgid "{0} shared this document with {1}"
msgstr ""
-#: core/doctype/doctype/doctype.py:320
+#: core/doctype/doctype/doctype.py:316
msgid "{0} should be indexed because it's referred in dashboard connections"
msgstr ""
@@ -37684,11 +37763,11 @@ msgstr ""
msgid "{0} {1} added to Dashboard {2}"
msgstr ""
-#: model/base_document.py:562 model/rename_doc.py:112
+#: model/base_document.py:581 model/rename_doc.py:112
msgid "{0} {1} already exists"
msgstr ""
-#: model/base_document.py:873
+#: model/base_document.py:892
msgid "{0} {1} cannot be \"{2}\". It should be one of \"{3}\""
msgstr ""
@@ -37704,7 +37783,7 @@ msgstr ""
msgid "{0} {1} is linked with the following submitted documents: {2}"
msgstr ""
-#: model/document.py:170 permissions.py:566
+#: model/document.py:170 permissions.py:569
msgid "{0} {1} not found"
msgstr ""
@@ -37712,39 +37791,39 @@ msgstr ""
msgid "{0} {1}: Submitted Record cannot be deleted. You must {2} Cancel {3} it first."
msgstr ""
-#: model/base_document.py:988
+#: model/base_document.py:1007
msgid "{0}, Row {1}"
msgstr ""
-#: model/base_document.py:993
+#: model/base_document.py:1012
msgid "{0}: '{1}' ({3}) will get truncated, as max characters allowed is {2}"
msgstr ""
-#: core/doctype/doctype/doctype.py:1741
+#: core/doctype/doctype/doctype.py:1737
msgid "{0}: Cannot set Amend without Cancel"
msgstr ""
-#: core/doctype/doctype/doctype.py:1759
+#: core/doctype/doctype/doctype.py:1755
msgid "{0}: Cannot set Assign Amend if not Submittable"
msgstr ""
-#: core/doctype/doctype/doctype.py:1757
+#: core/doctype/doctype/doctype.py:1753
msgid "{0}: Cannot set Assign Submit if not Submittable"
msgstr ""
-#: core/doctype/doctype/doctype.py:1736
+#: core/doctype/doctype/doctype.py:1732
msgid "{0}: Cannot set Cancel without Submit"
msgstr ""
-#: core/doctype/doctype/doctype.py:1743
+#: core/doctype/doctype/doctype.py:1739
msgid "{0}: Cannot set Import without Create"
msgstr ""
-#: core/doctype/doctype/doctype.py:1739
+#: core/doctype/doctype/doctype.py:1735
msgid "{0}: Cannot set Submit, Cancel, Amend without Write"
msgstr ""
-#: core/doctype/doctype/doctype.py:1763
+#: core/doctype/doctype/doctype.py:1759
msgid "{0}: Cannot set import as {1} is not importable"
msgstr ""
@@ -37752,47 +37831,47 @@ msgstr ""
msgid "{0}: Failed to attach new recurring document. To enable attaching document in the auto repeat notification email, enable {1} in Print Settings"
msgstr ""
-#: core/doctype/doctype/doctype.py:1377
+#: core/doctype/doctype/doctype.py:1373
msgid "{0}: Field '{1}' cannot be set as Unique as it has non-unique values"
msgstr ""
-#: core/doctype/doctype/doctype.py:1285
+#: core/doctype/doctype/doctype.py:1281
msgid "{0}: Field {1} in row {2} cannot be hidden and mandatory without default"
msgstr ""
-#: core/doctype/doctype/doctype.py:1244
+#: core/doctype/doctype/doctype.py:1240
msgid "{0}: Field {1} of type {2} cannot be mandatory"
msgstr ""
-#: core/doctype/doctype/doctype.py:1232
+#: core/doctype/doctype/doctype.py:1228
msgid "{0}: Fieldname {1} appears multiple times in rows {2}"
msgstr ""
-#: core/doctype/doctype/doctype.py:1362
+#: core/doctype/doctype/doctype.py:1358
msgid "{0}: Fieldtype {1} for {2} cannot be unique"
msgstr ""
-#: core/doctype/doctype/doctype.py:1698
+#: core/doctype/doctype/doctype.py:1694
msgid "{0}: No basic permissions set"
msgstr ""
-#: core/doctype/doctype/doctype.py:1712
+#: core/doctype/doctype/doctype.py:1708
msgid "{0}: Only one rule allowed with the same Role, Level and {1}"
msgstr ""
-#: core/doctype/doctype/doctype.py:1266
+#: core/doctype/doctype/doctype.py:1262
msgid "{0}: Options must be a valid DocType for field {1} in row {2}"
msgstr ""
-#: core/doctype/doctype/doctype.py:1255
+#: core/doctype/doctype/doctype.py:1251
msgid "{0}: Options required for Link or Table type field {1} in row {2}"
msgstr ""
-#: core/doctype/doctype/doctype.py:1273
+#: core/doctype/doctype/doctype.py:1269
msgid "{0}: Options {1} must be the same as doctype name {2} for the field {3}"
msgstr ""
-#: core/doctype/doctype/doctype.py:1727
+#: core/doctype/doctype/doctype.py:1723
msgid "{0}: Permission at level 0 must be set before higher levels are set"
msgstr ""
@@ -37800,7 +37879,7 @@ msgstr ""
msgid "{0}: You can increase the limit for the field if required via {1}"
msgstr ""
-#: core/doctype/doctype/doctype.py:1219
+#: core/doctype/doctype/doctype.py:1215
msgid "{0}: fieldname cannot be set to reserved keyword {1}"
msgstr ""
@@ -37818,7 +37897,7 @@ msgstr ""
msgid "{0}: {1} vs {2}"
msgstr ""
-#: core/doctype/doctype/doctype.py:1385
+#: core/doctype/doctype/doctype.py:1381
msgid "{0}:Fieldtype {1} for {2} cannot be indexed"
msgstr ""
@@ -37838,7 +37917,7 @@ msgstr ""
msgid "{count} rows selected"
msgstr ""
-#: core/doctype/doctype/doctype.py:1439
+#: core/doctype/doctype/doctype.py:1435
msgid "{{{0}}} is not a valid fieldname pattern. It should be {{field_name}}."
msgstr ""
@@ -37846,11 +37925,11 @@ msgstr ""
msgid "{} Complete"
msgstr ""
-#: utils/data.py:2418
+#: utils/data.py:2412
msgid "{} Invalid python code on line {}"
msgstr ""
-#: utils/data.py:2427
+#: utils/data.py:2421
msgid "{} Possibly invalid python code. ' + e.stack + "",
+ });
+ }
+ });
+ },
});
+
+const INSTRUCTIONS = `${__("Header/Footer scripts can be used to add dynamic behaviours.")}
+
+
+// ${__(
+ "The following Header Script will add the current date to an element in 'Header HTML' with class 'header-content'"
+)}
+var el = document.getElementsByClassName("header-content");
+if (el.length > 0) {
+ el[0].textContent += " " + new Date().toGMTString();
+}
+
+
+${__("You can also access wkhtmltopdf variables (valid only in PDF print):")}
+
+
+// ${__("Get Header and Footer wkhtmltopdf variables")}
+// ${__("Snippet and more variables: {0}", ["https://wkhtmltopdf.org/usage/wkhtmltopdf.txt"])}
+var vars = {};
+var query_strings_from_url = document.location.search.substring(1).split('&');
+for (var query_string in query_strings_from_url) {
+ if (query_strings_from_url.hasOwnProperty(query_string)) {
+ var temp_var = query_strings_from_url[query_string].split('=', 2);
+ vars[temp_var[0]] = decodeURI(temp_var[1]);
+ }
+}
+var el = document.getElementsByClassName("header-content");
+if (el.length > 0 && vars["page"] == 1) {
+ el[0].textContent += " : " + vars["date"];
+}
+
+`;
diff --git a/frappe/printing/doctype/letter_head/letter_head.json b/frappe/printing/doctype/letter_head/letter_head.json
index 021f79ca93..4ffca134f2 100644
--- a/frappe/printing/doctype/letter_head/letter_head.json
+++ b/frappe/printing/doctype/letter_head/letter_head.json
@@ -26,7 +26,11 @@
"footer_image",
"footer_image_height",
"footer_image_width",
- "footer_align"
+ "footer_align",
+ "scripts_section",
+ "header_script",
+ "footer_script",
+ "instructions"
],
"fields": [
{
@@ -162,13 +166,40 @@
"fieldtype": "Select",
"label": "Footer Based On",
"options": "Image\nHTML"
+ },
+ {
+ "depends_on": "eval:!doc.__islocal && doc.source==='HTML'",
+ "fieldname": "header_script",
+ "fieldtype": "Code",
+ "label": "Header Script",
+ "options": "Javascript"
+ },
+ {
+ "depends_on": "eval:!doc.__islocal && doc.footer_source==='HTML'",
+ "fieldname": "footer_script",
+ "fieldtype": "Code",
+ "label": "Footer Script",
+ "options": "Javascript"
+ },
+ {
+ "collapsible": 1,
+ "collapsible_depends_on": "eval: doc.header_script || doc.footer_script",
+ "fieldname": "scripts_section",
+ "fieldtype": "Section Break",
+ "label": "Scripts"
+ },
+ {
+ "fieldname": "instructions",
+ "fieldtype": "HTML",
+ "label": "Instructions",
+ "read_only": 1
}
],
"icon": "fa fa-font",
"idx": 1,
"links": [],
"max_attachments": 3,
- "modified": "2023-12-08 15:52:37.525003",
+ "modified": "2023-12-21 16:19:37.525003",
"modified_by": "Administrator",
"module": "Printing",
"name": "Letter Head",
diff --git a/frappe/printing/page/print/print.js b/frappe/printing/page/print/print.js
index 11c3b8cd19..fe52ad9915 100644
--- a/frappe/printing/page/print/print.js
+++ b/frappe/printing/page/print/print.js
@@ -384,13 +384,13 @@ frappe.ui.form.PrintView = class {
this.print_wrapper.find(".preview-beta-wrapper").hide();
this.print_wrapper.find(".print-preview-wrapper").show();
- const $print_format = this.print_wrapper.find("iframe");
- this.$print_format_body = $print_format.contents();
this.get_print_html((out) => {
if (!out.html) {
out.html = this.get_no_preview_html();
}
+ const $print_format = this.print_wrapper.find("iframe");
+ this.$print_format_body = $print_format.contents();
this.setup_print_format_dom(out, $print_format);
const print_height = $print_format.get(0).offsetHeight;
diff --git a/frappe/public/icons/timeless/icons.svg b/frappe/public/icons/timeless/icons.svg
index 58665bd20b..1ea247b405 100644
--- a/frappe/public/icons/timeless/icons.svg
+++ b/frappe/public/icons/timeless/icons.svg
@@ -121,9 +121,7 @@
{{ __("No Data") }}
diff --git a/frappe/public/js/form_builder/store.js b/frappe/public/js/form_builder/store.js index 91afafa707..7c0328362a 100644 --- a/frappe/public/js/form_builder/store.js +++ b/frappe/public/js/form_builder/store.js @@ -85,8 +85,13 @@ export const useStore = defineStore("form-builder-store", () => { async function fetch() { doc.value = frm.value.doc; - if (doctype.value.startsWith("new-doctype-") && !doc.value.fields) { - doc.value.fields = [get_df("Data", "", __("Title"))]; + if (doctype.value.startsWith("new-doctype-") && !doc.value.fields?.length) { + frappe.model.with_doctype("DocType").then(() => { + frappe.listview_settings["DocType"].new_doctype_dialog(); + }); + // redirect to /doctype + frappe.set_route("List", "DocType"); + return; } if (!get_docfields.value.length) { diff --git a/frappe/public/js/frappe/assets.js b/frappe/public/js/frappe/assets.js index 98b025ebea..53883289a1 100644 --- a/frappe/public/js/frappe/assets.js +++ b/frappe/public/js/frappe/assets.js @@ -19,11 +19,22 @@ frappe.require = function (items, callback) { }); }; -frappe.assets = { - check: function () { +class AssetManager { + constructor() { + this._executed = []; + this._handlers = { + js: function (txt) { + frappe.dom.eval(txt); + }, + css: function (txt) { + frappe.dom.set_style(txt); + }, + }; + } + check() { // if version is different then clear localstorage if (window._version_number != localStorage.getItem("_version_number")) { - frappe.assets.clear_local_storage(); + this.clear_local_storage(); console.log("Cleared App Cache."); } @@ -33,160 +44,79 @@ frappe.assets = { // Evict cache if page is reloaded within 10 seconds. Which could be user trying to // refresh if things feel broken. if ((not_updated_since < 5000 && is_reload()) || not_updated_since > 2 * 86400000) { - frappe.assets.clear_local_storage(); + this.clear_local_storage(); } } else { - frappe.assets.clear_local_storage(); + this.clear_local_storage(); } - frappe.assets.init_local_storage(); - }, + this.init_local_storage(); + } - init_local_storage: function () { + init_local_storage() { localStorage._last_load = new Date(); localStorage._version_number = window._version_number; if (frappe.boot) localStorage.metadata_version = frappe.boot.metadata_version; - }, + } - clear_local_storage: function () { - $.each( - ["_last_load", "_version_number", "metadata_version", "page_info", "last_visited"], - function (i, key) { - localStorage.removeItem(key); - } + clear_local_storage() { + ["_last_load", "_version_number", "metadata_version", "page_info", "last_visited"].forEach( + (key) => localStorage.removeItem(key) ); // clear assets - for (var key in localStorage) { + for (let key in localStorage) { if ( - key.indexOf("desk_assets:") === 0 || - key.indexOf("_page:") === 0 || - key.indexOf("_doctype:") === 0 || - key.indexOf("preferred_breadcrumbs:") === 0 + key.startsWith("_page:") || + key.startsWith("_doctype:") || + key.startsWith("preferred_breadcrumbs:") ) { localStorage.removeItem(key); } } console.log("localStorage cleared"); - }, + } - // keep track of executed assets - executed_: [], + eval_assets(path, content) { + if (!this._executed.includes(path)) { + this._handlers[this.extn(path)](content); + this._executed.push(path); + } + } - // pass on to the handler to set - execute: function (items, callback) { - var to_fetch = []; - for (var i = 0, l = items.length; i < l; i++) { - if (!frappe.assets.exists(items[i])) { - to_fetch.push(items[i]); - } - } - if (to_fetch.length) { - frappe.assets.fetch(to_fetch, function () { - frappe.assets.eval_assets(items, callback); - }); - } else { - frappe.assets.eval_assets(items, callback); - } - }, - - eval_assets: function (items, callback) { - for (var i = 0, l = items.length; i < l; i++) { - // execute js/css if not already. - var path = items[i]; - if (frappe.assets.executed_.indexOf(path) === -1) { - // execute - frappe.assets.handler[frappe.assets.extn(path)](frappe.assets.get(path), path); - frappe.assets.executed_.push(path); - } - } - callback && callback(); - }, - - // check if the asset exists in - // localstorage - exists: function (src) { - if (frappe.assets.executed_.indexOf(src) !== -1) { - return true; - } - if (frappe.boot.developer_mode) { - return false; - } - if (frappe.assets.get(src)) { - return true; - } else { - return false; - } - }, - - // load an asset via - fetch: function (items, callback) { + execute(items, callback) { // this is virtual page load, only get the the source - // *without* the template - - if (items.length === 0) { - callback(); - return; - } + let me = this; const version_string = frappe.boot.developer_mode || window.dev_server ? Date.now() : window._version_number; - async function fetch_item(item) { + async function fetch_item(path) { // Add the version to the URL to bust the cache for non-bundled assets - let url = new URL(item, window.location.origin); + let url = new URL(path, window.location.origin); - if (!item.includes(".bundle.") && !url.searchParams.get("v")) { + if (!path.includes(".bundle.") && !url.searchParams.get("v")) { url.searchParams.append("v", version_string); } const response = await fetch(url.toString()); const body = await response.text(); - frappe.assets.add(item, body); + me.eval_assets(path, body); } frappe.dom.freeze(); const fetch_promises = items.map(fetch_item); Promise.all(fetch_promises).then(() => { frappe.dom.unfreeze(); - callback(); + callback?.(); }); - }, + } - add: function (src, txt) { - if ("localStorage" in window) { - try { - frappe.assets.set(src, txt); - } catch (e) { - // if quota is exceeded, clear local storage and set item - frappe.assets.clear_local_storage(); - frappe.assets.set(src, txt); - } - } - }, - - get: function (src) { - return localStorage.getItem("desk_assets:" + src); - }, - - set: function (src, txt) { - localStorage.setItem("desk_assets:" + src, txt); - }, - - extn: function (src) { + extn(src) { if (src.indexOf("?") != -1) { src = src.split("?").slice(-1)[0]; } return src.split(".").slice(-1)[0]; - }, - - handler: { - js: function (txt, src) { - frappe.dom.eval(txt); - }, - css: function (txt, src) { - frappe.dom.set_style(txt); - }, - }, + } bundled_asset(path, is_rtl = null) { if (!path.startsWith("/assets") && path.includes(".bundle.")) { @@ -197,8 +127,8 @@ frappe.assets = { return path; } return path; - }, -}; + } +} function is_reload() { try { @@ -211,3 +141,5 @@ function is_reload() { return true; } } + +frappe.assets = new AssetManager(); diff --git a/frappe/public/js/frappe/build_events/build_events.bundle.js b/frappe/public/js/frappe/build_events/build_events.bundle.js index a191156bfa..5635502507 100644 --- a/frappe/public/js/frappe/build_events/build_events.bundle.js +++ b/frappe/public/js/frappe/build_events/build_events.bundle.js @@ -17,7 +17,7 @@ frappe.realtime.on("build_event", (data) => { if (parts.length === 2) { let filename = parts[0].split("/").slice(-1)[0]; - frappe.assets.executed_ = frappe.assets.executed_.filter( + frappe.assets._executed = frappe.assets._executed.filter( (asset) => !asset.includes(`${filename}.bundle`) ); } diff --git a/frappe/public/js/frappe/data_import/import_preview.js b/frappe/public/js/frappe/data_import/import_preview.js index 4b0f18e3e1..2dcd22acf3 100644 --- a/frappe/public/js/frappe/data_import/import_preview.js +++ b/frappe/public/js/frappe/data_import/import_preview.js @@ -34,7 +34,7 @@ frappe.data_import.ImportPreview = class ImportPreview {