diff --git a/.eslintrc b/.eslintrc index c5e7d6831a..36c82c3048 100644 --- a/.eslintrc +++ b/.eslintrc @@ -96,6 +96,7 @@ "hljs": true, "Awesomplete": true, "Sortable": true, + "gemoji": true, "Showdown": true, "Taggle": true, "Gantt": true, diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index abf0c8afad..916f6378b4 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -100,10 +100,16 @@ runs: run: | # Install System Dependencies start_time=$(date +%s) - curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash + curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-11.8.5" + + sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' + wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - + sudo apt -qq update sudo apt -qq remove mysql-server mysql-client - sudo apt -qq install libcups2-dev redis-server mariadb-client libmariadb-dev + sudo apt -qq remove -y postgresql-client postgresql-client-16 postgresql-client-common + sudo apt -qq install libcups2-dev redis-server mariadb-client libmariadb-dev postgresql-client-18 libpq-dev + echo "/usr/lib/postgresql/18/bin" >> $GITHUB_PATH wget -q -O /tmp/wkhtmltox.deb https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb sudo apt install /tmp/wkhtmltox.deb @@ -169,6 +175,14 @@ runs: mariadb --host 127.0.0.1 --port 3306 -u root -p${{ inputs.db-root-password }} -e "FLUSH PRIVILEGES"; fi + if [ "$DB" == "postgres" ]; then + export PGPASSWORD='travis' + psql -h 127.0.0.1 -p 5432 -c "CREATE DATABASE test_frappe" -U postgres + psql -h 127.0.0.1 -p 5432 -c "CREATE USER test_frappe WITH PASSWORD 'test_frappe'" -U postgres + psql -h 127.0.0.1 -p 5432 -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE test_frappe TO test_frappe;" + unset PGPASSWORD + fi + - shell: bash -e {0} run: | # Install App(s) diff --git a/.github/helper/db/postgres.json b/.github/helper/db/postgres.json new file mode 100644 index 0000000000..73a22b6d49 --- /dev/null +++ b/.github/helper/db/postgres.json @@ -0,0 +1,18 @@ +{ + "db_host": "127.0.0.1", + "db_port": 5432, + "db_name": "test_frappe", + "db_password": "test_frappe", + "db_type": "postgres", + "allow_tests": true, + "auto_email_id": "test@example.com", + "mail_server": "localhost", + "mail_port": 2525, + "mail_login": "test@example.com", + "mail_password": "test", + "admin_password": "admin", + "root_login": "postgres", + "root_password": "travis", + "host_name": "http://test_site:8000", + "server_script_enabled": true +} \ No newline at end of file diff --git a/.github/workflows/_base-server-tests.yml b/.github/workflows/_base-server-tests.yml index f7f744a935..a0b9ef2391 100644 --- a/.github/workflows/_base-server-tests.yml +++ b/.github/workflows/_base-server-tests.yml @@ -9,7 +9,7 @@ on: python-version: required: false type: string - default: '3.13' + default: '3.14' node-version: required: false type: number @@ -22,6 +22,10 @@ on: required: false type: boolean default: false + enable-postgres: + required: false + type: boolean + default: true enable-coverage: required: false type: boolean @@ -62,9 +66,20 @@ jobs: strategy: fail-fast: false matrix: - db: ${{ fromJson(inputs.enable-sqlite && '["mariadb", "sqlite"]' || '["mariadb"]') }} + db: ${{ fromJson(inputs.enable-sqlite && (inputs.enable-postgres && '["mariadb", "postgres", "sqlite"]' || '["mariadb", "sqlite"]') || (inputs.enable-postgres && '["mariadb", "postgres"]' || '["mariadb"]')) }} index: ${{ fromJson(needs.gen-idx-integration.outputs.indices) }} services: + postgres: + image: postgres:18.0 + ports: + - 5432:5432 + env: + POSTGRES_PASSWORD: travis + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 3 mariadb: image: mariadb:11.8 ports: diff --git a/.github/workflows/_base-type-check.yml b/.github/workflows/_base-type-check.yml index ed9caea616..9add0eae7f 100644 --- a/.github/workflows/_base-type-check.yml +++ b/.github/workflows/_base-type-check.yml @@ -5,7 +5,7 @@ on: python-version: required: false type: string - default: '3.13.0' + default: '3.14.0' jobs: typecheck: diff --git a/.github/workflows/_base-ui-tests.yml b/.github/workflows/_base-ui-tests.yml index 1d53350961..d63e2ec48e 100644 --- a/.github/workflows/_base-ui-tests.yml +++ b/.github/workflows/_base-ui-tests.yml @@ -9,7 +9,7 @@ on: python-version: required: false type: string - default: '3.13' + default: '3.14' node-version: required: false type: number diff --git a/.github/workflows/generate-pot-file.yml b/.github/workflows/generate-pot-file.yml index b598c5941c..b17fe1b740 100644 --- a/.github/workflows/generate-pot-file.yml +++ b/.github/workflows/generate-pot-file.yml @@ -25,7 +25,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v6 with: - python-version: "3.13" + python-version: "3.14" - name: Run script to update POT file run: | diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 241a778fa8..abc23ebd83 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -41,7 +41,7 @@ jobs: - name: 'Setup Environment' uses: actions/setup-python@v6 with: - python-version: '3.13' + python-version: '3.14' - uses: actions/checkout@v5 - name: Validate Docs @@ -60,7 +60,7 @@ jobs: - uses: actions/checkout@v5 - uses: actions/setup-python@v6 with: - python-version: '3.13' + python-version: '3.14' cache: pip - name: Download Semgrep rules @@ -78,7 +78,7 @@ jobs: steps: - uses: actions/setup-python@v6 with: - python-version: '3.13' + python-version: '3.14' - uses: actions/checkout@v5 @@ -106,6 +106,6 @@ jobs: - uses: actions/checkout@v5 - uses: actions/setup-python@v6 with: - python-version: '3.13' + python-version: '3.14' cache: pip - uses: pre-commit/action@v3.0.1 diff --git a/.github/workflows/on_release.yml b/.github/workflows/on_release.yml index 597f942830..4372beb9ff 100644 --- a/.github/workflows/on_release.yml +++ b/.github/workflows/on_release.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/setup-python@v6 with: - python-version: '3.13' + python-version: '3.14' - name: Set up bench and build assets run: | npm install -g yarn diff --git a/.github/workflows/publish-assets-develop.yml b/.github/workflows/publish-assets-develop.yml index fe2ec1c3f9..33ae37f844 100644 --- a/.github/workflows/publish-assets-develop.yml +++ b/.github/workflows/publish-assets-develop.yml @@ -19,7 +19,7 @@ jobs: node-version: 22 - uses: actions/setup-python@v6 with: - python-version: '3.13' + python-version: '3.14' - name: Set up bench and build assets run: | npm install -g yarn diff --git a/.github/workflows/run-indinvidual-tests.yml b/.github/workflows/run-indinvidual-tests.yml index cb127b7fd7..9bc21feff1 100644 --- a/.github/workflows/run-indinvidual-tests.yml +++ b/.github/workflows/run-indinvidual-tests.yml @@ -74,7 +74,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v6 with: - python-version: '3.13' + python-version: '3.14' - name: Setup Node uses: actions/setup-node@v6 diff --git a/.github/workflows/server-tests.yml b/.github/workflows/server-tests.yml index 3bcb763984..311616e4ee 100644 --- a/.github/workflows/server-tests.yml +++ b/.github/workflows/server-tests.yml @@ -44,6 +44,7 @@ jobs: name: Tests uses: ./.github/workflows/_base-server-tests.yml with: + enable-postgres: ${{ contains(github.event.pull_request.labels.*.name, 'postgres') }} # This enables PostgreSQL to run tests enable-sqlite: false # This will test against both MariaDB and SQLite if enabled parallel-runs: 2 enable-coverage: ${{ github.event_name != 'pull_request' }} diff --git a/cypress.config.js b/cypress.config.js index cfb529b65c..b2b49bc63d 100644 --- a/cypress.config.js +++ b/cypress.config.js @@ -36,5 +36,9 @@ module.exports = defineConfig({ testIsolation: false, baseUrl: "http://test_site_ui:8000", specPattern: ["./cypress/integration/*.js", "**/ui_test_*.js"], + excludeSpecPattern: [ + "./cypress/integration/workspace.js", + "./cypress/integration/workspace_blocks.js", + ], }, }); diff --git a/cypress/integration/awesome_bar.js b/cypress/integration/awesome_bar.js index 9b27516c2b..3139db8957 100644 --- a/cypress/integration/awesome_bar.js +++ b/cypress/integration/awesome_bar.js @@ -2,11 +2,11 @@ context("Awesome Bar", () => { before(() => { cy.visit("/login"); cy.login(); - cy.visit("/app/todo"); // Make sure ToDo filters are cleared. + cy.visit("/desk/todo"); // Make sure ToDo filters are cleared. cy.clear_filters(); - cy.visit("/app/web-page"); // Make sure Blog Post filters are cleared. + cy.visit("/desk/web-page"); // Make sure Blog Post filters are cleared. cy.clear_filters(); - cy.visit("/app/build"); // Go to some other page. + cy.visit("/desk/build"); // Go to some other page. }); beforeEach(() => { @@ -18,7 +18,7 @@ context("Awesome Bar", () => { }); after(() => { - cy.visit("/app/todo"); // Make sure we're not bleeding any filters to the next spec. + cy.visit("/desk/todo"); // Make sure we're not bleeding any filters to the next spec. cy.clear_filters(); }); @@ -28,7 +28,7 @@ context("Awesome Bar", () => { cy.get(".awesomplete").findByRole("listbox").should("be.visible"); cy.get("@awesome_bar").type("{enter}"); cy.get(".title-text").should("contain", "To Do"); - cy.location("pathname").should("eq", "/app/todo"); + cy.location("pathname").should("eq", "/desk/todo"); }); it("finds text in doctype list", () => { @@ -40,7 +40,7 @@ context("Awesome Bar", () => { cy.get('[data-original-title="ID"]:visible > input').should("have.value", "%test%"); // filter preserved, now finds something else - cy.visit("/app/todo"); + cy.visit("/desk/todo"); cy.get(".title-text").should("contain", "To Do"); cy.wait(200); // Wait a bit longer before checking the filter. cy.get('[data-original-title="ID"]:visible > input').as("filter"); diff --git a/cypress/integration/control_attach.js b/cypress/integration/control_attach.js index 70d79855a9..7a079edc6d 100644 --- a/cypress/integration/control_attach.js +++ b/cypress/integration/control_attach.js @@ -1,7 +1,7 @@ context("Attach Control", () => { before(() => { cy.login(); - cy.visit("/app/doctype"); + cy.visit("/desk/doctype"); return cy .window() .its("frappe") @@ -166,7 +166,7 @@ context("Attach Control", () => { context("Attach Control with Failed Document Save", () => { before(() => { cy.login(); - cy.visit("/app/doctype"); + cy.visit("/desk/doctype"); return cy .window() .its("frappe") diff --git a/cypress/integration/control_autocomplete.js b/cypress/integration/control_autocomplete.js index 4fc825f80d..d66e1a0a60 100644 --- a/cypress/integration/control_autocomplete.js +++ b/cypress/integration/control_autocomplete.js @@ -1,7 +1,7 @@ context("Control Autocomplete", () => { before(() => { cy.login(); - cy.visit("/app"); + cy.visit("/desk"); cy.wait(4000); }); diff --git a/cypress/integration/control_barcode.js b/cypress/integration/control_barcode.js index 96a1bb43d4..067e9b11fe 100644 --- a/cypress/integration/control_barcode.js +++ b/cypress/integration/control_barcode.js @@ -1,7 +1,7 @@ context("Control Barcode", () => { beforeEach(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); function get_dialog_with_barcode() { diff --git a/cypress/integration/control_color.js b/cypress/integration/control_color.js index aa3a45eed8..773d0faf47 100644 --- a/cypress/integration/control_color.js +++ b/cypress/integration/control_color.js @@ -1,7 +1,7 @@ context("Control Color", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); function get_dialog_with_color() { diff --git a/cypress/integration/control_currency.js b/cypress/integration/control_currency.js index 9db5dee2a3..5c07e0a380 100644 --- a/cypress/integration/control_currency.js +++ b/cypress/integration/control_currency.js @@ -3,7 +3,7 @@ context("Control Currency", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); function get_dialog_with_currency(df_options = {}) { diff --git a/cypress/integration/control_data.js b/cypress/integration/control_data.js index 019ce68214..b4f737a8c9 100644 --- a/cypress/integration/control_data.js +++ b/cypress/integration/control_data.js @@ -1,7 +1,7 @@ context("Data Control", () => { before(() => { cy.login(); - cy.visit("/app/doctype"); + cy.visit("/desk/doctype"); return cy .window() .its("frappe") @@ -39,7 +39,7 @@ context("Data Control", () => { }); it("check custom formatters", () => { - cy.visit(`/app/doctype/User`); + cy.visit(`/desk/doctype/User`); cy.get( '[data-fieldname="fields"] .grid-row[data-idx="3"] [data-fieldname="fieldtype"] .static-area' ).should("have.text", "Section Break"); @@ -49,7 +49,10 @@ context("Data Control", () => { cy.new_form("Test Data Control"); //Checking the URL for the new form of the doctype - cy.location("pathname").should("contains", "/app/test-data-control/new-test-data-control"); + cy.location("pathname").should( + "contains", + "/desk/test-data-control/new-test-data-control" + ); cy.get(".title-text").should("have.text", "New Test Data Control"); cy.get('.frappe-control[data-fieldname="name1"]') .find("label") @@ -130,7 +133,7 @@ context("Data Control", () => { //Checking if the fields contains the data which has been filled in cy.location("pathname").should( "not.contains", - "/app/test-data-control/new-test-data-control" + "/desk/test-data-control/new-test-data-control" ); cy.get_field("name1").should("have.value", "Komal"); cy.get_field("email").should("have.value", "komal@test.com"); diff --git a/cypress/integration/control_date.js b/cypress/integration/control_date.js index 0744961147..537aeea035 100644 --- a/cypress/integration/control_date.js +++ b/cypress/integration/control_date.js @@ -1,7 +1,7 @@ context("Date Control", () => { before(() => { cy.login(); - cy.visit("/app"); + cy.visit("/desk"); }); function get_dialog(date_field_options) { diff --git a/cypress/integration/control_date_range.js b/cypress/integration/control_date_range.js index f95a3825cc..608e7dc87a 100644 --- a/cypress/integration/control_date_range.js +++ b/cypress/integration/control_date_range.js @@ -1,7 +1,7 @@ context("Date Range Control", () => { before(() => { cy.login(); - cy.visit("/app"); + cy.visit("/desk"); }); function get_dialog() { diff --git a/cypress/integration/control_duration.js b/cypress/integration/control_duration.js index 889e68d12e..18597789ed 100644 --- a/cypress/integration/control_duration.js +++ b/cypress/integration/control_duration.js @@ -1,7 +1,7 @@ context("Control Duration", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); function get_dialog_with_duration(hide_days = 0, hide_seconds = 0) { diff --git a/cypress/integration/control_dynamic_link.js b/cypress/integration/control_dynamic_link.js index f98e23c57a..d3343a56a3 100644 --- a/cypress/integration/control_dynamic_link.js +++ b/cypress/integration/control_dynamic_link.js @@ -1,7 +1,7 @@ context("Dynamic Link", () => { before(() => { cy.login(); - cy.visit("/app/doctype"); + cy.visit("/desk/doctype"); return cy .window() .its("frappe") @@ -107,7 +107,7 @@ context("Dynamic Link", () => { }); it("Creating a dynamic link and verifying it", () => { - cy.visit("/app/test-dynamic-link"); + cy.visit("/desk/test-dynamic-link"); //Clicking on the Document ID field cy.get_field("doc_type").clear(); diff --git a/cypress/integration/control_float.js b/cypress/integration/control_float.js index 25936066cd..b5575edc7b 100644 --- a/cypress/integration/control_float.js +++ b/cypress/integration/control_float.js @@ -1,7 +1,7 @@ context("Control Float", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); function get_dialog_with_float() { diff --git a/cypress/integration/control_icon.js b/cypress/integration/control_icon.js index 406e9f1162..edb7c399f8 100644 --- a/cypress/integration/control_icon.js +++ b/cypress/integration/control_icon.js @@ -1,7 +1,7 @@ context("Control Icon", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); function get_dialog_with_icon() { diff --git a/cypress/integration/control_link.js b/cypress/integration/control_link.js index e263017bb3..b77fce3399 100644 --- a/cypress/integration/control_link.js +++ b/cypress/integration/control_link.js @@ -1,11 +1,11 @@ context("Control Link", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); beforeEach(() => { - cy.visit("/app/website"); + cy.visit("/desk/website"); cy.create_records({ doctype: "ToDo", description: "this is a test todo for link", @@ -120,7 +120,7 @@ context("Control Link", () => { cy.get("@input").trigger("mouseover"); cy.get(".frappe-control[data-fieldname=link] .btn-open") .should("be.visible") - .should("have.attr", "href", `/app/todo/${todos[0]}`); + .should("have.attr", "href", `/desk/todo/${todos[0]}`); }); }); @@ -176,7 +176,7 @@ context("Control Link", () => { it("should update dependant fields (via fetch_from)", () => { cy.get("@todos").then((todos) => { - cy.visit(`/app/todo/${todos[0]}`); + cy.visit(`/desk/todo/${todos[0]}`); cy.intercept("POST", "/api/method/frappe.desk.search.search_link").as("search_link"); cy.intercept("/api/method/frappe.client.validate_link*").as("validate_link"); diff --git a/cypress/integration/control_markdown_editor.js b/cypress/integration/control_markdown_editor.js index 24ab32f48a..520dd22024 100644 --- a/cypress/integration/control_markdown_editor.js +++ b/cypress/integration/control_markdown_editor.js @@ -1,11 +1,11 @@ context("Control Markdown Editor", () => { before(() => { cy.login(); - cy.visit("/app"); + cy.visit("/desk"); }); it("should allow inserting images by drag and drop", () => { - cy.visit("/app/web-page/new"); + cy.visit("/desk/web-page/new"); cy.fill_field("content_type", "Markdown", "Select"); cy.get_field("main_section_md", "Markdown Editor").selectFile( "cypress/fixtures/sample_image.jpg", diff --git a/cypress/integration/control_phone.js b/cypress/integration/control_phone.js index 103b813013..adfd82b0c8 100644 --- a/cypress/integration/control_phone.js +++ b/cypress/integration/control_phone.js @@ -3,7 +3,7 @@ import doctype_with_phone from "../fixtures/doctype_with_phone"; context("Control Phone", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); afterEach(() => { @@ -68,13 +68,13 @@ context("Control Phone", () => { }); it("existing document should render phone field with data", () => { - cy.visit("/app/doctype"); + cy.visit("/desk/doctype"); cy.insert_doc("DocType", doctype_with_phone, true); cy.clear_cache(); // Creating custom doctype cy.insert_doc("DocType", doctype_with_phone, true); - cy.visit("/app/doctype-with-phone"); + cy.visit("/desk/doctype-with-phone"); cy.click_listview_primary_button("Add Doctype With Phone"); // create a record diff --git a/cypress/integration/control_rating.js b/cypress/integration/control_rating.js index 613a6e9f92..1efee0857b 100644 --- a/cypress/integration/control_rating.js +++ b/cypress/integration/control_rating.js @@ -1,7 +1,7 @@ context("Control Rating", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); function get_dialog_with_rating() { diff --git a/cypress/integration/control_select.js b/cypress/integration/control_select.js index 5f7a07e0c4..8aec4121bf 100644 --- a/cypress/integration/control_select.js +++ b/cypress/integration/control_select.js @@ -1,7 +1,7 @@ context("Control Select", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); function get_dialog_with_select() { diff --git a/cypress/integration/custom_buttons.js b/cypress/integration/custom_buttons.js index fd93613900..ac3027bfba 100644 --- a/cypress/integration/custom_buttons.js +++ b/cypress/integration/custom_buttons.js @@ -40,7 +40,7 @@ describe( () => { before(() => { cy.login(); - cy.visit(`/app/note/new`); + cy.visit(`/desk/note/new`); // close the sidebar cause default is expanded cy.get(".body-sidebar .collapse-sidebar-link").click(); }); diff --git a/cypress/integration/customize_form.js b/cypress/integration/customize_form.js index bd8ca1d73b..a8cd4f767f 100644 --- a/cypress/integration/customize_form.js +++ b/cypress/integration/customize_form.js @@ -1,7 +1,7 @@ context("Customize Form", () => { before(() => { cy.login(); - cy.visit("/app/customize-form"); + cy.visit("/desk/customize-form"); }); it("Changing to naming rule should update autoname", () => { cy.fill_field("doc_type", "ToDo", "Link").blur(); diff --git a/cypress/integration/dashboard.js b/cypress/integration/dashboard.js index 6eb28567bc..21e3f3f789 100644 --- a/cypress/integration/dashboard.js +++ b/cypress/integration/dashboard.js @@ -1,7 +1,7 @@ describe("Dashboard view", { scrollBehavior: false }, () => { before(() => { cy.login(); - cy.visit("/app"); + cy.visit("/desk"); }); it("should load", () => { diff --git a/cypress/integration/dashboard_chart.js b/cypress/integration/dashboard_chart.js index f2a837e4b3..487a0ea42e 100644 --- a/cypress/integration/dashboard_chart.js +++ b/cypress/integration/dashboard_chart.js @@ -1,7 +1,7 @@ context("Dashboard Chart", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); it("Check filter populate for child table doctype", () => { diff --git a/cypress/integration/dashboard_links.js b/cypress/integration/dashboard_links.js index ebcdfa0048..627273ea35 100644 --- a/cypress/integration/dashboard_links.js +++ b/cypress/integration/dashboard_links.js @@ -24,7 +24,7 @@ context("Dashboard links", () => { }); it("Adding a new contact, checking for the counter on the dashboard and deleting the created contact", () => { - cy.visit("/app/contact"); + cy.visit("/desk/contact"); cy.clear_filters(); cy.visit(`/app/user/${cy.config("testUser")}`); @@ -48,7 +48,7 @@ context("Dashboard links", () => { cy.get('[data-doctype="Contact"]').contains("Contact").click(); //Deleting the newly created contact - cy.visit("/app/contact"); + cy.visit("/desk/contact"); cy.get(".list-subject > .select-like > .list-row-checkbox").eq(0).click({ force: true }); cy.findByRole("button", { name: "Actions" }).click(); cy.get('.actions-btn-group [data-label="Delete"]').click(); @@ -56,7 +56,7 @@ context("Dashboard links", () => { //To check if the counter from the "Contact" doc link is removed cy.wait(700); - cy.visit("/app/user"); + cy.visit("/desk/user"); cy.get(".list-row-col > .level-item > .ellipsis").eq(0).click({ force: true }); cy.get('[data-doctype="Contact"]').should("contain", "Contact"); }); diff --git a/cypress/integration/data_field_form_validation.js b/cypress/integration/data_field_form_validation.js index 49513e72fb..1bb839f573 100644 --- a/cypress/integration/data_field_form_validation.js +++ b/cypress/integration/data_field_form_validation.js @@ -4,7 +4,7 @@ const doctype_name = data_field_validation_doctype.name; context("Data Field Input Validation in New Form", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); return cy.insert_doc("DocType", data_field_validation_doctype, true); }); diff --git a/cypress/integration/datetime.js b/cypress/integration/datetime.js index 7a8a68c1d9..93ebfed969 100644 --- a/cypress/integration/datetime.js +++ b/cypress/integration/datetime.js @@ -4,7 +4,7 @@ const doctype_name = datetime_doctype.name; context("Control Date, Time and DateTime", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); return cy.insert_doc("DocType", datetime_doctype, true); }); diff --git a/cypress/integration/depends_on.js b/cypress/integration/depends_on.js index 6419809466..74be1fc493 100644 --- a/cypress/integration/depends_on.js +++ b/cypress/integration/depends_on.js @@ -1,7 +1,7 @@ context("Depends On", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); return cy .window() .its("frappe") diff --git a/cypress/integration/file_uploader.js b/cypress/integration/file_uploader.js index 9905bc7461..5e56d0e596 100644 --- a/cypress/integration/file_uploader.js +++ b/cypress/integration/file_uploader.js @@ -4,7 +4,7 @@ context("FileUploader", () => { }); beforeEach(() => { - cy.visit("/app"); + cy.visit("/desk"); cy.wait(2000); // workspace can load async and clear active dialog }); diff --git a/cypress/integration/form.js b/cypress/integration/form.js index d40b0d5c89..c533d14f03 100644 --- a/cypress/integration/form.js +++ b/cypress/integration/form.js @@ -17,7 +17,7 @@ const type_value = (value) => { context("Form", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); return cy .window() .its("frappe") @@ -28,11 +28,11 @@ context("Form", () => { beforeEach(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); it("create a new form", () => { - cy.visit("/app/todo/new"); + cy.visit("/desk/todo/new"); cy.get_field("description", "Text Editor") .type("this is a test todo", { force: true }) .wait(1000); @@ -51,7 +51,7 @@ context("Form", () => { }); it("navigates between documents with child table list filters applied", () => { - cy.visit("/app/contact"); + cy.visit("/desk/contact"); cy.clear_filters(); cy.get('.standard-filter-section [data-fieldname="name"] input') @@ -60,7 +60,7 @@ context("Form", () => { cy.click_listview_row_item_with_text("Test Form Contact 3"); // clear filters - cy.visit("/app/contact"); + cy.visit("/desk/contact"); cy.clear_filters(); }); @@ -70,7 +70,7 @@ context("Form", () => { let valid_email = "user@email.com"; let expectBackgroundColor = "rgb(255, 245, 245)"; - cy.visit("/app/contact/new"); + cy.visit("/desk/contact/new"); cy.fill_field("company_name", "Test Company"); cy.get('.frappe-control[data-fieldname="email_ids"]').as("table"); @@ -105,7 +105,7 @@ context("Form", () => { }); it("update docfield property using set_df_property in child table", () => { - cy.visit("/app/contact/Test Form Contact 1"); + cy.visit("/desk/contact/Test Form Contact 1"); cy.window() .its("cur_frm") .then((frm) => { diff --git a/cypress/integration/form_builder.js b/cypress/integration/form_builder.js index 04f698a46a..da4b9e75fb 100644 --- a/cypress/integration/form_builder.js +++ b/cypress/integration/form_builder.js @@ -3,18 +3,18 @@ const doctype_name = form_builder_doctype.name; context("Form Builder", () => { before(() => { cy.login(); - cy.visit("/app"); + cy.visit("/desk"); return cy.insert_doc("DocType", form_builder_doctype, true); }); it("Open Form Builder for Web Form Doctype/Customize Form", () => { // doctype - cy.visit("/app/doctype/Web Form"); + cy.visit("/desk/doctype/Web Form"); cy.findByRole("tab", { name: "Form" }).click(); cy.get(".form-builder-container").should("exist"); // customize form - cy.visit("/app/customize-form?doc_type=Web%20Form"); + cy.visit("/desk/customize-form?doc_type=Web%20Form"); cy.findByRole("tab", { name: "Form" }).click(); cy.get(".form-builder-container").should("exist"); }); @@ -264,7 +264,7 @@ context("Form Builder", () => { cy.findByRole("button", { name: "Save" }).click({ force: true }); - cy.visit("/app/form-builder-doctype/new"); + cy.visit("/desk/form-builder-doctype/new"); cy.get("[data-fieldname='data3'] .clearfix label").should("have.text", "New Title"); }); diff --git a/cypress/integration/form_tab_break.js b/cypress/integration/form_tab_break.js index c4f7626e3d..feb3ffd208 100644 --- a/cypress/integration/form_tab_break.js +++ b/cypress/integration/form_tab_break.js @@ -3,7 +3,7 @@ const doctype_name = doctype_with_tab_break.name; context("Form Tab Break", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); return cy.insert_doc("DocType", doctype_with_tab_break, true); }); it("Should switch tab and open correct tabs on validation error", () => { diff --git a/cypress/integration/form_tour.js b/cypress/integration/form_tour.js index f4ae0dbb6d..4a43626c55 100644 --- a/cypress/integration/form_tour.js +++ b/cypress/integration/form_tour.js @@ -1,7 +1,7 @@ context.skip("Form Tour", () => { before(() => { cy.login(); - cy.visit("/app"); + cy.visit("/desk"); return cy .window() .its("frappe") @@ -11,11 +11,11 @@ context.skip("Form Tour", () => { }); const open_test_form_tour = () => { - cy.visit("/app/form-tour/Test Form Tour"); + cy.visit("/desk/form-tour/Test Form Tour"); cy.findByRole("button", { name: "Show Tour" }).should("be.visible").as("show_tour"); cy.get("@show_tour").click(); cy.wait(500); - cy.url().should("include", "/app/contact"); + cy.url().should("include", "/desk/contact"); }; it("jump to a form tour", open_test_form_tour); diff --git a/cypress/integration/grid.js b/cypress/integration/grid.js index ae9b59f868..607db6746e 100644 --- a/cypress/integration/grid.js +++ b/cypress/integration/grid.js @@ -1,11 +1,11 @@ context("Grid", () => { beforeEach(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); return cy .window() .its("frappe") @@ -16,7 +16,7 @@ context("Grid", () => { }); }); it("update docfield property using update_docfield_property", () => { - cy.visit("/app/contact/Test Contact"); + cy.visit("/desk/contact/Test Contact"); cy.window() .its("cur_frm") .then((frm) => { @@ -40,7 +40,7 @@ context("Grid", () => { }); }); it("update docfield property using toggle_display", () => { - cy.visit("/app/contact/Test Contact"); + cy.visit("/desk/contact/Test Contact"); cy.window() .its("cur_frm") .then((frm) => { @@ -64,7 +64,7 @@ context("Grid", () => { }); }); it("update docfield property using toggle_enable", () => { - cy.visit("/app/contact/Test Contact"); + cy.visit("/desk/contact/Test Contact"); cy.window() .its("cur_frm") .then((frm) => { @@ -88,7 +88,7 @@ context("Grid", () => { }); }); it("update docfield property using toggle_reqd", () => { - cy.visit("/app/contact/Test Contact"); + cy.visit("/desk/contact/Test Contact"); cy.window() .its("cur_frm") .then((frm) => { diff --git a/cypress/integration/grid_configuration.js b/cypress/integration/grid_configuration.js index a367414489..f8fdd89b6c 100644 --- a/cypress/integration/grid_configuration.js +++ b/cypress/integration/grid_configuration.js @@ -1,7 +1,7 @@ context("Grid Configuration", () => { beforeEach(() => { cy.login(); - cy.visit("/app/website-settings"); + cy.visit("/desk/website-settings"); }); it("Set user wise grid settings", () => { cy.findByRole("tab", { name: "Navbar" }).click(); diff --git a/cypress/integration/grid_pagination.js b/cypress/integration/grid_pagination.js index 097f2a5cdc..6a6a3d2d2b 100644 --- a/cypress/integration/grid_pagination.js +++ b/cypress/integration/grid_pagination.js @@ -1,11 +1,11 @@ context("Grid Pagination", () => { beforeEach(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); return cy .window() .its("frappe") @@ -16,14 +16,14 @@ context("Grid Pagination", () => { }); }); it("creates pages for child table", () => { - cy.visit("/app/contact/Test Contact"); + cy.visit("/desk/contact/Test Contact"); cy.get('.frappe-control[data-fieldname="phone_nos"]').as("table"); cy.get("@table").find(".current-page-number").should("have.value", "1"); cy.get("@table").find(".total-page-number").should("contain", "20"); cy.get("@table").find(".grid-body .grid-row").should("have.length", 50); }); it("goes to the next and previous page", () => { - cy.visit("/app/contact/Test Contact"); + cy.visit("/desk/contact/Test Contact"); cy.get('.frappe-control[data-fieldname="phone_nos"]').as("table"); cy.get("@table").find(".next-page").click(); cy.get("@table").find(".current-page-number").should("have.value", "2"); @@ -36,7 +36,7 @@ context("Grid Pagination", () => { cy.get("@table").find(".grid-body .grid-row").first().should("have.attr", "data-idx", "1"); }); it("adds and deletes rows and changes page", () => { - cy.visit("/app/contact/Test Contact"); + cy.visit("/desk/contact/Test Contact"); cy.get('.frappe-control[data-fieldname="phone_nos"]').as("table"); cy.get("@table").findByRole("button", { name: "Add Row" }).click(); cy.get("@table").find(".grid-body .row-index").should("contain", 1001); @@ -49,7 +49,7 @@ context("Grid Pagination", () => { cy.get("@table").find(".total-page-number").should("contain", "20"); }); it("go to specific page, use up and down arrow, type characters, 0 page and more than existing page", () => { - cy.visit("/app/contact/Test Contact"); + cy.visit("/desk/contact/Test Contact"); cy.get('.frappe-control[data-fieldname="phone_nos"]').as("table"); cy.get("@table").find(".current-page-number").focus().clear().type("17").blur(); cy.get("@table").find(".grid-body .row-index").should("contain", 801); diff --git a/cypress/integration/grid_search.js b/cypress/integration/grid_search.js index 3d43412313..66364501a6 100644 --- a/cypress/integration/grid_search.js +++ b/cypress/integration/grid_search.js @@ -7,7 +7,7 @@ context("Grid Search", () => { before(() => { cy.visit("/login"); cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); cy.insert_doc("DocType", child_table_doctype, true); cy.insert_doc("DocType", child_table_doctype_1, true); cy.insert_doc("DocType", doctype_with_child_table, true); @@ -40,7 +40,7 @@ context("Grid Search", () => { }); }); - cy.visit(`/app/doctype-with-child-table/Test Grid Search`); + cy.visit(`/desk/doctype-with-child-table/Test Grid Search`); cy.get('.frappe-control[data-fieldname="child_table_1"]').as("table"); cy.get("@table").find(".grid-row-check:last").click(); @@ -49,7 +49,7 @@ context("Grid Search", () => { }); it("test search field for different fieldtypes", () => { - cy.visit(`/app/doctype-with-child-table/Test Grid Search`); + cy.visit(`/desk/doctype-with-child-table/Test Grid Search`); cy.get('.frappe-control[data-fieldname="child_table_1"]').as("table"); diff --git a/cypress/integration/kanban.js b/cypress/integration/kanban.js index c529b4e4ff..f4834450e2 100644 --- a/cypress/integration/kanban.js +++ b/cypress/integration/kanban.js @@ -1,11 +1,11 @@ context("Kanban Board", () => { before(() => { cy.login("frappe@example.com"); - cy.visit("/app"); + cy.visit("/desk"); }); it("Create ToDo Kanban", () => { - cy.visit("/app/todo"); + cy.visit("/desk/todo"); cy.get(".page-actions .custom-btn-group button").click(); cy.get(".page-actions .custom-btn-group ul.dropdown-menu li").contains("Kanban").click(); @@ -33,7 +33,7 @@ context("Kanban Board", () => { }); it("Add and Remove fields", () => { - cy.visit("/app/todo/view/kanban/ToDo Kanban"); + cy.visit("/desk/todo/view/kanban/ToDo Kanban"); cy.intercept( "POST", @@ -110,7 +110,7 @@ context("Kanban Board", () => { cy.switch_to_user(not_system_manager); - cy.visit("/app/todo/view/kanban/Admin Kanban"); + cy.visit("/desk/todo/view/kanban/Admin Kanban"); // Menu button should be hidden (dropdown for 'Save Filters' and 'Delete Kanban Board') cy.get(".no-list-sidebar .menu-btn-group .btn-default[data-original-title='Menu']").should( diff --git a/cypress/integration/list_paging.js b/cypress/integration/list_paging.js index 2ce347828a..21d39081d1 100644 --- a/cypress/integration/list_paging.js +++ b/cypress/integration/list_paging.js @@ -1,7 +1,7 @@ context("List Paging", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); return cy .window() .its("frappe") @@ -11,7 +11,7 @@ context("List Paging", () => { }); it("test load more with count selection buttons", () => { - cy.visit("/app/todo/view/report"); + cy.visit("/desk/todo/view/report"); cy.clear_filters(); cy.get(".list-paging-area .list-count").should("contain.text", "20 of"); diff --git a/cypress/integration/list_view.js b/cypress/integration/list_view.js index 397c91215b..b88ea04f47 100644 --- a/cypress/integration/list_view.js +++ b/cypress/integration/list_view.js @@ -1,7 +1,7 @@ context("List View", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); return cy .window() .its("frappe") diff --git a/cypress/integration/list_view_settings.js b/cypress/integration/list_view_settings.js index 027dfaa768..57c7f3023d 100644 --- a/cypress/integration/list_view_settings.js +++ b/cypress/integration/list_view_settings.js @@ -1,17 +1,17 @@ context("List View Settings", () => { beforeEach(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); it("Default settings", () => { - cy.visit("/app/List/DocType/List"); + cy.visit("/desk/List/DocType/List"); cy.clear_filters(); cy.get(".list-count").should("contain", "20 of"); cy.get(".list-stats").should("contain", "Tags"); }); it("disable count and sidebar stats then verify", () => { cy.wait(300); - cy.visit("/app/List/DocType/List"); + cy.visit("/desk/List/DocType/List"); cy.clear_filters(); cy.wait(300); cy.get(".list-count").should("contain", "20 of"); diff --git a/cypress/integration/login.js b/cypress/integration/login.js index 7eb62fefa5..aec28ac06a 100644 --- a/cypress/integration/login.js +++ b/cypress/integration/login.js @@ -36,7 +36,7 @@ context("Login", () => { cy.get("#login_password").type(Cypress.env("adminPassword")); cy.findByRole("button", { name: "Login" }).click(); - cy.location("pathname").should("match", /^\/app/); + cy.location("pathname").should("match", /^\/desk/); cy.window().its("frappe.session.user").should("eq", "Administrator"); }); diff --git a/cypress/integration/multi_select_dialog.js b/cypress/integration/multi_select_dialog.js index abf6604bec..463f39bdb4 100644 --- a/cypress/integration/multi_select_dialog.js +++ b/cypress/integration/multi_select_dialog.js @@ -1,7 +1,7 @@ context("MultiSelectDialog", () => { before(() => { cy.login(); - cy.visit("/app"); + cy.visit("/desk"); const contact_template = { doctype: "Contact", first_name: "Test", diff --git a/cypress/integration/navigation.js b/cypress/integration/navigation.js index a5e579d12a..5194498985 100644 --- a/cypress/integration/navigation.js +++ b/cypress/integration/navigation.js @@ -2,7 +2,7 @@ context("Navigation", () => { before(() => { cy.visit("/login"); cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); it("Navigate to route with hash in document name", () => { cy.insert_doc( @@ -15,14 +15,14 @@ context("Navigation", () => { }, true ); - cy.visit(`/app/client-script/${encodeURIComponent("ABC#123")}`); + cy.visit(`/desk/client-script/${encodeURIComponent("ABC#123")}`); cy.title().should("eq", "ABC#123"); cy.go("back"); cy.title().should("eq", "Website"); }); it("Navigate to previous page after login", () => { - cy.visit("/app/todo"); + cy.visit("/desk/todo"); cy.get(".page-head").findByTitle("To Do").should("be.visible"); cy.clear_filters(); cy.call("logout"); @@ -31,6 +31,6 @@ context("Navigation", () => { cy.location("pathname").should("eq", "/login"); cy.login(); cy.reload().as("reload"); - cy.location("pathname").should("eq", "/app/todo"); + cy.location("pathname").should("eq", "/desk/todo"); }); }); diff --git a/cypress/integration/number_card.js b/cypress/integration/number_card.js index 24227fe27b..c3e3edcf5e 100644 --- a/cypress/integration/number_card.js +++ b/cypress/integration/number_card.js @@ -1,7 +1,7 @@ context("Number Card", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); it("Check filter populate for child table doctype", () => { diff --git a/cypress/integration/permissions.js b/cypress/integration/permissions.js index 9c21a7914d..8702302264 100644 --- a/cypress/integration/permissions.js +++ b/cypress/integration/permissions.js @@ -2,11 +2,11 @@ context.skip("Permissions API", () => { before(() => { cy.visit("/login"); cy.remove_role("frappe@example.com", "System Manager"); - cy.visit("/app"); + cy.visit("/desk"); }); it("Checks permissions via `has_perm` for Kanban Board DocType", () => { - cy.visit("/app/kanban-board/view/list"); + cy.visit("/desk/kanban-board/view/list"); cy.window() .its("frappe") .then((frappe) => { @@ -20,7 +20,7 @@ context.skip("Permissions API", () => { }); it("Checks permissions via `get_perm` for Kanban Board DocType", () => { - cy.visit("/app/kanban-board/view/list"); + cy.visit("/desk/kanban-board/view/list"); cy.window() .its("frappe") .then((frappe) => { diff --git a/cypress/integration/query_report.js b/cypress/integration/query_report.js index 4a2d753ff0..8df908683c 100644 --- a/cypress/integration/query_report.js +++ b/cypress/integration/query_report.js @@ -1,7 +1,7 @@ context("Query Report", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); cy.insert_doc( "Report", { @@ -19,7 +19,7 @@ context("Query Report", () => { }); it("add custom column in report", () => { - cy.visit("/app/query-report/Permitted Documents For User"); + cy.visit("/desk/query-report/Permitted Documents For User"); cy.get(".page-form.flex", { timeout: 60000 }) .should("have.length", 1) @@ -77,12 +77,12 @@ context("Query Report", () => { .findByRole("button", { name: "Submit" }) .click({ timeout: 1000, force: true }); - cy.visit("/app/query-report/" + report); + cy.visit("/desk/query-report/" + report); cy.get(".datatable").should("exist"); }; it("test multi level query report", () => { - cy.visit("/app/query-report/Test ToDo Report"); + cy.visit("/desk/query-report/Test ToDo Report"); cy.get(".datatable").should("exist"); save_report_and_open("Test ToDo Report 1", " 1"); diff --git a/cypress/integration/report_view.js b/cypress/integration/report_view.js index 27fe840450..8311511e87 100644 --- a/cypress/integration/report_view.js +++ b/cypress/integration/report_view.js @@ -4,7 +4,7 @@ const doctype_name = custom_submittable_doctype.name; context("Report View", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); cy.insert_doc("DocType", custom_submittable_doctype, true); cy.clear_cache(); cy.insert_doc( diff --git a/cypress/integration/rounding.js b/cypress/integration/rounding.js index f778e009bb..89e305b1f6 100644 --- a/cypress/integration/rounding.js +++ b/cypress/integration/rounding.js @@ -1,7 +1,7 @@ context("Rounding behaviour", () => { before(() => { cy.login(); - cy.visit("/app/"); + cy.visit("/desk/"); }); it("Commercial Rounding", () => { diff --git a/cypress/integration/routing.js b/cypress/integration/routing.js index 79c0cea9dc..8b5c3a8880 100644 --- a/cypress/integration/routing.js +++ b/cypress/integration/routing.js @@ -1,4 +1,4 @@ -const list_view = "/app/todo"; +const list_view = "/desk/todo"; // test round trip with filter types diff --git a/cypress/integration/sidebar.js b/cypress/integration/sidebar.js index 5d170ca9ca..fc12929ba7 100644 --- a/cypress/integration/sidebar.js +++ b/cypress/integration/sidebar.js @@ -38,7 +38,7 @@ context("Sidebar", () => { before(() => { cy.visit("/"); cy.login(); - cy.visit("/app"); + cy.visit("/desk"); return cy .window() .its("frappe") @@ -87,7 +87,7 @@ context("Sidebar", () => { description: "Sidebar Attachment ToDo", }).then((todo) => { let todo_name = todo.message.name; - cy.visit("/app/todo"); + cy.visit("/desk/todo"); cy.click_sidebar_button("Assigned To"); //To check if no filter is available in "Assigned To" dropdown @@ -99,7 +99,7 @@ context("Sidebar", () => { cy.get_field("assign_to_me", "Check").click(); cy.wait(1000); cy.get(".modal-footer > .standard-actions > .btn-primary").click(); - cy.visit("/app/todo"); + cy.visit("/desk/todo"); cy.click_sidebar_button("Assigned To"); //To check if filter is added in "Assigned To" dropdown after assignment @@ -136,7 +136,7 @@ context("Sidebar", () => { cy.get(".assignments > .avatar-group > .avatar > .avatar-frame").click(); cy.get(".remove-btn").click({ force: true }); cy.hide_dialog(); - cy.visit("/app/todo"); + cy.visit("/desk/todo"); cy.click_sidebar_button("Assigned To"); cy.get(".empty-state").should("contain", "No filters found"); }); diff --git a/cypress/integration/socket_updates.js b/cypress/integration/socket_updates.js index 4253618e18..4b892d95c7 100644 --- a/cypress/integration/socket_updates.js +++ b/cypress/integration/socket_updates.js @@ -4,7 +4,7 @@ context("Realtime updates", () => { }); beforeEach(() => { - cy.visit("/app/todo"); + cy.visit("/desk/todo"); // required because immediately after load socket is still connecting. // Not a huge deal breaker in prod. cy.wait(500); diff --git a/cypress/integration/url_data_field.js b/cypress/integration/url_data_field.js index c74bc8b1a2..c6f45b5488 100644 --- a/cypress/integration/url_data_field.js +++ b/cypress/integration/url_data_field.js @@ -5,7 +5,7 @@ const doctype_name = data_field_validation_doctype.name; context("URL Data Field Input", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); return cy.insert_doc("DocType", data_field_validation_doctype, true); }); diff --git a/cypress/integration/utils.js b/cypress/integration/utils.js index 083a03294a..d3fd3d4016 100644 --- a/cypress/integration/utils.js +++ b/cypress/integration/utils.js @@ -1,7 +1,7 @@ context("Utils", () => { before(() => { cy.login(); - cy.visit("/app"); + cy.visit("/desk"); }); function run_util(name, ...args) { diff --git a/cypress/integration/view_routing.js b/cypress/integration/view_routing.js index 5942d4f005..5bb3c2d8db 100644 --- a/cypress/integration/view_routing.js +++ b/cypress/integration/view_routing.js @@ -1,11 +1,11 @@ context("View", () => { before(() => { cy.login(); - cy.visit("/app/website"); + cy.visit("/desk/website"); }); it("Route to ToDo List View", () => { - cy.visit("/app/todo/view/list"); + cy.visit("/desk/todo/view/list"); cy.wait(500); cy.window() .its("cur_list") @@ -15,7 +15,7 @@ context("View", () => { }); it("Route to ToDo Report View", () => { - cy.visit("/app/todo/view/report"); + cy.visit("/desk/todo/view/report"); cy.wait(500); cy.window() .its("cur_list") @@ -25,7 +25,7 @@ context("View", () => { }); it("Route to ToDo Dashboard View", () => { - cy.visit("/app/todo/view/dashboard"); + cy.visit("/desk/todo/view/dashboard"); cy.wait(500); cy.window() .its("cur_list") @@ -35,7 +35,7 @@ context("View", () => { }); it("Route to ToDo Gantt View", () => { - cy.visit("/app/todo/view/gantt"); + cy.visit("/desk/todo/view/gantt"); cy.wait(500); cy.window() .its("cur_list") @@ -46,7 +46,7 @@ context("View", () => { it("Route to ToDo Kanban View", () => { cy.call("frappe.tests.ui_test_helpers.create_kanban").then(() => { - cy.visit("/app/note/view/kanban/_Note _Kanban"); + cy.visit("/desk/note/view/kanban/_Note _Kanban"); cy.wait(500); cy.window() .its("cur_list") @@ -57,7 +57,7 @@ context("View", () => { }); it("Route to ToDo Calendar View", () => { - cy.visit("/app/todo/view/calendar"); + cy.visit("/desk/todo/view/calendar"); cy.wait(500); cy.window() .its("cur_list") @@ -68,7 +68,7 @@ context("View", () => { it("Route to Custom Tree View", () => { cy.call("frappe.tests.ui_test_helpers.setup_tree_doctype").then(() => { - cy.visit("/app/custom-tree/view/tree"); + cy.visit("/desk/custom-tree/view/tree"); cy.wait(500); cy.window() .its("cur_tree") @@ -137,7 +137,7 @@ context("View", () => { it("Route to default view from app/{doctype}", () => { cy.call("frappe.tests.ui_test_helpers.setup_default_view", { view: "Report" }).then(() => { - cy.visit("/app/event"); + cy.visit("/desk/event"); cy.wait(500); cy.window() .its("cur_list") @@ -149,7 +149,7 @@ context("View", () => { it("Route to default view from app/{doctype}/view", () => { cy.call("frappe.tests.ui_test_helpers.setup_default_view", { view: "Report" }).then(() => { - cy.visit("/app/event/view"); + cy.visit("/desk/event/view"); cy.wait(500); cy.window() .its("cur_list") @@ -164,7 +164,7 @@ context("View", () => { view: "Report", force_reroute: true, }).then(() => { - cy.visit("/app/event"); + cy.visit("/desk/event"); cy.wait(500); cy.window() .its("cur_list") @@ -179,7 +179,7 @@ context("View", () => { view: "Report", force_reroute: true, }).then(() => { - cy.visit("/app/event/view"); + cy.visit("/desk/event/view"); cy.wait(500); cy.window() .its("cur_list") @@ -194,7 +194,7 @@ context("View", () => { view: "Report", force_reroute: true, }).then(() => { - cy.visit("/app/event/view/list"); + cy.visit("/desk/event/view/list"); cy.wait(500); cy.window() .its("cur_list") @@ -206,17 +206,17 @@ context("View", () => { it("Validate Route History for Default View", () => { cy.call("frappe.tests.ui_test_helpers.setup_default_view", { view: "Report" }).then(() => { - cy.visit("/app/event"); - cy.visit("/app/event/view/list"); - cy.location("pathname").should("eq", "/app/event/view/list"); + cy.visit("/desk/event"); + cy.visit("/desk/event/view/list"); + cy.location("pathname").should("eq", "/desk/event/view/list"); cy.go("back"); - cy.location("pathname").should("eq", "/app/event"); + cy.location("pathname").should("eq", "/desk/event"); }); }); it("Route to Form", () => { const test_user = cy.config("testUser"); - cy.visit(`/app/user/${test_user}`); + cy.visit(`/desk/user/${test_user}`); cy.window() .its("cur_frm") .then((frm) => { @@ -225,7 +225,7 @@ context("View", () => { }); it("Route to Website Workspace", () => { - cy.visit("/app/website"); + cy.visit("/desk/website"); cy.get(".title-text").should("contain", "Website"); }); }); diff --git a/cypress/integration/web_form.js b/cypress/integration/web_form.js index c93593908d..03bd244c94 100644 --- a/cypress/integration/web_form.js +++ b/cypress/integration/web_form.js @@ -1,7 +1,7 @@ context("Web Form", () => { before(() => { cy.login("Administrator"); - cy.visit("/app/"); + cy.visit("/desk/"); return cy .window() .its("frappe") @@ -11,7 +11,7 @@ context("Web Form", () => { }); it("Create Web Form", () => { - cy.visit("/app/web-form/new"); + cy.visit("/desk/web-form/new"); cy.intercept("POST", "/api/method/frappe.desk.form.save.savedocs").as("save_form"); @@ -40,7 +40,11 @@ context("Web Form", () => { cy.url().should("include", "/note/new"); cy.fill_field("title", "Guest Note 1"); - cy.get(".web-form-actions button").contains("Save").click(); + cy.window() + .its("__") + .then((__) => { + cy.get(".web-form-actions button").contains(__("Save")).click(); + }); cy.url().should("include", "/note/new"); @@ -51,7 +55,7 @@ context("Web Form", () => { it("Login Required", () => { cy.call("logout"); cy.login("Administrator"); - cy.visit("/app/web-form/note"); + cy.visit("/desk/web-form/note"); cy.findByRole("tab", { name: "Settings" }).click(); cy.get('input[data-fieldname="login_required"]').check({ force: true }); @@ -70,7 +74,7 @@ context("Web Form", () => { it("Show List", () => { cy.login("Administrator"); - cy.visit("/app/web-form/note"); + cy.visit("/desk/web-form/note"); cy.findByRole("tab", { name: "Settings" }).click(); cy.get(".section-head").contains("List Settings").click(); @@ -84,7 +88,7 @@ context("Web Form", () => { }); it("Show Custom List Title", () => { - cy.visit("/app/web-form/note"); + cy.visit("/desk/web-form/note"); cy.findByRole("tab", { name: "Settings" }).click(); @@ -107,7 +111,7 @@ context("Web Form", () => { cy.get(".web-list-table thead th").contains("Sr."); cy.get(".web-list-table thead th").contains("Title"); - cy.visit("/app/web-form/note"); + cy.visit("/desk/web-form/note"); cy.findByRole("tab", { name: "Settings" }).click(); @@ -156,7 +160,7 @@ context("Web Form", () => { }); it("Custom Breadcrumbs", () => { - cy.visit("/app/web-form/note"); + cy.visit("/desk/web-form/note"); cy.findByRole("tab", { name: "Customization" }).click(); cy.fill_field("breadcrumbs", '[{"label": _("Notes"), "route":"note"}]', "Code"); @@ -188,7 +192,7 @@ context("Web Form", () => { }); it("Edit Mode", () => { - cy.visit("/app/web-form/note"); + cy.visit("/desk/web-form/note"); cy.findByRole("tab", { name: "Settings" }).click(); cy.get('input[data-fieldname="allow_edit"]').check(); @@ -212,7 +216,7 @@ context("Web Form", () => { }); it("Allow Multiple Response", () => { - cy.visit("/app/web-form/note"); + cy.visit("/desk/web-form/note"); cy.findByRole("tab", { name: "Settings" }).click(); cy.get('input[data-fieldname="allow_multiple"]').check(); @@ -230,7 +234,7 @@ context("Web Form", () => { }); it("Allow Delete", () => { - cy.visit("/app/web-form/note"); + cy.visit("/desk/web-form/note"); cy.findByRole("tab", { name: "Settings" }).click(); cy.get('input[data-fieldname="allow_delete"]').check(); diff --git a/cypress/integration/workspace.js b/cypress/integration/workspace.js index 97db14d683..96b99f2e25 100644 --- a/cypress/integration/workspace.js +++ b/cypress/integration/workspace.js @@ -2,16 +2,23 @@ context("Workspace 2.0", () => { before(() => { cy.visit("/login"); cy.login(); + return cy + .window() + .its("frappe") + .then((frappe) => { + return frappe.xcall("frappe.tests.ui_test_helpers.empty_my_workspaces"); + }); }); it("Navigate to page from sidebar", () => { - cy.visit("/app/build"); + cy.visit("/desk/build"); cy.get(".codex-editor__redactor .ce-block"); - cy.get('.sidebar-item-container[item-title="Website"]').first().click(); - cy.location("pathname").should("eq", "/app/website"); + cy.get('.sidebar-item-container[item-name="Page"]').first().click(); + cy.location("pathname").should("eq", "/desk/page"); }); it("Create Private Page", () => { + cy.visit("/desk/website"); cy.intercept({ method: "POST", url: "api/method/frappe.desk.doctype.workspace.workspace.new_page", @@ -27,61 +34,16 @@ context("Workspace 2.0", () => { cy.get_open_dialog().find(".btn-primary").click(); // check if sidebar item is added in pubic section - cy.get('.sidebar-item-container[item-title="Test Private Page"]').should( - "have.attr", - "item-public", - "0" - ); + cy.get('.sidebar-item-container[item-name="Test Private Page"]'); cy.wait(300); cy.get('.standard-actions .btn-primary[data-label="Save"]').click(); cy.wait(300); - cy.get('.sidebar-item-container[item-title="Test Private Page"]').should( - "have.attr", - "item-public", - "0" - ); - - cy.wait("@new_page"); - }); - - it("Create Child Page", () => { - cy.intercept({ - method: "POST", - url: "api/method/frappe.desk.doctype.workspace.workspace.new_page", - }).as("new_page"); - - cy.get(".codex-editor__redactor .ce-block"); - cy.get(".btn-new-workspace").click(); - cy.fill_field("title", "Test Child Page", "Data"); - cy.fill_field("parent", "Test Private Page", "Select"); - cy.fill_field("type", "Workspace", "Select"); - cy.get_open_dialog().find(".modal-header").click(); - cy.wait(300); - cy.get_open_dialog().find(".btn-primary").click(); - - // check if sidebar item is added in pubic section - cy.get('.sidebar-item-container[item-title="Test Child Page"]').should( - "have.attr", - "item-public", - "0" - ); - cy.wait(300); - cy.get('.standard-actions .btn-primary[data-label="Save"]').click(); - cy.wait(300); - cy.get('.sidebar-item-container[item-title="Test Child Page"]').should( - "have.attr", - "item-public", - "0" - ); + cy.get('.sidebar-item-container[item-name="Test Private Page"]'); cy.wait("@new_page"); }); it("Add New Block", () => { - cy.get('.sidebar-item-container[item-title="Test Private Page"]').as("sidebar-item"); - - cy.get("@sidebar-item").find(".standard-sidebar-item").first().click({ force: true }); - cy.get(".btn-edit-workspace").click({ force: true }); cy.get(".ce-block").click().type("{enter}"); diff --git a/cypress/integration/workspace_blocks.js b/cypress/integration/workspace_blocks.js index 70159150e2..05e03903ae 100644 --- a/cypress/integration/workspace_blocks.js +++ b/cypress/integration/workspace_blocks.js @@ -1,7 +1,7 @@ context("Workspace Blocks", () => { before(() => { cy.login(); - cy.visit("/app"); + cy.visit("/desk"); return cy .window() .its("frappe") @@ -11,12 +11,13 @@ context("Workspace Blocks", () => { }); it("Create Test Page", () => { + cy.remove_doc("Workspace", `Test Block Page-${Cypress.config("testUser")}`, true); cy.intercept({ method: "POST", url: "api/method/frappe.desk.doctype.workspace.workspace.new_page", }).as("new_page"); - cy.visit("/app/website"); + cy.visit("/desk/website"); cy.get(".codex-editor__redactor .ce-block"); cy.get(".btn-new-workspace").click(); cy.fill_field("title", "Test Block Page", "Data"); @@ -25,19 +26,11 @@ context("Workspace Blocks", () => { cy.get_open_dialog().find(".btn-primary").click(); // check if sidebar item is added in private section - cy.get('.sidebar-item-container[item-title="Test Block Page"]').should( - "have.attr", - "item-public", - "0" - ); + cy.get('.sidebar-item-container[item-name="Test Block Page"]'); cy.wait(300); cy.get('.standard-actions .btn-primary[data-label="Save"]').click(); cy.wait(300); - cy.get('.sidebar-item-container[item-title="Test Block Page"]').should( - "have.attr", - "item-public", - "0" - ); + cy.get('.sidebar-item-container[item-name="Test Block Page"]'); cy.wait("@new_page"); }); diff --git a/cypress/support/commands.js b/cypress/support/commands.js index cf94335a74..5731a0050c 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -125,7 +125,7 @@ Cypress.Commands.add("get_doc", (doctype, name) => { }); }); -Cypress.Commands.add("remove_doc", (doctype, name) => { +Cypress.Commands.add("remove_doc", (doctype, name, ignore_missing) => { return cy .window() .its("frappe.csrf_token") @@ -138,9 +138,9 @@ Cypress.Commands.add("remove_doc", (doctype, name) => { Accept: "application/json", "X-Frappe-CSRF-Token": csrf_token, }, + failOnStatusCode: !ignore_missing, }) .then((res) => { - expect(res.status).eq(202); return res.body; }); }); diff --git a/frappe/__init__.py b/frappe/__init__.py index 63d0e8a0e9..10400ed48f 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -1355,9 +1355,9 @@ def get_list(doctype, *args, **kwargs): # filter as a list of lists frappe.get_list("ToDo", fields="*", filters = [["modified", ">", "2014-01-01"]]) """ - import frappe.model.db_query + import frappe.model.qb_query - return frappe.model.db_query.DatabaseQuery(doctype).execute(*args, **kwargs) + return frappe.model.qb_query.DatabaseQuery(doctype).execute(*args, **kwargs) def get_all(doctype, *args, **kwargs): diff --git a/frappe/api/v1.py b/frappe/api/v1.py index 744ad89cdb..523c0d0f54 100644 --- a/frappe/api/v1.py +++ b/frappe/api/v1.py @@ -78,12 +78,13 @@ def read_doc(doctype: str, name: str): doc = frappe.get_doc(doctype, name) doc.check_permission("read") doc.apply_fieldlevel_read_permissions() - doc_dict = doc.as_dict() if sbool(frappe.form_dict.get("expand_links")): + doc_dict = doc.as_dict() get_values_for_link_and_dynamic_link_fields(doc_dict) get_values_for_table_and_multiselect_fields(doc_dict) + return doc_dict - return doc_dict + return doc def get_values_for_link_and_dynamic_link_fields(doc_dict): diff --git a/frappe/apps.py b/frappe/apps.py index 08a68ba3de..fa43856313 100644 --- a/frappe/apps.py +++ b/frappe/apps.py @@ -79,9 +79,9 @@ def get_default_path(): return get_route(user_default_app) if len(_apps) == 1: - return _apps[0].get("route") or "/apps" + return _apps[0].get("route") or "/desk" elif is_desk_apps(_apps): - return "/app" + return "/desk" return "/apps" diff --git a/frappe/auth.py b/frappe/auth.py index e631fa0c27..b88f2ff88f 100644 --- a/frappe/auth.py +++ b/frappe/auth.py @@ -201,7 +201,7 @@ class LoginManager: frappe.local.cookie_manager.set_cookie("system_user", "yes", deduplicate=True) if not resume: frappe.local.response["message"] = "Logged In" - frappe.local.response["home_page"] = get_default_path() or "/app" + frappe.local.response["home_page"] = get_default_path() or "/desk" if not resume: frappe.response["full_name"] = self.full_name diff --git a/frappe/automation/doctype/auto_repeat/auto_repeat.js b/frappe/automation/doctype/auto_repeat/auto_repeat.js index eb65eb27ab..a651b80afa 100644 --- a/frappe/automation/doctype/auto_repeat/auto_repeat.js +++ b/frappe/automation/doctype/auto_repeat/auto_repeat.js @@ -85,14 +85,17 @@ frappe.ui.form.on("Auto Repeat", { }, preview_message: function (frm) { + if (frm.is_dirty()) { + frappe.msgprint(__("Please save the form before previewing the message")); + return; + } + if (frm.doc.message) { frappe.call({ method: "frappe.automation.doctype.auto_repeat.auto_repeat.generate_message_preview", + type: "POST", args: { - reference_dt: frm.doc.reference_doctype, - reference_doc: frm.doc.reference_document, - subject: frm.doc.subject, - message: frm.doc.message, + name: frm.doc.name, }, callback: function (r) { if (r.message) { diff --git a/frappe/automation/doctype/auto_repeat/auto_repeat.py b/frappe/automation/doctype/auto_repeat/auto_repeat.py index 127eefc785..a9dda1e6e8 100644 --- a/frappe/automation/doctype/auto_repeat/auto_repeat.py +++ b/frappe/automation/doctype/auto_repeat/auto_repeat.py @@ -605,14 +605,15 @@ def update_reference(docname: str, reference: str): return "success" # backward compatbility -@frappe.whitelist() -def generate_message_preview(reference_dt, reference_doc, message=None, subject=None): +@frappe.whitelist(methods=["POST"]) +def generate_message_preview(name: str): frappe.has_permission("Auto Repeat", "write", throw=True) - doc = frappe.get_doc(reference_dt, reference_doc) + auto_repeat = frappe.get_doc("Auto Repeat", str(name)) + doc = frappe.get_doc(auto_repeat.reference_doctype, auto_repeat.reference_document) doc.check_permission() subject_preview = _("Please add a subject to your email") - msg_preview = frappe.render_template(message, {"doc": doc}) - if subject: - subject_preview = frappe.render_template(subject, {"doc": doc}) + msg_preview = frappe.render_template(auto_repeat.message, {"doc": doc}) + if auto_repeat.subject: + subject_preview = frappe.render_template(auto_repeat.subject, {"doc": doc}) return {"message": msg_preview, "subject": subject_preview} diff --git a/frappe/automation/workspace/tools/tools.json b/frappe/automation/workspace/tools/tools.json deleted file mode 100644 index 503740b5ce..0000000000 --- a/frappe/automation/workspace/tools/tools.json +++ /dev/null @@ -1,345 +0,0 @@ -{ - "charts": [], - "content": "[{\"id\":\"sR-UFcO7II\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Import Data\",\"col\":3}},{\"id\":\"IkcVmgWb3z\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"ToDo\",\"col\":3}},{\"id\":\"6wir-jZFRE\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"File\",\"col\":3}},{\"id\":\"45a1jzQkTm\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Assignment Rule\",\"col\":3}},{\"id\":\"EgtURZsoiF\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"0yceBIfhHM\",\"type\":\"card\",\"data\":{\"card_name\":\"Data\",\"col\":4}},{\"id\":\"42WbBA9rpj\",\"type\":\"card\",\"data\":{\"card_name\":\"Tools\",\"col\":4}},{\"id\":\"wE9n7TIrAc\",\"type\":\"card\",\"data\":{\"card_name\":\"Alerts and Notifications\",\"col\":4}},{\"id\":\"7_U7_xCOos\",\"type\":\"card\",\"data\":{\"card_name\":\"Email\",\"col\":4}},{\"id\":\"3imoh2oqsJ\",\"type\":\"card\",\"data\":{\"card_name\":\"Printing\",\"col\":4}},{\"id\":\"SlYKJZj5r3\",\"type\":\"card\",\"data\":{\"card_name\":\"Automation\",\"col\":4}}]", - "creation": "2020-03-02 14:53:24.980279", - "custom_blocks": [], - "docstatus": 0, - "doctype": "Workspace", - "for_user": "", - "hide_custom": 0, - "icon": "tool", - "idx": 0, - "is_hidden": 0, - "label": "Tools", - "links": [ - { - "hidden": 0, - "is_query_report": 0, - "label": "Automation", - "link_count": 3, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Assignment Rule", - "link_count": 0, - "link_to": "Assignment Rule", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Milestone", - "link_count": 0, - "link_to": "Milestone", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Auto Repeat", - "link_count": 0, - "link_to": "Auto Repeat", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Tools", - "link_count": 4, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "To Do", - "link_count": 0, - "link_to": "ToDo", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Calendar", - "link_count": 0, - "link_to": "Event", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Note", - "link_count": 0, - "link_to": "Note", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Files", - "link_count": 0, - "link_to": "File", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Printing", - "link_count": 4, - "link_type": "DocType", - "onboard": 0, - "type": "Card Break" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Print Format Builder", - "link_count": 0, - "link_to": "print-format-builder", - "link_type": "Page", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Print Format Builder (New)", - "link_count": 0, - "link_to": "print-format-builder-beta", - "link_type": "Page", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Print Settings", - "link_count": 0, - "link_to": "Print Settings", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Print Heading", - "link_count": 0, - "link_to": "Print Heading", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Alerts and Notifications", - "link_count": 3, - "link_type": "DocType", - "onboard": 0, - "type": "Card Break" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Notification", - "link_count": 0, - "link_to": "Notification", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Auto Email Report", - "link_count": 0, - "link_to": "Auto Email Report", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Notification Settings", - "link_count": 0, - "link_to": "Notification Settings", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "description": "Manage your data", - "hidden": 0, - "is_query_report": 0, - "label": "Data", - "link_count": 5, - "link_type": "DocType", - "onboard": 0, - "type": "Card Break" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Import Data", - "link_count": 0, - "link_to": "Data Import", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Export Data", - "link_count": 0, - "link_to": "Data Export", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Bulk Update", - "link_count": 0, - "link_to": "Bulk Update", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Download Backups", - "link_count": 0, - "link_to": "backups", - "link_type": "Page", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Deleted Documents", - "link_count": 0, - "link_to": "Deleted Document", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Email", - "link_count": 4, - "link_type": "DocType", - "onboard": 0, - "type": "Card Break" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Email Account", - "link_count": 0, - "link_to": "Email Account", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Email Domain", - "link_count": 0, - "link_to": "Email Domain", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Email Template", - "link_count": 0, - "link_to": "Email Template", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Email Group", - "link_count": 0, - "link_to": "Email Group", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - } - ], - "modified": "2025-06-27 11:39:44.392114", - "modified_by": "Administrator", - "module": "Automation", - "name": "Tools", - "number_cards": [], - "owner": "Administrator", - "parent_page": "", - "public": 1, - "quick_lists": [], - "restrict_to_domain": "", - "roles": [], - "sequence_id": 1.0, - "shortcuts": [ - { - "color": "Grey", - "doc_view": "List", - "label": "Import Data", - "link_to": "Data Import", - "type": "DocType" - }, - { - "doc_view": "", - "label": "ToDo", - "link_to": "ToDo", - "stats_filter": "[[\"ToDo\",\"status\",\"=\",\"Open\",false]]", - "type": "DocType" - }, - { - "label": "File", - "link_to": "File", - "type": "DocType" - }, - { - "label": "Assignment Rule", - "link_to": "Assignment Rule", - "type": "DocType" - } - ], - "title": "Tools" -} \ No newline at end of file diff --git a/frappe/boot.py b/frappe/boot.py index 6d8781c550..042121db65 100644 --- a/frappe/boot.py +++ b/frappe/boot.py @@ -14,6 +14,7 @@ from frappe.core.doctype.installed_applications.installed_applications import ( ) from frappe.core.doctype.navbar_settings.navbar_settings import get_app_logo, get_navbar_settings from frappe.desk.doctype.changelog_feed.changelog_feed import get_changelog_feed_items +from frappe.desk.doctype.desktop_icon.desktop_icon import get_desktop_icons from frappe.desk.doctype.form_tour.form_tour import get_onboarding_ui_tours from frappe.desk.doctype.route_history.route_history import frequently_visited_links from frappe.desk.form.load import get_meta_bundle @@ -41,6 +42,7 @@ def get_bootinfo(): # user get_user(bootinfo) + # desktop icon info # system info bootinfo.sitename = frappe.local.site @@ -55,6 +57,7 @@ def get_bootinfo(): bootinfo.modules = {} bootinfo.module_list = [] load_desktop_data(bootinfo) + bootinfo.desktop_icons = get_desktop_icons(bootinfo=bootinfo) bootinfo.letter_heads = get_letter_heads() bootinfo.active_domains = frappe.get_active_domains() bootinfo.all_domains = [d.get("name") for d in frappe.get_all("Domain")] @@ -148,8 +151,12 @@ def load_conf_settings(bootinfo): def load_desktop_data(bootinfo): from frappe.desk.desktop import get_workspace_sidebar_items - bootinfo.sidebar_pages = get_workspace_sidebar_items() - allowed_pages = [d.name for d in bootinfo.sidebar_pages.get("pages")] + bootinfo.workspaces = get_workspace_sidebar_items() + bootinfo.show_app_icons_as_folder = frappe.db.get_single_value( + "Desktop Settings", "show_app_icons_as_folder" + ) + bootinfo.workspace_sidebar_item = get_sidebar_items() + allowed_pages = [d.name for d in bootinfo.workspaces.get("pages")] bootinfo.module_wise_workspaces = get_controller("Workspace").get_module_wise_workspaces() bootinfo.dashboards = frappe.get_all("Dashboard") bootinfo.app_data = [] @@ -196,7 +203,7 @@ def load_desktop_data(bootinfo): frappe.get_hooks("app_home", app_name=app_name) and frappe.get_hooks("app_home", app_name=app_name)[0] ) - or (workspaces and "/app/" + frappe.utils.slug(workspaces[0])) + or (workspaces and "/desk/" + frappe.utils.slug(workspaces[0])) or "", app_logo_url=app_info.get("logo") or frappe.get_hooks("app_logo_url", app_name=app_name) @@ -360,7 +367,7 @@ def add_home_page(bootinfo, docs): bootinfo["home_page"] = page.name except (frappe.DoesNotExistError, frappe.PermissionError): frappe.clear_last_message() - bootinfo["home_page"] = "Workspaces" + bootinfo["home_page"] = "desktop" def add_timezone_info(bootinfo): @@ -518,3 +525,68 @@ def get_sentry_dsn(): return return os.getenv("FRAPPE_SENTRY_DSN") + + +def get_sidebar_items(): + sidebars = frappe.get_all( + "Workspace Sidebar", fields=["name", "header_icon"], filters={"name": ["not like", "%My Workspaces%"]} + ) + add_user_specific_sidebar(sidebars) + sidebar_items = {} + + for s in sidebars: + w = frappe.get_doc("Workspace Sidebar", s["name"]) + sidebar_items[s["name"].lower()] = { + "label": s["name"], + "items": [], + "header_icon": s["header_icon"], + "module": w.module, + } + for si in w.items: + workspace_sidebar = { + "label": si.label, + "link_to": si.link_to, + "link_type": si.link_type, + "type": si.type, + "icon": si.icon, + "child": si.child, + "collapsible": si.collapsible, + "indent": si.indent, + "keep_closed": si.keep_closed, + "display_depends_on": si.display_depends_on, + "url": si.url, + "show_arrow": si.show_arrow, + "filters": si.filters, + "route_options": si.route_options, + } + if si.link_type == "Report" and si.link_to: + report_type, ref_doctype = frappe.db.get_value( + "Report", si.link_to, ["report_type", "ref_doctype"] + ) + workspace_sidebar["report"] = { + "report_type": report_type, + "ref_doctype": ref_doctype, + } + + if ( + "My Workspaces" in s["name"] + or si.type == "Section Break" + or w.is_item_allowed(si.link_to, si.link_type) + ): + sidebar_items[s["name"].lower()]["items"].append(workspace_sidebar) + + old_name = f"my workspaces-{frappe.session.user}" + if old_name in sidebar_items: + sidebar_items["my workspaces"] = sidebar_items.pop(old_name) + return sidebar_items + + +def add_user_specific_sidebar(sidebars): + try: + my_workspace_for_user = frappe.get_doc("Workspace Sidebar", f"My Workspaces-{frappe.session.user}") + sidebars.append( + {"name": my_workspace_for_user.name, "header_icon": my_workspace_for_user.header_icon} + ) + except frappe.DoesNotExistError: + my_workspace = frappe.get_doc("Workspace Sidebar", "My Workspaces") + sidebars.append({"name": my_workspace.name, "header_icon": my_workspace.header_icon}) diff --git a/frappe/commands/site.py b/frappe/commands/site.py index ab7b337426..edf33e1b82 100644 --- a/frappe/commands/site.py +++ b/frappe/commands/site.py @@ -1584,6 +1584,33 @@ def bypass_patch(context: CliCtxObj, patch_name: str, yes: bool): frappe.destroy() +@click.command("create-desktop-icons-and-sidebar") +@pass_context +def create_icons_and_sidebar(context: CliCtxObj): + """Create desktop icons and workspace sidebars.""" + from frappe.desk.doctype.desktop_icon.desktop_icon import create_desktop_icons + from frappe.desk.doctype.workspace_sidebar.workspace_sidebar import ( + create_workspace_sidebar_for_workspaces, + ) + + if not context.sites: + raise SiteNotSpecifiedError + for site in context.sites: + frappe.init(site) + frappe.connect() + try: + print("Creating Desktop Icons") + create_desktop_icons() + print("Creating Workspace Sidebars") + create_workspace_sidebar_for_workspaces() + # Saving it in a command need it + frappe.db.commit() # nosemgrep + except Exception as e: + print(f"Error creating icons {site}: {e}") + finally: + frappe.destroy() + + commands = [ add_system_manager, add_user_for_sites, @@ -1620,4 +1647,5 @@ commands = [ trim_database, clear_log_table, bypass_patch, + create_icons_and_sidebar, ] diff --git a/frappe/commands/test_commands.py b/frappe/commands/test_commands.py index cde28456ca..ad00bb0933 100644 --- a/frappe/commands/test_commands.py +++ b/frappe/commands/test_commands.py @@ -469,11 +469,10 @@ class TestCommands(BaseTestCommands): self.assertEqual(check_password("Administrator", original_password), "Administrator") @skipIf( - not (frappe.conf.root_password and frappe.conf.admin_password and frappe.conf.db_type == "mariadb"), + not (frappe.conf.root_password and frappe.conf.admin_password and frappe.conf.db_type != "sqlite"), "DB Root password and Admin password not set in config", ) def test_bench_drop_site_should_archive_site(self): - # TODO: Make this test postgres compatible site = TEST_SITE self.execute( @@ -499,7 +498,7 @@ class TestCommands(BaseTestCommands): self.assertTrue(os.path.exists(archive_directory)) @skipIf( - not (frappe.conf.root_password and frappe.conf.admin_password and frappe.conf.db_type == "mariadb"), + not (frappe.conf.root_password and frappe.conf.admin_password and frappe.conf.db_type != "sqlite"), "DB Root password and Admin password not set in config", ) def test_force_install_app(self): @@ -656,10 +655,10 @@ class TestBackups(BaseTestCommands): except OSError: pass - @run_only_if(db_type_is.MARIADB) def test_backup_no_options(self): """Take a backup without any options""" before_backup = fetch_latest_backups(partial=True) + time.sleep(1) self.execute("bench --site {site} backup") after_backup = fetch_latest_backups(partial=True) @@ -1003,9 +1002,11 @@ class TestDBCli(BaseTestCommands): self.execute("bench --site {site} db-console", kwargs={"cmd_input": cmd_input}) self.assertEqual(self.returncode, 0) - @run_only_if(db_type_is.MARIADB) def test_db_cli_with_sql(self): - self.execute("bench --site {site} db-console -e 'select 1'") + if frappe.db.db_type == "postgres": + self.execute("bench --site {site} db-console -c 'select 1'") + elif frappe.db.db_type == "mariadb": + self.execute("bench --site {site} db-console -e 'select 1'") self.assertEqual(self.returncode, 0) self.assertIn("1", self.stdout) diff --git a/frappe/commands/testing.py b/frappe/commands/testing.py index 2df9a07761..973ccee722 100644 --- a/frappe/commands/testing.py +++ b/frappe/commands/testing.py @@ -437,6 +437,7 @@ def run_parallel_tests( @click.option("--parallel", is_flag=True, help="Run UI Test in parallel mode") @click.option("--with-coverage", is_flag=True, help="Generate coverage report") @click.option("--browser", default="chrome", help="Browser to run tests in") +@click.option("--spec", help="Spec file to run") @click.option("--ci-build-id") @pass_context def run_ui_tests( @@ -448,6 +449,7 @@ def run_ui_tests( browser="chrome", ci_build_id=None, cypressargs=None, + spec=None, ): "Run UI tests" site = get_site(context) @@ -494,6 +496,8 @@ def run_ui_tests( # run for headless mode run_or_open = f"run --browser {browser}" if headless else "open" + if headless and spec: + run_or_open += f" --spec {spec}" formatted_command = f"{site_env} {password_env} {coverage_env} {cypress_path} {run_or_open}" if os.environ.get("CYPRESS_RECORD_KEY"): diff --git a/frappe/contacts/doctype/address/address.py b/frappe/contacts/doctype/address/address.py index 65622a9c4f..93bbcc6431 100644 --- a/frappe/contacts/doctype/address/address.py +++ b/frappe/contacts/doctype/address/address.py @@ -310,7 +310,7 @@ def get_address_display_list(doctype: str, name: str) -> list[dict]: ["Dynamic Link", "parenttype", "=", "Address"], ], fields=["*"], - order_by="is_primary_address DESC, `tabAddress`.creation ASC", + order_by="is_primary_address DESC, creation ASC", ) for a in address_list: a["display"] = get_address_display(a) diff --git a/frappe/contacts/doctype/contact/contact.py b/frappe/contacts/doctype/contact/contact.py index 6d90533be6..3ad5e54c62 100644 --- a/frappe/contacts/doctype/contact/contact.py +++ b/frappe/contacts/doctype/contact/contact.py @@ -486,7 +486,7 @@ def get_contact_display_list(doctype: str, name: str) -> list[dict]: ["Dynamic Link", "parenttype", "=", "Contact"], ], fields=["*"], - order_by="is_primary_contact DESC, `tabContact`.creation ASC", + order_by="is_primary_contact DESC, creation ASC", ) for contact in contact_list: diff --git a/frappe/core/dashboard_chart/background_job_activity/background_job_activity.json b/frappe/core/dashboard_chart/background_job_activity/background_job_activity.json new file mode 100644 index 0000000000..72d45e614d --- /dev/null +++ b/frappe/core/dashboard_chart/background_job_activity/background_job_activity.json @@ -0,0 +1,34 @@ +{ + "based_on": "creation", + "chart_name": "Background Job Activity", + "chart_type": "Count", + "creation": "2025-09-08 11:56:13.469137", + "currency": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Scheduled Job Type", + "dynamic_filters_json": "[]", + "filters_json": "[]", + "group_by_type": "Count", + "idx": 0, + "is_public": 0, + "is_standard": 1, + "last_synced_on": "2025-10-30 21:36:33.646973", + "modified": "2025-10-30 21:37:11.340673", + "modified_by": "Administrator", + "module": "Core", + "name": "Background Job Activity", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "show_values_over_chart": 0, + "source": "", + "time_interval": "Daily", + "timeseries": 1, + "timespan": "Last Year", + "type": "Line", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} diff --git a/frappe/core/doctype/activity_log/test_activity_log.py b/frappe/core/doctype/activity_log/test_activity_log.py index d78f29449b..330b1bd8c7 100644 --- a/frappe/core/doctype/activity_log/test_activity_log.py +++ b/frappe/core/doctype/activity_log/test_activity_log.py @@ -50,7 +50,7 @@ class TestActivityLog(IntegrationTestCase): "user": "Administrator", "operation": operation, }, - order_by="`creation` DESC", + order_by="creation DESC", ) name = names[0] diff --git a/frappe/core/doctype/api_request_log/api_request_log.json b/frappe/core/doctype/api_request_log/api_request_log.json index 834309a62f..855f44d86f 100644 --- a/frappe/core/doctype/api_request_log/api_request_log.json +++ b/frappe/core/doctype/api_request_log/api_request_log.json @@ -34,9 +34,10 @@ } ], "grid_page_length": 50, + "in_create": 1, "index_web_pages_for_search": 1, "links": [], - "modified": "2025-05-21 17:09:55.054044", + "modified": "2025-10-29 11:26:28.177653", "modified_by": "Administrator", "module": "Core", "name": "API Request Log", diff --git a/frappe/core/doctype/data_import/data_import.py b/frappe/core/doctype/data_import/data_import.py index 8bf62c6c9f..cc105f813a 100644 --- a/frappe/core/doctype/data_import/data_import.py +++ b/frappe/core/doctype/data_import/data_import.py @@ -236,7 +236,7 @@ def get_import_status(data_import_name: str): import_status = {"status": data_import.status} logs = frappe.get_all( "Data Import Log", - fields=["count(*) as count", "success"], + fields=[{"COUNT": "*", "as": "count"}, "success"], filters={"data_import": data_import_name}, group_by="success", ) diff --git a/frappe/core/doctype/data_import/exporter.py b/frappe/core/doctype/data_import/exporter.py index 3300693e26..f49a23b634 100644 --- a/frappe/core/doctype/data_import/exporter.py +++ b/frappe/core/doctype/data_import/exporter.py @@ -165,9 +165,9 @@ class Exporter: filters = self.export_filters if self.meta.is_nested_set(): - order_by = f"`tab{self.doctype}`.`lft` ASC" + order_by = "lft ASC" else: - order_by = f"`tab{self.doctype}`.`creation` DESC" + order_by = "creation DESC" parent_fields = [format_column_name(df) for df in self.fields if df.parent == self.doctype] parent_data = frappe.db.get_list( diff --git a/frappe/core/doctype/doctype/test_doctype.py b/frappe/core/doctype/doctype/test_doctype.py index 20820fbaa6..28ba53275f 100644 --- a/frappe/core/doctype/doctype/test_doctype.py +++ b/frappe/core/doctype/doctype/test_doctype.py @@ -153,24 +153,25 @@ class TestDocType(IntegrationTestCase): def test_all_depends_on_fields_conditions(self): import re - docfields = frappe.get_all( - "DocField", - or_filters={ - "ifnull(depends_on, '')": ("!=", ""), - "ifnull(collapsible_depends_on, '')": ("!=", ""), - "ifnull(mandatory_depends_on, '')": ("!=", ""), - "ifnull(read_only_depends_on, '')": ("!=", ""), - }, - fields=[ - "parent", - "depends_on", - "collapsible_depends_on", - "mandatory_depends_on", - "read_only_depends_on", - "fieldname", - "fieldtype", - ], + DocField = frappe.qb.DocType("DocField") + docfields_query = ( + frappe.qb.from_(DocField) + .select( + DocField.parent, + DocField.depends_on, + DocField.collapsible_depends_on, + DocField.mandatory_depends_on, + DocField.read_only_depends_on, + DocField.fieldname, + ) + .where( + (DocField.depends_on != "") + | (DocField.collapsible_depends_on != "") + | (DocField.mandatory_depends_on != "") + | (DocField.read_only_depends_on != "") + ) ) + docfields = docfields_query.run(as_dict=True) pattern = r'[\w\.:_]+\s*={1}\s*[\w\.@\'"]+' for field in docfields: @@ -840,7 +841,20 @@ class TestDocType(IntegrationTestCase): ], ).insert(ignore_if_duplicate=True) decimal_field_type = frappe.db.get_column_type(doctype.name, "decimal_field") - self.assertIn("(30,3)", decimal_field_type.lower()) + if frappe.db.db_type == "postgres": + result = frappe.db.sql( + """ + SELECT numeric_precision, numeric_scale + FROM information_schema.columns + WHERE lower(table_name) = lower(%s) + AND column_name = %s + """, + (f"tab{doctype.name}", "decimal_field"), + ) + length, precision = result[0] + self.assertEqual((length, precision), (30, 3)) + elif frappe.db.db_type == "mariadb": + self.assertIn("(30,3)", decimal_field_type.lower()) def test_decimal_field_precision_exceeds_length(self): doctype = new_doctype( diff --git a/frappe/core/doctype/installed_applications/installed_applications.py b/frappe/core/doctype/installed_applications/installed_applications.py index ae0ec50e38..965d0767ac 100644 --- a/frappe/core/doctype/installed_applications/installed_applications.py +++ b/frappe/core/doctype/installed_applications/installed_applications.py @@ -56,7 +56,15 @@ class InstalledApplications(Document): }, ) - self.save() + try: + savepoint = "update_installed_apps" + frappe.db.savepoint(savepoint) + self.save() + except frappe.db.DataError: + frappe.db.rollback(save_point=savepoint) + # Tolerate primary key change on versions during migrate + self.save(ignore_version=True) + frappe.clear_cache(doctype="System Settings") frappe.db.set_single_value("System Settings", "setup_complete", frappe.is_setup_complete()) diff --git a/frappe/core/doctype/permission_inspector/permission_inspector.js b/frappe/core/doctype/permission_inspector/permission_inspector.js index 9c12080e94..f153910e51 100644 --- a/frappe/core/doctype/permission_inspector/permission_inspector.js +++ b/frappe/core/doctype/permission_inspector/permission_inspector.js @@ -13,6 +13,7 @@ frappe.ui.form.on("Permission Inspector", { ref_doctype(frm) { frm.doc.docname = ""; // Usually doctype change invalidates docname call_debug(frm); + frm.trigger("add_custom_perm_types"); }, user: call_debug, permission_type: call_debug, @@ -21,4 +22,21 @@ frappe.ui.form.on("Permission Inspector", { frm.call("debug"); } }, + add_custom_perm_types(frm) { + if (!frm.doc.ref_doctype) return; + + const doctype_ptype_map = frm.doc.__onload.doctype_ptype_map; + if (!Object.keys(doctype_ptype_map).length) return; + + const standard_options = frm.meta.fields.find( + (f) => f.fieldname === "permission_type" + ).options; + const custom_options = doctype_ptype_map[frm.doc.ref_doctype]?.join("\n"); + + frm.set_df_property( + "permission_type", + "options", + `${standard_options}\n${custom_options}` + ); + }, }); diff --git a/frappe/core/doctype/permission_inspector/permission_inspector.py b/frappe/core/doctype/permission_inspector/permission_inspector.py index 54af240f06..099ae2166e 100644 --- a/frappe/core/doctype/permission_inspector/permission_inspector.py +++ b/frappe/core/doctype/permission_inspector/permission_inspector.py @@ -37,6 +37,11 @@ class PermissionInspector(Document): user: DF.Link # end: auto-generated types + def onload(self): + from frappe.core.doctype.permission_type.permission_type import get_doctype_ptype_map + + self.set_onload("doctype_ptype_map", get_doctype_ptype_map()) + @frappe.whitelist() def debug(self): if not (self.ref_doctype and self.user): diff --git a/frappe/core/doctype/permission_type/__init__.py b/frappe/core/doctype/permission_type/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/core/doctype/permission_type/permission_type.js b/frappe/core/doctype/permission_type/permission_type.js new file mode 100644 index 0000000000..54705d0d4e --- /dev/null +++ b/frappe/core/doctype/permission_type/permission_type.js @@ -0,0 +1,8 @@ +// Copyright (c) 2025, Frappe Technologies and contributors +// For license information, please see license.txt + +// frappe.ui.form.on("Permission Type", { +// refresh(frm) { + +// }, +// }); diff --git a/frappe/core/doctype/permission_type/permission_type.json b/frappe/core/doctype/permission_type/permission_type.json new file mode 100644 index 0000000000..0179614df8 --- /dev/null +++ b/frappe/core/doctype/permission_type/permission_type.json @@ -0,0 +1,55 @@ +{ + "actions": [], + "creation": "2025-07-28 13:12:03.573433", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "perm_type", + "doc_type" + ], + "fields": [ + { + "fieldname": "perm_type", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Permission Type", + "reqd": 1 + }, + { + "fieldname": "doc_type", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Applies To (DocType)", + "options": "DocType", + "reqd": 1 + } + ], + "grid_page_length": 50, + "in_create": 1, + "index_web_pages_for_search": 1, + "links": [], + "modified": "2025-11-13 16:17:58.536849", + "modified_by": "Administrator", + "module": "Core", + "name": "Permission Type", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "Administrator", + "share": 1, + "write": 1 + } + ], + "read_only": 1, + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/frappe/core/doctype/permission_type/permission_type.py b/frappe/core/doctype/permission_type/permission_type.py new file mode 100644 index 0000000000..33c6c61840 --- /dev/null +++ b/frappe/core/doctype/permission_type/permission_type.py @@ -0,0 +1,135 @@ +# Copyright (c) 2025, Frappe Technologies and contributors +# For license information, please see license.txt + +from collections import defaultdict + +import frappe +from frappe import _ +from frappe.model.document import Document +from frappe.modules.export_file import delete_folder +from frappe.utils.caching import site_cache + +# doctypes where custom fields for permission types will be created +CUSTOM_FIELD_TARGET = ["Custom DocPerm", "DocPerm", "DocShare"] + + +class PermissionType(Document): + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + doc_type: DF.Link + perm_type: DF.Data + # end: auto-generated types + + def autoname(self): + self.name = f"{frappe.scrub(self.doc_type)}_{frappe.scrub(self.perm_type)}" + + def before_insert(self): + self.perm_type = frappe.scrub(self.perm_type) + + def validate(self): + from frappe.permissions import std_rights + + if self.perm_type in std_rights: + frappe.throw( + _("Permission Type '{0}' is reserved. Please choose another name.").format(self.perm_type) + ) + + def can_write(self): + return ( + frappe.conf.developer_mode + or frappe.flags.in_migrate + or frappe.flags.in_install + or frappe.flags.in_test + ) + + def should_export(self): + return ( + frappe.conf.developer_mode + and not frappe.flags.in_migrate + and not frappe.flags.in_install + and not frappe.flags.in_test + ) + + def get_folder_path(self): + app = frappe.get_doctype_app(self.doc_type) + folder = frappe.get_app_source_path(app, app, "permission_types") + return folder + + def on_update(self): + if not self.can_write(): + frappe.throw(_("Creation of this document is only permitted in developer mode.")) + + for target in CUSTOM_FIELD_TARGET: + self.create_custom_field(target) + + if self.should_export(): + from frappe.modules.export_file import export_to_files + + module = frappe.db.get_value("DocType", self.doc_type, "module") + export_to_files(record_list=[["Permission Type", self.name]], record_module=module) + + def before_export(self, export_doc): + del export_doc["idx"] + del export_doc["docstatus"] + for key in list(export_doc.keys()): + if key.startswith("_"): + del export_doc[key] + + def create_custom_field(self, target): + from frappe.custom.doctype.custom_field.custom_field import create_custom_field + + if not self.custom_field_exists(target): + field = "share_doctype" if target == "DocShare" else "parent" + depends_on = f"eval:doc.{field} == '{self.doc_type}'" + + create_custom_field( + target, + { + "fieldname": self.perm_type, + "label": frappe.unscrub(self.perm_type), + "fieldtype": "Check", + "insert_after": "append", + "depends_on": depends_on, + }, + ) + + def on_trash(self): + if not self.can_write(): + frappe.throw(_("Deletion of this document is only permitted in developer mode.")) + + for target in CUSTOM_FIELD_TARGET: + self.delete_custom_field(target) + + if self.should_export(): + module = frappe.db.get_value("DocType", self.doc_type, "module") + delete_folder(module, "Permission Type", self.name) + + def delete_custom_field(self, target): + if name := self.custom_field_exists(target): + frappe.delete_doc("Custom Field", name) + + def custom_field_exists(self, target): + return frappe.db.exists( + "Custom Field", + { + "fieldname": self.perm_type, + "dt": target, + }, + ) + + +@site_cache +def get_doctype_ptype_map(): + ptypes = frappe.get_all("Permission Type", fields=["perm_type", "doc_type"], order_by="perm_type") + + doctype_ptype_map = defaultdict(list) + for pt in ptypes: + if pt.perm_type not in doctype_ptype_map[pt.doc_type]: + doctype_ptype_map[pt.doc_type].append(pt.perm_type) + return dict(doctype_ptype_map) diff --git a/frappe/core/doctype/permission_type/test_permission_type.py b/frappe/core/doctype/permission_type/test_permission_type.py new file mode 100644 index 0000000000..54bf11f895 --- /dev/null +++ b/frappe/core/doctype/permission_type/test_permission_type.py @@ -0,0 +1,103 @@ +# Copyright (c) 2025, Frappe Technologies and Contributors +# See license.txt + +import frappe +from frappe.permissions import update_permission_property +from frappe.tests import IntegrationTestCase + +# On IntegrationTestCase, the doctype test records and all +# link-field test record dependencies are recursively loaded +# Use these module variables to add/remove to/from that list +EXTRA_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] +IGNORE_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] + + +class IntegrationTestPermissionType(IntegrationTestCase): + """ + Integration tests for PermissionType. + Use this class for testing interactions between multiple components. + """ + + def test_approve_ptype_on_blog_post(self): + """Test that custom permission types are applied correctly.""" + user_role = "Website Manager" + doc_type = "Web Page" + ptype_name = "approve" + + user = self._create_test_user("test_approve_permission@example.com", user_role) + + ptype_doc = self._create_permission_type(ptype_name, doc_type) + + try: + self._verify_custom_fields_created(ptype_doc, doc_type) + + self._verify_user_lacks_permission(doc_type, ptype_name, user.name) + + update_permission_property( + doctype=doc_type, role=user_role, permlevel=0, ptype=ptype_name, value=1 + ) + + self._verify_user_has_permission(doc_type, ptype_name, user.name) + + update_permission_property( + doctype=doc_type, role=user_role, permlevel=0, ptype=ptype_name, value=0 + ) + + finally: + frappe.delete_doc("User", user.name, force=True) + frappe.delete_doc("Permission Type", ptype_doc.name, force=True) + + def test_permission_type_creation_reserved_name(self): + """Test that permission types with reserved names are rejected.""" + doc = frappe.get_doc( + { + "doctype": "Permission Type", + "perm_type": "read", + "doc_type": "ToDo", + "module": "Core", + } + ) + + with self.assertRaises(frappe.exceptions.ValidationError): + doc.insert() + + def _create_test_user(self, email, role): + """Create a test user with the specified role.""" + user = frappe.new_doc("User") + user.email = email + user.first_name = email.split("@", 1)[0] + user.insert(ignore_if_duplicate=True) + user.reload() + user.add_roles(role) + return user + + def _create_permission_type(self, name, doc_type): + """Create a permission type for the specified doctype.""" + ptype_doc = frappe.get_doc( + { + "doctype": "Permission Type", + "perm_type": name, + "doc_type": doc_type, + "module": "Core", + } + ) + ptype_doc.insert(ignore_if_duplicate=True) + ptype_doc.reload() + return ptype_doc + + def _verify_custom_fields_created(self, ptype_doc, doc_type): + """Verify that custom fields are created for the permission type.""" + for target in ["Custom DocPerm", "DocPerm", "DocShare"]: + custom_field = frappe.get_doc("Custom Field", {"dt": target, "fieldname": ptype_doc.perm_type}) + self.assertEqual(custom_field.dt, target) + self.assertEqual(custom_field.fieldname, ptype_doc.perm_type) + self.assertEqual(custom_field.fieldtype, "Check") + self.assertIn(doc_type, custom_field.depends_on) + + def _verify_user_lacks_permission(self, doc_type, ptype_name, user_name): + """Verify that user does not have the specified permission type.""" + self.assertFalse(frappe.has_permission(doc_type, ptype=ptype_name, user=user_name)) + + def _verify_user_has_permission(self, doc_type, ptype_name, user_name): + """Verify that user has the specified permission type.""" + self.assertTrue(frappe.has_permission(doc_type, ptype=ptype_name, user=user_name)) diff --git a/frappe/core/doctype/prepared_report/test_prepared_report.py b/frappe/core/doctype/prepared_report/test_prepared_report.py index d9336ed0e0..7716fd443b 100644 --- a/frappe/core/doctype/prepared_report/test_prepared_report.py +++ b/frappe/core/doctype/prepared_report/test_prepared_report.py @@ -63,9 +63,12 @@ class TestPreparedReport(IntegrationTestCase): self.assertEqual(len(prepared_data["result"]), len(generated_data["result"])) self.assertEqual(len(prepared_data), len(generated_data)) - @run_only_if(db_type_is.MARIADB) def test_start_status_and_kill_jobs(self): - with test_report(report_type="Query Report", query="select sleep(10)") as report: + if frappe.db.db_type == "postgres": + query = "select pg_sleep(5)" + elif frappe.db.db_type == "mariadb": + query = "select sleep(5)" + with test_report(report_type="Query Report", query=query) as report: doc = self.create_prepared_report(report.name) self.wait_for_status(doc, "Started") job_id = doc.job_id diff --git a/frappe/core/doctype/role_profile/role_profile.json b/frappe/core/doctype/role_profile/role_profile.json index e0fb326114..63c3c07fe9 100644 --- a/frappe/core/doctype/role_profile/role_profile.json +++ b/frappe/core/doctype/role_profile/role_profile.json @@ -36,6 +36,7 @@ "read_only": 1 } ], + "grid_page_length": 50, "links": [ { "link_doctype": "User", @@ -43,7 +44,7 @@ "table_fieldname": "role_profiles" } ], - "modified": "2024-03-23 16:03:37.104710", + "modified": "2025-11-15 20:00:18.844434", "modified_by": "Administrator", "module": "Core", "name": "Role Profile", @@ -74,9 +75,11 @@ "write": 1 } ], + "row_format": "Dynamic", "sort_field": "creation", "sort_order": "DESC", "states": [], "title_field": "role_profile", - "track_changes": 1 -} \ No newline at end of file + "track_changes": 1, + "translated_doctype": 1 +} diff --git a/frappe/core/doctype/rq_job/test_rq_job.py b/frappe/core/doctype/rq_job/test_rq_job.py index accc6712b8..d616526fb1 100644 --- a/frappe/core/doctype/rq_job/test_rq_job.py +++ b/frappe/core/doctype/rq_job/test_rq_job.py @@ -176,6 +176,13 @@ class TestRQJob(IntegrationTestCase): if frappe.conf.use_mysqlclient: # TEMP: Add extra allowance for running two connectors, this should be rolled back before v16 LAST_MEASURED_USAGE += 2 + + # Observed higher usage on 3.14. Temporarily raising the limit + from sys import version_info + + if version_info >= (3, 14): + LAST_MEASURED_USAGE += 5 + self.assertLessEqual(rss, LAST_MEASURED_USAGE * 1.05, msg) def test_clear_failed_jobs(self): @@ -184,7 +191,7 @@ class TestRQJob(IntegrationTestCase): jobs = [frappe.enqueue(method=self.BG_JOB, queue="short", fail=True) for _ in range(limit * 2)] self.check_status(jobs[-1], "failed") - self.assertLessEqual(RQJob.get_count(filters=[["RQ Job", "status", "=", "failed"]]), limit * 1.1) + self.assertLessEqual(RQJob.get_count(filters=[["RQ Job", "status", "=", "failed"]]), limit * 1.2) def test_func(fail=False, sleep=0): diff --git a/frappe/core/doctype/server_script/test_server_script.py b/frappe/core/doctype/server_script/test_server_script.py index aa2cfb8a94..72bd7e6988 100644 --- a/frappe/core/doctype/server_script/test_server_script.py +++ b/frappe/core/doctype/server_script/test_server_script.py @@ -157,10 +157,11 @@ class TestServerScript(IntegrationTestCase): self.assertEqual(frappe.get_doc("Server Script", "test_return_value").execute_method(), "hello") def test_permission_query(self): + sql = frappe.db.get_list("ToDo", run=False) if frappe.conf.db_type != "postgres": - self.assertTrue("where (1 = 1)" in frappe.db.get_list("ToDo", run=False)) + self.assertTrue("where (1 = 1)" in sql.lower()) else: - self.assertTrue("where (1 = '1')" in frappe.db.get_list("ToDo", run=False)) + self.assertTrue("where (1 = '1')" in sql.lower()) self.assertTrue(isinstance(frappe.db.get_list("ToDo"), list)) def test_attribute_error(self): diff --git a/frappe/core/doctype/system_settings/system_settings.json b/frappe/core/doctype/system_settings/system_settings.json index 13f4ee83f5..8218d10939 100644 --- a/frappe/core/doctype/system_settings/system_settings.json +++ b/frappe/core/doctype/system_settings/system_settings.json @@ -51,12 +51,15 @@ "column_break_34", "allow_login_after_fail", "two_factor_authentication", + "column_break_odhl", "enable_two_factor_auth", "bypass_2fa_for_retricted_ip_users", "bypass_restrict_ip_check_if_2fa_enabled", + "column_break_bzfr", "two_factor_method", "lifespan_qrcode_image", "otp_issuer_name", + "otp_sms_template", "password_tab", "password_settings", "logout_on_password_reset", @@ -752,12 +755,27 @@ "fieldtype": "Select", "label": "Show External Link Warning", "options": "Never\nAsk\nAlways" + }, + { + "fieldname": "column_break_odhl", + "fieldtype": "Column Break" + }, + { + "depends_on": "eval:doc.enable_two_factor_auth==1 && doc.two_factor_method==\"SMS\"", + "description": "OTP placeholder should be defined as {{ otp }} ", + "fieldname": "otp_sms_template", + "fieldtype": "Small Text", + "label": "OTP SMS Template" + }, + { + "fieldname": "column_break_bzfr", + "fieldtype": "Column Break" } ], "icon": "fa fa-cog", "issingle": 1, "links": [], - "modified": "2025-09-24 16:04:02.016562", + "modified": "2025-11-04 16:47:54.230874", "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 9eb5d7f944..93a81d4465 100644 --- a/frappe/core/doctype/system_settings/system_settings.py +++ b/frappe/core/doctype/system_settings/system_settings.py @@ -89,6 +89,7 @@ class SystemSettings(Document): "#,###", ] otp_issuer_name: DF.Data | None + otp_sms_template: DF.SmallText | None password_reset_limit: DF.Int rate_limit_email_link_login: DF.Int reset_password_link_expiry_duration: DF.Duration | None @@ -145,6 +146,7 @@ class SystemSettings(Document): self.validate_user_pass_login() self.validate_backup_limit() self.validate_file_extensions() + self.validate_otp_sms_template() if not self.link_field_results_limit: self.link_field_results_limit = 10 @@ -156,6 +158,17 @@ class SystemSettings(Document): _("{0} can not be more than {1}").format(label, 50), alert=True, indicator="yellow" ) + def validate_otp_sms_template(self): + if not self.enable_two_factor_auth or self.two_factor_method != "SMS" or not self.otp_sms_template: + return + + if "{{otp}}" not in self.otp_sms_template.replace(" ", ""): + frappe.throw( + _("OTP SMS Template must contain {0} placeholder to insert the OTP.").format( + "{{otp}}" + ) + ) + def validate_user_pass_login(self): if not self.disable_user_pass_login: return diff --git a/frappe/core/doctype/user/test_user.py b/frappe/core/doctype/user/test_user.py index 0c4704a7d1..77c31d9b09 100644 --- a/frappe/core/doctype/user/test_user.py +++ b/frappe/core/doctype/user/test_user.py @@ -375,7 +375,7 @@ class TestUser(IntegrationTestCase): frappe.set_user("testpassword@example.com") test_user = frappe.get_doc("User", "testpassword@example.com") key = self.reset_password(test_user) - self.assertEqual(update_password(new_password, key=key), "/app") + self.assertEqual(update_password(new_password, key=key), "/desk") self.assertEqual( update_password(new_password, key="wrong_key"), "The reset password link has either been used before or is invalid", diff --git a/frappe/core/doctype/user/user.json b/frappe/core/doctype/user/user.json index f593f114f2..e5042ad568 100644 --- a/frappe/core/doctype/user/user.json +++ b/frappe/core/doctype/user/user.json @@ -903,7 +903,7 @@ } ], "make_attachments_public": 1, - "modified": "2025-10-15 18:07:21.606511", + "modified": "2025-11-07 17:18:37.858564", "modified_by": "Administrator", "module": "Core", "name": "User", diff --git a/frappe/core/doctype/user/user.py b/frappe/core/doctype/user/user.py index 63e0eb96e2..210737e4d5 100644 --- a/frappe/core/doctype/user/user.py +++ b/frappe/core/doctype/user/user.py @@ -876,14 +876,20 @@ def get_all_roles(): """return all roles""" active_domains = frappe.get_active_domains() - roles = frappe.get_all( - "Role", - filters={ - "name": ("not in", frappe.permissions.AUTOMATIC_ROLES), - "disabled": 0, - }, - or_filters={"ifnull(restrict_to_domain, '')": "", "restrict_to_domain": ("in", active_domains)}, - order_by="name", + Role = frappe.qb.DocType("Role") + + domain_condition = (Role.restrict_to_domain.isnull()) | (Role.restrict_to_domain == "") + if active_domains: + domain_condition = domain_condition | Role.restrict_to_domain.isin(active_domains) + + roles = ( + frappe.qb.from_(Role) + .select(Role.name) + .where( + (Role.name.notin(frappe.permissions.AUTOMATIC_ROLES)) & (Role.disabled == 0) & domain_condition + ) + .orderby(Role.name) + .run(as_dict=True) ) return sorted([role.get("name") for role in roles]) @@ -951,7 +957,7 @@ def update_password( frappe.db.set_value("User", user, "reset_password_key", "") if user_doc.user_type == "System User": - return get_default_path() or "/app" + return get_default_path() or "/desk" else: return redirect_url or get_default_path() or get_home_page() @@ -1409,9 +1415,7 @@ def get_enabled_users(): @frappe.whitelist(methods=["POST"]) def impersonate(user: str, reason: str): - # Note: For now we only allow admins, we MIGHT allow system manager in future. - # All the impersonation code doesn't assume anything about user. - frappe.only_for("Administrator") + frappe.has_permission("User", "impersonate") impersonator = frappe.session.user frappe.get_doc( diff --git a/frappe/core/doctype/user_invitation/test_user_invitation.py b/frappe/core/doctype/user_invitation/test_user_invitation.py index e3cab914c0..634c739d8e 100644 --- a/frappe/core/doctype/user_invitation/test_user_invitation.py +++ b/frappe/core/doctype/user_invitation/test_user_invitation.py @@ -55,15 +55,18 @@ class IntegrationTestUserInvitation(IntegrationTestCase): @classmethod def delete_all_user_roles(cls): - frappe.db.sql("DELETE FROM `tabUser Role`") + query = "DELETE FROM `tabUser Role`" + frappe.db.sql(cls.normalize_sql(query)) @classmethod def delete_all_invitations(cls): - frappe.db.sql("DELETE FROM `tabUser Invitation`") + query = "DELETE FROM `tabUser Invitation`" + frappe.db.sql(cls.normalize_sql(query)) @classmethod def delete_invitation(cls, name: str): - frappe.db.sql(f'DELETE FROM `tabUser Invitation` WHERE name = "{name}"') + query = "DELETE FROM `tabUser Invitation` WHERE name = %s" + frappe.db.sql(cls.normalize_sql(query), name) def setUp(self): super().setUp() diff --git a/frappe/core/doctype/user_type/user_type.py b/frappe/core/doctype/user_type/user_type.py index 0104b6119e..046e3203f9 100644 --- a/frappe/core/doctype/user_type/user_type.py +++ b/frappe/core/doctype/user_type/user_type.py @@ -234,7 +234,7 @@ def get_user_linked_doctypes(doctype, txt, searchfield, start, page_len, filters "DocType", fields=["`tabDocType`.`name`"], filters=filters, - order_by="`tabDocType`.`idx` desc", + order_by="idx desc", limit_start=start, limit_page_length=page_len, as_list=1, diff --git a/frappe/core/notifications.py b/frappe/core/notifications.py index b4d903d7ca..17828b84f4 100644 --- a/frappe/core/notifications.py +++ b/frappe/core/notifications.py @@ -20,7 +20,7 @@ def get_things_todo(as_list=False): """Return a count of incomplete ToDos.""" data = frappe.get_list( "ToDo", - fields=["name", "description"] if as_list else "count(*)", + fields=["name", "description"] if as_list else [{"COUNT": "*"}], filters=[["ToDo", "status", "=", "Open"]], or_filters=[ ["ToDo", "allocated_to", "=", frappe.session.user], diff --git a/frappe/core/page/permission_manager/permission_manager.js b/frappe/core/page/permission_manager/permission_manager.js index b216bcfd3a..129f1aea4a 100644 --- a/frappe/core/page/permission_manager/permission_manager.js +++ b/frappe/core/page/permission_manager/permission_manager.js @@ -132,14 +132,14 @@ frappe.PermissionEngine = class PermissionEngine { .append(`
${__("Standard Permissions")}:

`); let $wrapper = $("

").appendTo($d); data.message.forEach((d) => { - let rights = this.rights + let custom_rights = this.options.doctype_ptype_map[doctype] || []; + d.rights = this.rights .filter((r) => d[r]) + .concat(custom_rights) .map((r) => { return __(toTitle(frappe.unscrub(r))); }); - d.rights = rights.join(", "); - $wrapper.append(`
\
${__(d.role)}, ${__("Level")} ${d.permlevel || 0}
\
${d.rights}
\ @@ -265,6 +265,10 @@ frappe.PermissionEngine = class PermissionEngine { } }); + this.options.doctype_ptype_map[d.parent]?.forEach((r) => { + this.add_check(perm_container, d, r); + }); + // buttons this.add_delete_button(row, d); }); diff --git a/frappe/core/page/permission_manager/permission_manager.py b/frappe/core/page/permission_manager/permission_manager.py index bf4f150c59..68a1fd8e3c 100644 --- a/frappe/core/page/permission_manager/permission_manager.py +++ b/frappe/core/page/permission_manager/permission_manager.py @@ -9,6 +9,7 @@ from frappe.core.doctype.doctype.doctype import ( clear_permissions_cache, validate_permissions_for_doctype, ) +from frappe.core.doctype.permission_type.permission_type import get_doctype_ptype_map from frappe.exceptions import DoesNotExistError from frappe.modules.import_file import get_file_path, read_doc_from_file from frappe.permissions import ( @@ -31,14 +32,20 @@ def get_roles_and_doctypes(): active_domains = frappe.get_active_domains() - doctypes = frappe.get_all( - "DocType", - filters={ - "istable": 0, - "name": ("not in", ",".join(not_allowed_in_permission_manager)), - }, - or_filters={"ifnull(restrict_to_domain, '')": "", "restrict_to_domain": ("in", active_domains)}, - fields=["name"], + DocType = frappe.qb.DocType("DocType") + doctype_domain_condition = (DocType.restrict_to_domain.isnull()) | (DocType.restrict_to_domain == "") + if active_domains: + doctype_domain_condition = doctype_domain_condition | DocType.restrict_to_domain.isin(active_domains) + + doctypes = ( + frappe.qb.from_(DocType) + .select(DocType.name) + .where( + (DocType.istable == 0) + & (DocType.name.notin(not_allowed_in_permission_manager)) + & doctype_domain_condition + ) + .run(as_dict=True) ) restricted_roles = ["Administrator"] @@ -47,14 +54,16 @@ def get_roles_and_doctypes(): restricted_roles.extend(row.role for row in custom_user_type_roles) restricted_roles.extend(AUTOMATIC_ROLES) - roles = frappe.get_all( - "Role", - filters={ - "name": ("not in", restricted_roles), - "disabled": 0, - }, - or_filters={"ifnull(restrict_to_domain, '')": "", "restrict_to_domain": ("in", active_domains)}, - fields=["name"], + Role = frappe.qb.DocType("Role") + role_domain_condition = (Role.restrict_to_domain.isnull()) | (Role.restrict_to_domain == "") + if active_domains: + role_domain_condition = role_domain_condition | Role.restrict_to_domain.isin(active_domains) + + roles = ( + frappe.qb.from_(Role) + .select(Role.name) + .where((Role.name.notin(restricted_roles)) & (Role.disabled == 0) & role_domain_condition) + .run(as_dict=True) ) doctypes_list = [{"label": _(d.get("name")), "value": d.get("name")} for d in doctypes] @@ -63,6 +72,7 @@ def get_roles_and_doctypes(): return { "doctypes": sorted(doctypes_list, key=lambda d: d["label"].casefold()), "roles": sorted(roles_list, key=lambda d: d["label"].casefold()), + "doctype_ptype_map": get_doctype_ptype_map(), } diff --git a/frappe/core/permission_type/user_impersonate/user_impersonate.json b/frappe/core/permission_type/user_impersonate/user_impersonate.json new file mode 100644 index 0000000000..0e00271f96 --- /dev/null +++ b/frappe/core/permission_type/user_impersonate/user_impersonate.json @@ -0,0 +1,10 @@ +{ + "creation": "2025-11-13 16:34:50.584738", + "doc_type": "User", + "doctype": "Permission Type", + "modified": "2025-11-14 14:21:45.603237", + "modified_by": "Administrator", + "name": "user_impersonate", + "owner": "Administrator", + "perm_type": "impersonate" +} diff --git a/frappe/core/report/permitted_documents_for_user/permitted_documents_for_user.py b/frappe/core/report/permitted_documents_for_user/permitted_documents_for_user.py index bf1694b164..ddde4ee833 100644 --- a/frappe/core/report/permitted_documents_for_user/permitted_documents_for_user.py +++ b/frappe/core/report/permitted_documents_for_user/permitted_documents_for_user.py @@ -4,7 +4,7 @@ import frappe import frappe.utils.user from frappe.model import data_fieldtypes -from frappe.permissions import rights +from frappe.permissions import get_rights def execute(filters=None): @@ -20,6 +20,7 @@ def execute(filters=None): data = frappe.get_list(doctype, fields=fields, as_list=True, user=user) if show_permissions: + rights = get_rights(doctype) columns = columns + [frappe.unscrub(right) + ":Check:80" for right in rights] data = list(data) for i, doc in enumerate(data): diff --git a/frappe/core/workspace/system/system.json b/frappe/core/workspace/system/system.json new file mode 100644 index 0000000000..3358064534 --- /dev/null +++ b/frappe/core/workspace/system/system.json @@ -0,0 +1,41 @@ +{ + "app": "frappe", + "charts": [ + { + "chart_name": "Background Job Activity", + "label": "Background Job Activity" + }, + { + "chart_name": "Notifications By Type", + "label": "Notification Summary" + } + ], + "content": "[{\"id\":\"-bxX6Dwxxy\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Background Job Activity\",\"col\":12}},{\"id\":\"gccD2r7Ut3\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Notification Summary\",\"col\":12}}]", + "creation": "2025-09-08 11:33:57.533875", + "custom_blocks": [], + "docstatus": 0, + "doctype": "Workspace", + "for_user": "", + "hide_custom": 0, + "icon": "monitor-check", + "idx": 0, + "indicator_color": "green", + "is_hidden": 0, + "label": "System", + "link_type": "DocType", + "links": [], + "modified": "2025-10-30 18:22:58.416219", + "modified_by": "Administrator", + "module": "Core", + "name": "System", + "number_cards": [], + "owner": "Administrator", + "parent_page": "", + "public": 1, + "quick_lists": [], + "roles": [], + "sequence_id": 27.0, + "shortcuts": [], + "title": "System", + "type": "Workspace" +} diff --git a/frappe/custom/doctype/client_script/ui_test_client_script.js b/frappe/custom/doctype/client_script/ui_test_client_script.js index 0d202d697c..f3ac811810 100644 --- a/frappe/custom/doctype/client_script/ui_test_client_script.js +++ b/frappe/custom/doctype/client_script/ui_test_client_script.js @@ -1,7 +1,7 @@ context("Client Script", () => { before(() => { cy.login(); - cy.visit("/app"); + cy.visit("/desk"); }); it("should run form script in doctype form", () => { @@ -16,7 +16,7 @@ context("Client Script", () => { }, true ); - cy.visit("/app/todo/new", { + cy.visit("/desk/todo/new", { onBeforeLoad(win) { cy.spy(win.console, "log").as("consoleLog"); }, @@ -36,7 +36,7 @@ context("Client Script", () => { }, true ); - cy.visit("/app/todo", { + cy.visit("/desk/todo", { onBeforeLoad(win) { cy.spy(win.console, "log").as("consoleLog"); }, @@ -56,7 +56,7 @@ context("Client Script", () => { }, true ); - cy.visit("/app/todo", { + cy.visit("/desk/todo", { onBeforeLoad(win) { cy.spy(win.console, "log").as("consoleLog"); }, @@ -87,7 +87,7 @@ context("Client Script", () => { }, true ); - cy.visit("/app/todo/new", { + cy.visit("/desk/todo/new", { onBeforeLoad(win) { cy.spy(win.console, "log").as("consoleLog"); }, diff --git a/frappe/custom/doctype/property_setter/property_setter.py b/frappe/custom/doctype/property_setter/property_setter.py index ba191af542..0a38a16128 100644 --- a/frappe/custom/doctype/property_setter/property_setter.py +++ b/frappe/custom/doctype/property_setter/property_setter.py @@ -41,6 +41,7 @@ class PropertySetter(Document): if self.is_new(): delete_property_setter(self.doc_type, self.property, self.field_name, self.row_name) + frappe.clear_cache(doctype=self.doc_type) def on_trash(self): diff --git a/frappe/database/database.py b/frappe/database/database.py index 9b8de4cb51..e5274d0174 100644 --- a/frappe/database/database.py +++ b/frappe/database/database.py @@ -11,9 +11,9 @@ import warnings from collections.abc import Iterable, Sequence from contextlib import contextmanager, suppress from time import time -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING, Any, Literal -from pypika.queries import QueryBuilder +from pypika.queries import QueryBuilder, Table import frappe import frappe.defaults @@ -27,6 +27,7 @@ from frappe.database.utils import ( Query, QueryValues, convert_to_value, + get_doctype_sort_info, get_query_type, is_query_type, ) @@ -649,7 +650,6 @@ class Database: try: if order_by: order_by = "creation" if order_by == DefaultOrderBy else order_by - query = frappe.qb.get_query( table=doctype, filters=filters, @@ -1323,12 +1323,12 @@ class Database: from frappe.utils import now_datetime - Table = frappe.qb.DocType(doctype) + dt = frappe.qb.DocType(doctype) return ( - frappe.qb.from_(Table) - .select(Count(Table.name)) - .where(Table.creation >= now_datetime() - relativedelta(minutes=minutes)) + frappe.qb.from_(dt) + .select(Count(dt.name)) + .where(dt.creation >= now_datetime() - relativedelta(minutes=minutes)) .run()[0][0] ) diff --git a/frappe/database/query.py b/frappe/database/query.py index 41e3e9cd05..d9ebbd9b0e 100644 --- a/frappe/database/query.py +++ b/frappe/database/query.py @@ -1,20 +1,87 @@ +import datetime import re from functools import lru_cache from typing import TYPE_CHECKING, Any import sqlparse -from pypika.queries import QueryBuilder, Table -from pypika.terms import AggregateFunction, Term +from pypika.enums import Arithmetic +from pypika.queries import Column, QueryBuilder, Table +from pypika.terms import AggregateFunction, ArithmeticExpression, Term, ValueWrapper import frappe from frappe import _ from frappe.database.operator_map import NESTED_SET_OPERATORS, OPERATOR_MAP -from frappe.database.utils import DefaultOrderBy, FilterValue, convert_to_value, get_doctype_name +from frappe.database.utils import ( + DefaultOrderBy, + FilterValue, + convert_to_value, + get_doctype_name, + get_doctype_sort_info, +) from frappe.model import get_permitted_fields +from frappe.model.base_document import DOCTYPES_FOR_DOCTYPE from frappe.query_builder import Criterion, Field, Order, functions +from frappe.query_builder.custom import Month, MonthName, Quarter from frappe.query_builder.utils import PseudoColumnMapper from frappe.utils.data import MARIADB_SPECIFIC_COMMENT +CORE_DOCTYPES = DOCTYPES_FOR_DOCTYPE | frozenset( + ("Custom Field", "Property Setter", "Module Def", "__Auth", "__global_search", "Singles") +) + + +def _apply_date_field_filter_conversion(value, operator: str, doctype: str, field): + """Apply datetime to date conversion for Date fieldtype filters. + + This matches db_query behavior where datetime values are truncated to dates + when filtering on Date fields, for all operators (not just 'between'). + + Args: + value: The filter value (can be datetime, tuple of datetimes, or other) + operator: The operator being used (between, >, <, etc.) + doctype: The doctype to get field metadata from + field: The field name or pypika Field object + + Returns: + The converted value with datetimes converted to dates if field is Date type + """ + try: + # Extract field name + if "." in str(field): + field = field.split(".")[-1] + + # Skip querying meta for core doctypes to avoid recursion + if doctype in CORE_DOCTYPES: + meta = None + else: + meta = frappe.get_meta(doctype) + + if meta is None: + return value + + df = meta.get_field(field) + if df is None or df.fieldtype != "Date": + return value + + # Convert datetime to date if the fieldtype is date + if operator.lower() == "between" and isinstance(value, list | tuple) and len(value) == 2: + from_val, to_val = value + if isinstance(from_val, datetime.datetime): + from_val = from_val.date() + if isinstance(to_val, datetime.datetime): + to_val = to_val.date() + return (from_val, to_val) + elif isinstance(value, datetime.datetime): + return value.date() + + except (AttributeError, TypeError, KeyError): + pass + + return value + + +OPTIONAL_COLUMNS = frozenset(["_user_tags", "_comments", "_assign", "_liked_by", "_seen"]) + if TYPE_CHECKING: from frappe.query_builder import DocType @@ -26,9 +93,27 @@ COMMA_PATTERN = re.compile(r",\s*(?![^()]*\))") # to allow table names like __Auth TABLE_NAME_PATTERN = re.compile(r"^[\w -]*$", flags=re.ASCII) + +def _is_function_call(field_str: str) -> bool: + """Check if a string is a SQL function call using sqlparse.""" + parsed = sqlparse.parse(field_str.strip()) + if not parsed: + return False + + return any(isinstance(token, sqlparse.sql.Function) for token in parsed[0].tokens) + + # Pattern to validate field names in SELECT: -# Allows: name, `name`, name as alias, `name` as alias, `table name`.`name`, `table name`.`name` as alias, table.name, table.name as alias -ALLOWED_FIELD_PATTERN = re.compile(r"^(?:(`[\w\s-]+`|\w+)\.)?(`\w+`|\w+)(?:\s+as\s+\w+)?$", flags=re.ASCII) +# Allows: name, `name`, name as alias, `name` as alias, table.name, table.name as alias +# Also allows backtick-qualified identifiers with spaces/hyphens: +# - `tabTable`.`field` +# - `tabTable Name`.`field` (spaces in table name) +# - `tabTable-Field`.`field` (hyphens in table name) +# - Any of above with aliases: ... as alias +ALLOWED_FIELD_PATTERN = re.compile( + r"^(?:(`[\w\s-]+`|\w+)\.)?(`[\w\s-]+`|\w+)(?:\s+as\s+(?:`[\w\s-]+`|\w+))?$", + flags=re.ASCII | re.IGNORECASE, +) # Regex to parse field names: # Group 1: Optional quote for table name @@ -51,6 +136,21 @@ FUNCTION_MAPPING = { "IFNULL": functions.IfNull, "CONCAT": functions.Concat, "NOW": functions.Now, + "NULLIF": functions.NullIf, + "MONTHNAME": MonthName, + "QUARTER": Quarter, + "MONTH": Month, +} + +# Mapping from operator names to pypika Arithmetic enum values +# Operators use dict format: {"ADD": [left, right], "as": "alias"} +# Supported: ADD (+), SUB (-), MUL (*), DIV (/) +# Can be nested with functions: {"DIV": [1, {"NULLIF": ["value", 0]}]} +OPERATOR_MAPPING = { + "ADD": Arithmetic.add, + "SUB": Arithmetic.sub, + "MUL": Arithmetic.mul, + "DIV": Arithmetic.div, } @@ -76,7 +176,17 @@ class Engine: ignore_permissions: bool = True, user: str | None = None, parent_doctype: str | None = None, + reference_doctype: str | None = None, + or_filters: dict[str, FilterValue] | FilterValue | list[list | FilterValue] | None = None, + db_query_compat: bool = False, ) -> QueryBuilder: + """Build a query with optional compatibility mode for legacy db_query behavior. + + Args: + db_query_compat: When True, uses legacy db_query behavior for sorting and filtering. + This is kept optional to not break existing code that relies on the original query builder behaviour. + """ + qb = frappe.local.qb db_type = frappe.local.db.db_type @@ -86,7 +196,10 @@ class Engine: self.validate_filters = validate_filters self.user = user or frappe.session.user self.parent_doctype = parent_doctype + self.reference_doctype = reference_doctype self.apply_permissions = not ignore_permissions + self.function_aliases = set() + self.db_query_compat = db_query_compat if isinstance(table, Table): self.table = table @@ -110,6 +223,7 @@ class Engine: self.apply_fields(fields) self.apply_filters(filters) + self.apply_or_filters(or_filters) if limit: if not isinstance(limit, int) or limit < 0: @@ -163,6 +277,7 @@ class Engine: def apply_filters( self, filters: dict[str, FilterValue] | FilterValue | list[list | FilterValue] | None = None, + collect: list | None = None, ): if filters is None: return @@ -175,7 +290,7 @@ class Engine: return if isinstance(filters, dict): - self.apply_dict_filters(filters) + self.apply_dict_filters(filters, collect=collect) return if isinstance(filters, list | tuple): @@ -184,7 +299,9 @@ class Engine: # 1. Handle special case: list of names -> name IN (...) if all(isinstance(d, FilterValue) for d in filters): - self.apply_dict_filters({"name": ("in", tuple(convert_to_value(f) for f in filters))}) + self.apply_dict_filters( + {"name": ("in", tuple(convert_to_value(f) for f in filters))}, collect=collect + ) return # 2. Check for nested logic format [cond, op, cond, ...] or [[cond, op, cond]] @@ -233,9 +350,11 @@ class Engine: else: # Not a nested structure, assume it's a list of simple filters (implicitly ANDed) for filter_item in filters: if isinstance(filter_item, list | tuple): - self.apply_list_filters(filter_item) # Handles simple [field, op, value] lists + self.apply_list_filters( + filter_item, collect=collect + ) # Handles simple [field, op, value] lists elif isinstance(filter_item, dict | Criterion): - self.apply_filters(filter_item) # Recursive call for dict/criterion + self.apply_filters(filter_item, collect=collect) # Recursive call for dict/criterion else: # Disallow single values (strings, numbers, etc.) directly in the list # unless it's the name IN (...) case handled above. @@ -247,26 +366,53 @@ class Engine: # If filters type is none of the above raise ValueError(f"Unsupported filters type: {type(filters).__name__}") - def apply_list_filters(self, filter: list): + def apply_or_filters( + self, + or_filters: dict[str, FilterValue] | FilterValue | list[list | FilterValue] | None = None, + ): + """Apply OR filters - all conditions are combined with OR operator. + + Example: + or_filters={"name": "User", "module": "Core"} + → Collects: [Criterion(name='User'), Criterion(module='Core')] + → Combines: Criterion(name='User') | Criterion(module='Core') + → Result: WHERE name='User' OR module='Core' + """ + if or_filters is None: + return + + # Collect criteria instead of applying immediately + criteria = [] + self.apply_filters(or_filters, collect=criteria) + + # Combine all criteria with OR operator (|) + if criteria: + from functools import reduce + + # Reduce combines: [Criterion(name='User'), Criterion(module='Core')] → Criterion(name='User') | Criterion(module='Core') + combined = reduce(lambda a, b: a | b, criteria) + self.query = self.query.where(combined) + + def apply_list_filters(self, filter: list, collect: list | None = None): if len(filter) == 2: field, value = filter - self._apply_filter(field, value) + self._apply_filter(field, value, collect=collect) elif len(filter) == 3: field, operator, value = filter - self._apply_filter(field, value, operator) + self._apply_filter(field, value, operator, collect=collect) elif len(filter) == 4: doctype, field, operator, value = filter - self._apply_filter(field, value, operator, doctype) + self._apply_filter(field, value, operator, doctype, collect=collect) else: raise ValueError(f"Unknown filter format: {filter}") - def apply_dict_filters(self, filters: dict[str, FilterValue | list]): + def apply_dict_filters(self, filters: dict[str, FilterValue | list], collect: list | None = None): for field, value in filters.items(): operator = "=" if isinstance(value, list | tuple): operator, value = value - self._apply_filter(field, value, operator) + self._apply_filter(field, value, operator, collect=collect) def _apply_filter( self, @@ -274,16 +420,20 @@ class Engine: value: FilterValue | list | set | None, operator: str = "=", doctype: str | None = None, + collect: list | None = None, ): """Applies a simple filter condition to the query.""" criterion = self._build_criterion_for_simple_filter(field, value, operator, doctype) if criterion: - self.query = self.query.where(criterion) + if collect is not None: + collect.append(criterion) + else: + self.query = self.query.where(criterion) def _build_criterion_for_simple_filter( self, field: str | Field, - value: FilterValue | list | set | None, + value: FilterValue | Column | list | set | None, operator: str = "=", doctype: str | None = None, ) -> "Criterion | None": @@ -291,12 +441,28 @@ class Engine: import operator as builtin_operator _field = self._validate_and_prepare_filter_field(field, doctype) - _value = convert_to_value(value) + + if isinstance(value, Column): + _value = self._validate_and_prepare_filter_field(value.name, doctype) + else: + # Regular value processing for literal comparisons like: table.field = 'value' + _value = convert_to_value(value) _operator = operator + # For Date fields with datetime values, convert to date to match db_query behavior + if isinstance(_value, datetime.datetime) or ( + isinstance(_value, list | tuple) and any(isinstance(v, datetime.datetime) for v in _value) + ): + _value = _apply_date_field_filter_conversion(_value, _operator, doctype or self.doctype, field) + if not _value and isinstance(_value, list | tuple | set): _value = ("",) + # db_query compatibility: handle None values for 'in' and 'not in' operators + # In db_query, None values are converted to empty tuples for these operators + if self.db_query_compat and _value is None and _operator.casefold() in ("in", "not in"): + _value = ("",) + if _operator in NESTED_SET_OPERATORS: hierarchy = _operator docname = _value @@ -325,8 +491,58 @@ class Engine: operator_fn = OPERATOR_MAP[_operator.casefold()] if _value is None and isinstance(_field, Field): - return _field.isnotnull() if operator_fn == builtin_operator.ne else _field.isnull() + if operator_fn == builtin_operator.ne: + filter_field_name = ( + field + if isinstance(field, str) + else (_field.name if hasattr(_field, "name") else str(_field)) + ) + if "." in filter_field_name: + filter_field_name = filter_field_name.split(".")[-1] + + target_doctype = doctype or self.doctype + fallback_sql = self._get_ifnull_fallback(target_doctype, filter_field_name) + + if fallback_sql == "''": + fallback_value = "" + elif fallback_sql.startswith("'") and fallback_sql.endswith("'"): + fallback_value = fallback_sql[1:-1] + else: + try: + fallback_value = int(fallback_sql) + except (ValueError, TypeError): + fallback_value = fallback_sql + + return operator_fn(_field, ValueWrapper(fallback_value)) + else: + return _field.isnull() else: + filter_field_name = ( + field if isinstance(field, str) else (_field.name if hasattr(_field, "name") else str(_field)) + ) + + if "." in filter_field_name: + filter_field_name = filter_field_name.split(".")[-1] + + target_doctype = doctype or self.doctype + + # Skip applying ifnull if field already has null-handling function + if isinstance(_field, functions.IfNull | functions.Coalesce): + return operator_fn(_field, _value) + + if self._should_apply_ifnull(target_doctype, filter_field_name, _operator, _value): + fallback_sql = self._get_ifnull_fallback(target_doctype, filter_field_name) + if fallback_sql == "''": + fallback_value = "" + elif fallback_sql.startswith("'") and fallback_sql.endswith("'"): + fallback_value = fallback_sql[1:-1] + else: + try: + fallback_value = int(fallback_sql) + except (ValueError, TypeError): + fallback_value = fallback_sql + _field = functions.IfNull(_field, ValueWrapper(fallback_value)) + return operator_fn(_field, _value) def _parse_nested_filters(self, nested_list: list | tuple) -> "Criterion | None": @@ -398,10 +614,12 @@ class Engine: field, value, operator, doctype = None, None, None, None # Determine structure based on length and types - if len(condition) == 3 and isinstance(condition[1], str) and condition[1] in OPERATOR_MAP: + if len(condition) == 3 and isinstance(condition[1], str) and condition[1].lower() in OPERATOR_MAP: # [field, operator, value] field, operator, value = condition - elif len(condition) == 4 and isinstance(condition[2], str) and condition[2] in OPERATOR_MAP: + elif ( + len(condition) == 4 and isinstance(condition[2], str) and condition[2].lower() in OPERATOR_MAP + ): # [doctype, field, operator, value] doctype, field, operator, value = condition elif len(condition) == 2: @@ -421,10 +639,17 @@ class Engine: # return if field is already a pypika Term return field - # Reject backticks + # Parse backtick table.field notation: `tabDocType`.`fieldname` if "`" in field: + if parsed := self._parse_backtick_field_notation(field): + table_name, field_name = parsed + + # Return query builder field reference + return frappe.qb.DocType(table_name)[field_name] + + # If parsing failed, fall through to error handling below frappe.throw( - _("Filter fields cannot contain backticks (`)."), + _("Filter fields have invalid backtick notation: {0}").format(field), frappe.ValidationError, title=_("Invalid Filter"), ) @@ -508,6 +733,44 @@ class Engine: return child_field_handler.field else: # Field belongs to the main doctype or doctype wasn't specified differently + # If doctype wasn't specified, and the field isn't a standard field and doesn't exist in main doctype, check child tables + from frappe.model import child_table_fields, default_fields, optional_fields + + if self.doctype in CORE_DOCTYPES: + meta = None + else: + try: + meta = frappe.get_meta(self.doctype) + except frappe.DoesNotExistError: + meta = None + + if ( + meta + and not doctype + and target_fieldname not in default_fields + optional_fields + child_table_fields + and not meta.has_field(target_fieldname) + ): + for df in meta.get_table_fields(include_computed=True): + try: + child_meta = frappe.get_meta(df.options) + except frappe.DoesNotExistError: + continue + + if child_meta.has_field(target_fieldname): + # Found in child table, create handler for it + child_field_handler = ChildTableField( + doctype=df.options, + fieldname=target_fieldname, + parent_doctype=self.doctype, + parent_fieldname=df.fieldname, + ) + parent_doctype_for_perm = self.doctype + self._check_field_permission( + df.options, target_fieldname, parent_doctype_for_perm + ) + self.query = child_field_handler.apply_join(self.query) + return child_field_handler.field + self._check_field_permission(target_doctype, target_fieldname, parent_doctype_for_perm) # Convert string field name to pypika Field object for the specified/current doctype return frappe.qb.DocType(target_doctype)[target_fieldname] @@ -517,6 +780,11 @@ class Engine: if not self.apply_permissions: return + # Skip field permission check if doctype has no permissions defined + meta = frappe.get_meta(doctype) + if not meta.get_permissions(parenttype=parent_doctype): + return + permission_type = self.get_permission_type(doctype) permitted_fields = get_permitted_fields( doctype=doctype, @@ -526,6 +794,9 @@ class Engine: user=self.user, ) + if fieldname in OPTIONAL_COLUMNS: + return + if fieldname not in permitted_fields: frappe.throw( _("You do not have permission to access field: {0}").format( @@ -575,7 +846,9 @@ class Engine: # Ensure the extracted table name is valid before creating DocType object if not TABLE_NAME_PATTERN.match(table_name.lstrip("tab")): frappe.throw(_("Invalid characters in table name: {0}").format(table_name)) - table_obj = frappe.qb.DocType(table_name) + + doctype_name = table_name[3:] if table_name.startswith("tab") else table_name + table_obj = frappe.qb.DocType(doctype_name) pypika_field = table_obj[field_name] else: # Simple field name (e.g., `y` or y) - use the main table @@ -617,8 +890,7 @@ class Engine: for item in initial_field_list: if isinstance(item, str): # Sanitize and split potentially comma-separated strings within the list - sanitized_item = _sanitize_field(item.strip(), self.is_mariadb).strip() - if sanitized_item: + if sanitized_item := _sanitize_field(item.strip(), self.is_mariadb).strip(): parsed = self._parse_single_field_item(sanitized_item) if isinstance(parsed, list): # Result from parsing a child query dict _fields.extend(parsed) @@ -635,24 +907,27 @@ class Engine: return _fields def _parse_single_field_item( - self, field: str | Criterion | dict | Field + self, field: str | Criterion | dict | Field | Term ) -> "list | Criterion | Field | DynamicTableField | ChildQuery | None": """Parses a single item from the fields list/tuple. Assumes comma-separated strings have already been split.""" - if isinstance(field, Criterion | Field): + if isinstance(field, Term): + # Accept any pypika Term (Field, Criterion, ArithmeticExpression, AggregateFunction, etc.) return field elif isinstance(field, dict): - # Check if it's a SQL function dictionary + # Check if it's a SQL function or operator dictionary function_parser = SQLFunctionParser(engine=self) if function_parser.is_function_dict(field): return function_parser.parse_function(field) + elif function_parser.is_operator_dict(field): + return function_parser.parse_operator(field) else: # Handle child queries defined as dicts {fieldname: [child_fields]} _parsed_fields = [] for child_field, child_fields_list in field.items(): - # Skip uppercase keys as they might be unsupported SQL functions + # Skip uppercase keys as they might be unsupported SQL functions or operators if child_field.isupper(): frappe.throw( - _("Unsupported function or invalid field name: {0}").format(child_field), + _("Unsupported function or operator: {0}").format(child_field), frappe.ValidationError, ) @@ -683,12 +958,109 @@ class Engine: def apply_order_by(self, order_by: str | None): if not order_by or order_by == DefaultOrderBy: + self._apply_default_order_by() return parsed_order_fields = self._validate_order_by(order_by) for order_field, order_direction in parsed_order_fields: self.query = self.query.orderby(order_field, order=order_direction) + def _apply_default_order_by(self): + """Apply default ordering based on configured DocType metadata""" + from pypika.enums import Order + + sort_field, sort_order = get_doctype_sort_info(self.doctype) + + # Handle multiple sort fields + if "," in sort_field: + for sort_spec in sort_field.split(","): + if parts := sort_spec.strip().split(maxsplit=1): + field_name = parts[0] + spec_order = parts[1].lower() if len(parts) > 1 else sort_order.lower() + field = self.table[field_name] + if self.db_query_compat: + order_direction = Order.desc if spec_order == "desc" else Order.asc + else: + order_direction = Order.asc if spec_order == "asc" else Order.desc + self.query = self.query.orderby(field, order=order_direction) + else: + field = self.table[sort_field] + if self.db_query_compat: + order_direction = Order.desc if sort_order.lower() == "desc" else Order.asc + else: + order_direction = Order.asc if sort_order.lower() == "asc" else Order.desc + self.query = self.query.orderby(field, order=order_direction) + + def _parse_backtick_field_notation(self, field_name: str) -> tuple[str, str] | None: + """ + Parse backtick field notation like `tabDocType`.`fieldname` or `tabDocType`.fieldname and return (table_name, field_name). + Uses sqlparse for robust SQL parsing with Identifier support. + Returns None if the notation is invalid. + """ + import sqlparse + from sqlparse.sql import Identifier + + # Parse the field name as SQL + parsed = sqlparse.parse(field_name.strip()) + if not parsed or not parsed[0].tokens: + return None + + tokens = parsed[0].tokens + + # Filter out whitespace tokens + non_ws_tokens = [t for t in tokens if not t.is_whitespace] + + if len(non_ws_tokens) != 1: + return None + + # Check if it's an Identifier (which handles table.field notation) + first_token = non_ws_tokens[0] + if not isinstance(first_token, Identifier): + return None + + # Get the sub-tokens within the identifier + # Should have: `tabTable` (Name), `.` (Punctuation), `fieldname` (Name) + identifier_tokens = [t for t in first_token.tokens if not t.is_whitespace] + + if len(identifier_tokens) != 3: + return None + + table_token = identifier_tokens[0] + dot_token = identifier_tokens[1] + field_token = identifier_tokens[2] + + # Verify the dot + if str(dot_token).strip() != ".": + return None + + # Extract and validate table name (should be backtick-quoted) + table_str = str(table_token).strip() + if not (table_str.startswith("`") and table_str.endswith("`")): + return None + + # Extract field name (can be backtick-quoted or unquoted) + field_str = str(field_token).strip() + # Remove backticks if present + if field_str.startswith("`") and field_str.endswith("`"): + field_str = field_str[1:-1] + + # Remove backticks from table name + table_name = table_str[1:-1] + field_name = field_str + + # Validate table name starts with "tab" + if not table_name.startswith("tab"): + return None + + # Extract doctype name by stripping "tab" prefix + doctype_name = table_name[3:] + + # Validate doctype name is not empty and table actually exists + if not doctype_name or not frappe.db.table_exists(doctype_name): + return None + + return (doctype_name, field_name) + def _validate_and_parse_field_for_clause(self, field_name: str, clause_name: str) -> Field: """ Common helper to validate and parse field names for GROUP BY and ORDER BY clauses. @@ -704,10 +1076,19 @@ class Engine: # For numeric field references, return as-is (will be handled by caller) return field_name - # Reject backticks + # Allow function aliases - return as Field (no table prefix) + if field_name in self.function_aliases: + return Field(field_name) + + # Parse backtick table.field notation: `tabDocType`.`fieldname` if "`" in field_name: + if parsed := self._parse_backtick_field_notation(field_name): + table_name, field_name = parsed + return frappe.qb.DocType(table_name)[field_name] + + # If parsing failed, fall through to error handling below frappe.throw( - _("{0} fields cannot contain backticks (`): {1}").format(clause_name, field_name), + _("{0} has invalid backtick notation: {1}").format(clause_name, field_name), frappe.ValidationError, ) @@ -758,8 +1139,12 @@ class Engine: if not field_name: continue - parsed_field = self._validate_and_parse_field_for_clause(field_name, "Group By") - parsed_fields.append(parsed_field) + # Skip permission check for optional system columns in group_by + if field_name in OPTIONAL_COLUMNS: + parsed_fields.append(self.table[field_name]) + else: + parsed_field = self._validate_and_parse_field_for_clause(field_name, "Group By") + parsed_fields.append(parsed_field) return parsed_fields @@ -773,20 +1158,28 @@ class Engine: for declaration in order_by.split(","): if _order_by := declaration.strip(): + # Extract direction from end of declaration (handles backtick identifiers with spaces) + # Check if the last word is a valid direction parts = _order_by.split() - field_name = parts[0] direction = None - if len(parts) > 1: - direction = parts[1].lower() + field_name = _order_by - order_direction = Order.asc if direction == "asc" else Order.desc + if len(parts) > 1 and parts[-1].lower() in valid_directions: + # Last part is a direction, so field_name is everything before it + direction = parts[-1].lower() + field_name = " ".join(parts[:-1]) + + if self.db_query_compat: + order_direction = Order.desc if direction == "desc" else Order.asc + else: + order_direction = Order.asc if direction == "asc" else Order.desc parsed_field = self._validate_and_parse_field_for_clause(field_name, "Order By") parsed_order_fields.append((parsed_field, order_direction)) if direction and direction not in valid_directions: frappe.throw( - _("Invalid direction in Order By: {0}. Must be 'ASC' or 'DESC'.").format(parts[1]), + _("Invalid direction in Order By: {0}. Must be 'ASC' or 'DESC'.").format(direction), ValueError, ) @@ -804,9 +1197,12 @@ class Engine: ) if not has_permission("select") and not has_permission("read"): - frappe.throw( - _("Insufficient Permission for {0}").format(frappe.bold(self.doctype)), frappe.PermissionError - ) + # Check for shared documents + if not frappe.share.get_shared(self.doctype, self.user): + frappe.throw( + _("Insufficient Permission for {0}").format(frappe.bold(self.doctype)), + frappe.PermissionError, + ) def apply_field_permissions(self): """Filter the list of fields based on permlevel.""" @@ -886,8 +1282,8 @@ class Engine: elif hasattr(field, "alias") and field.alias and field.name in permitted_fields_set: allowed_fields.append(field) - elif isinstance(field, PseudoColumnMapper): - # Typically functions or complex terms + elif isinstance(field, Term): + # Allow any Term subclass, like LiteralValue (raw SQL expressions), AggregateFunction, PseudoColumnMapper (functions or complex terms) allowed_fields.append(field) return allowed_fields @@ -935,7 +1331,7 @@ class Engine: if strict_user_permissions: conditions.append(self.table[field_name].isin(docs)) else: - empty_value_condition = self.table[field_name].isnull() + empty_value_condition = functions.IfNull(self.table[field_name], "") == "" value_condition = self.table[field_name].isin(docs) conditions.append(empty_value_condition | value_condition) @@ -962,6 +1358,17 @@ class Engine: user_perm_conditions, fetch_shared = self.get_user_permission_conditions(role_permissions) conditions.extend(user_perm_conditions) fetch_shared_docs = fetch_shared_docs or fetch_shared + else: + # No role permissions - check if user has any user permissions + # If not, must check for shared documents (like db_query does) + user_permissions = frappe.permissions.get_user_permissions(self.user) + doctype_user_permissions = user_permissions.get(self.doctype, []) + has_user_perm = any( + not perm.get("applicable_for") or perm.get("applicable_for") == self.reference_doctype + for perm in doctype_user_permissions + ) + if not has_user_perm: + fetch_shared_docs = True permission_query_conditions = self.get_permission_query_conditions() if permission_query_conditions: @@ -992,13 +1399,13 @@ class Engine: for method in condition_methods: if c := frappe.call(frappe.get_attr(method), self.user, doctype=self.doctype): - conditions.append(RawCriterion(c)) + conditions.append(RawCriterion(f"({c})")) # Get conditions from server scripts if permission_script_name := get_server_script_map().get("permission_query", {}).get(self.doctype): script = frappe.get_doc("Server Script", permission_script_name) if condition := script.get_permission_query_conditions(self.user): - conditions.append(RawCriterion(condition)) + conditions.append(RawCriterion(f"({condition})")) return conditions @@ -1026,6 +1433,132 @@ class Engine: # because either of those is required to perform a query return True + def _is_field_nullable(self, doctype: str, fieldname: str) -> bool: + """Check if a field can contain NULL values.""" + # primary key is never nullable, modified is usually indexed by default and always present + if fieldname in ("name", "modified", "creation"): + return False + + try: + # Use cached meta to avoid recursion when loading meta + if (meta := frappe.client_cache.get_value(f"doctype_meta::{doctype}")) is None: + return True + + if (df := meta.get_field(fieldname)) is None: + return True + + except Exception: + return True + + if df.fieldtype in ("Check", "Float", "Int", "Currency", "Percent"): + return False + + if getattr(df, "not_nullable", False): + return False + + return True + + def _get_ifnull_fallback(self, doctype: str, fieldname: str) -> str: + """Get type-appropriate fallback value for NULL comparisons.""" + try: + meta = frappe.get_meta(doctype) + df = meta.get_field(fieldname) + except Exception: + return "''" + + if df is None: + return "''" + + fieldtype = df.fieldtype + + if fieldtype in ("Link", "Data", "Dynamic Link"): + return "''" + + if fieldtype in ("Date", "Datetime"): + return "'0001-01-01'" + + if fieldtype == "Time": + return "'00:00:00'" + + if fieldtype in ("Float", "Int", "Currency", "Percent"): + return "0" + + try: + db_type_info = frappe.db.type_map.get(fieldtype, ("varchar",)) + if db_type_info: + db_type = db_type_info[0] if isinstance(db_type_info, (tuple, list)) else db_type_info + if db_type in ("varchar", "text", "longtext", "smalltext", "json"): + return "''" + except Exception: + pass + + return "''" + + def _should_apply_ifnull(self, doctype: str, fieldname: str, operator: str, value: Any) -> bool: + """Determine if IFNULL wrapping is needed for a filter condition.""" + # Skip this if we don't need db_query compatibility + if not self.db_query_compat: + return False + + if not self._is_field_nullable(doctype, fieldname): + return False + + if value is None: + return False + + if operator.lower() in ("like", "is"): + return False + + # For "=" operator, only skip IFNULL if value is truthy (non-empty string, non-zero, etc) + # When value is empty string "", we need to check for NULL values too + if operator.lower() == "=" and value: + return False + + try: + meta = frappe.get_meta(doctype) + df = meta.get_field(fieldname) + except Exception: + df = None + + is_datetime_field = df and df.fieldtype in ("Date", "Datetime") if df else False + is_creation_or_modified = fieldname in ("creation", "modified") + + if operator.lower() in (">", ">="): + # Null values can never be greater than any non-null value + if is_datetime_field or is_creation_or_modified: + return False + + if operator.lower() == "between": + # Between operator never needs to check for null + # Explanation: Consider SQL -> `COLUMN between X and Y` + # Actual computation: + # for row in rows: + # if Y > row.COLUMN > X: + # yield row + + # Since Y and X can't be null, null value in column will never match filter, so + # coalesce is extra cost that prevents index usage + if is_datetime_field or is_creation_or_modified: + return False + + if operator.lower() == "in": + if isinstance(value, (list, tuple)): + # if values contain '' or falsy values then only coalesce column + # for `in` query this is only required if values contain '' or values are empty. + has_null_or_empty = any(v is None or v == "" for v in value) + return has_null_or_empty + return False + + # for `not in` queries we can't be sure as column values might contain null. + if operator.lower() == "not in": + return True + + if operator.lower() == "<": + if is_datetime_field or is_creation_or_modified: + return True + + return True + class Permission: @classmethod @@ -1296,6 +1829,15 @@ def _validate_select_field(field: str): if field.isdigit(): return + # Reject SQL functions + if _is_function_call(field): + frappe.throw( + _( + "SQL functions are not allowed in SELECT fields: {0}. Use the query builder API with functions instead." + ).format(field), + frappe.ValidationError, + ) + if ALLOWED_FIELD_PATTERN.match(field): return @@ -1365,40 +1907,48 @@ class SQLFunctionParser: def is_function_dict(self, field_dict: dict) -> bool: """Check if a dictionary represents a SQL function definition.""" - function_keys = [k for k in field_dict.keys() if k != "as"] + function_keys = [k for k in field_dict.keys() if k.lower() != "as"] return len(function_keys) == 1 and function_keys[0] in FUNCTION_MAPPING - def parse_function(self, function_dict: dict) -> Field: - """Parse a SQL function dictionary into a pypika function call.""" - function_name = None - alias = None - function_args = None + def is_operator_dict(self, field_dict: dict) -> bool: + """Check if a dictionary represents an arithmetic operator expression. - for key, value in function_dict.items(): - if key == "as": + Example: {"ADD": [1, 2], "as": "sum"} or {"DIV": ["total", "count"]} + """ + operator_keys = [k for k in field_dict.keys() if k.lower() != "as"] + return len(operator_keys) == 1 and operator_keys[0] in OPERATOR_MAPPING + + def _extract_dict_components(self, d: dict, valid_keys: dict, error_msg: str) -> tuple: + """Extract name, alias, and args from function/operator dict.""" + name = None + alias = None + args = None + + for key, value in d.items(): + if key.lower() == "as": alias = value else: - function_name = key - function_args = value + name = key + args = value - if not function_name: - frappe.throw(_("Invalid function dictionary format"), frappe.ValidationError) + if not name: + frappe.throw(_("Invalid {0} dictionary format").format(error_msg), frappe.ValidationError) - if function_name not in FUNCTION_MAPPING: - frappe.throw( - _("Unsupported function or invalid field name: {0}").format(function_name), - frappe.ValidationError, - ) + if name not in valid_keys: + frappe.throw(_("Unsupported {0}: {1}").format(error_msg, name), frappe.ValidationError) if alias: self._validate_alias(alias) - func_class = FUNCTION_MAPPING.get(function_name) - if not func_class: - frappe.throw( - _("Unsupported function or invalid field name: {0}").format(function_name), - frappe.ValidationError, - ) + return name, alias, args + + def parse_function(self, function_dict: dict) -> Field: + """Parse a SQL function dictionary into a pypika function call.""" + function_name, alias, function_args = self._extract_dict_components( + function_dict, FUNCTION_MAPPING, "function or invalid field name" + ) + + func_class = FUNCTION_MAPPING[function_name] if isinstance(function_args, str): parsed_arg = self._parse_and_validate_argument(function_args) @@ -1428,22 +1978,80 @@ class SQLFunctionParser: ) if alias: + self.engine.function_aliases.add(alias) return function_call.as_(alias) else: return function_call + def parse_operator(self, operator_dict: dict) -> ArithmeticExpression: + """Parse an arithmetic operator dictionary into a pypika ArithmeticExpression. + + Operators require exactly 2 arguments (left and right operands). + Arguments can be: numbers, field names, nested functions, or nested operators. + Example: {"DIV": [1, {"NULLIF": [{"LOCATE": ["'test'", "name"]}, 0]}]} + """ + operator_name, alias, operator_args = self._extract_dict_components( + operator_dict, OPERATOR_MAPPING, "operator" + ) + + operator = OPERATOR_MAPPING[operator_name] + + # Operators require exactly 2 arguments (left and right operands) + if not isinstance(operator_args, list) or len(operator_args) != 2: + frappe.throw( + _("Operator {0} requires exactly 2 arguments (left and right operands)").format( + operator_name + ), + frappe.ValidationError, + ) + + # Parse and validate both operands (supports nested functions/operators) + left = self._parse_and_validate_argument(operator_args[0]) + right = self._parse_and_validate_argument(operator_args[1]) + + # Wrap raw values (numbers, strings) in ValueWrapper so pypika can process them + if not isinstance(left, Term): + left = ValueWrapper(left) + if not isinstance(right, Term): + right = ValueWrapper(right) + + expression = ArithmeticExpression(operator=operator, left=left, right=right) + + if alias: + self.engine.function_aliases.add(alias) + return expression.as_(alias) + else: + return expression + def _parse_and_validate_argument(self, arg): - """Parse and validate a single function argument against SQL injection.""" + """Parse and validate a single function/operator argument against SQL injection. + + Supports: + - Numbers: 1, 2.5, etc. + - Strings: field names or quoted literals + - Nested dicts: functions {"COUNT": "name"} or operators {"ADD": [1, 2]} + """ if isinstance(arg, (int | float)): return arg elif isinstance(arg, str): return self._validate_string_argument(arg) + elif isinstance(arg, dict): + # Recursively handle nested functions and operators + if self.is_function_dict(arg): + return self.parse_function(arg) + elif self.is_operator_dict(arg): + return self.parse_operator(arg) + else: + frappe.throw( + _("Invalid nested expression: dictionary must represent a function or operator"), + frappe.ValidationError, + ) elif arg is None: # None is allowed for some functions return arg else: frappe.throw( - _("Invalid argument type: {0}. Only strings, numbers, and None are allowed.").format( + _("Invalid argument type: {0}. Only strings, numbers, dicts, and None are allowed.").format( type(arg).__name__ ), frappe.ValidationError, @@ -1456,15 +2064,39 @@ class SQLFunctionParser: if not arg: frappe.throw(_("Empty string arguments are not allowed"), frappe.ValidationError) + # Special case: allow '*' for COUNT(*) and similar aggregate functions + if arg == "*": + # Return as-is for SQL star expansion (COUNT(*), etc.) + # pypika will handle this correctly when used with aggregate functions + return Column("*") + # Check for string literals (quoted strings) if self._is_string_literal(arg): return self._validate_string_literal(arg) + # Check for backtick notation: `tabDocType`.`fieldname` + # Parse and return as Field object to preserve field reference in operators + elif "`" in arg: + if parsed := self.engine._parse_backtick_field_notation(arg): + table_name, field_name = parsed + return Table(f"tab{table_name}")[field_name] + else: + frappe.throw( + _( + "Invalid argument format: {0}. Only quoted string literals or simple field names are allowed." + ).format(arg), + frappe.ValidationError, + ) + elif self._is_valid_field_name(arg): # Validate field name and check permissions self._validate_function_field_arg(arg) return self.engine.table[arg] + # Check if it's a numeric string like "1" (for COUNT(1), etc.) + elif arg.isdigit(): + return int(arg) + else: frappe.throw( _( diff --git a/frappe/database/utils.py b/frappe/database/utils.py index 5685b5ad00..0ceb9bd440 100644 --- a/frappe/database/utils.py +++ b/frappe/database/utils.py @@ -3,6 +3,7 @@ import re import string +from collections.abc import KeysView, ValuesView from functools import cached_property, wraps import frappe @@ -31,6 +32,10 @@ QUERY_TYPE_PATTERN = re.compile(r"\s*([A-Za-z]*)") def convert_to_value(o: FilterValue): if isinstance(o, bool): return int(o) + elif isinstance(o, dict): + return frappe.as_json(o) + elif isinstance(o, (KeysView, ValuesView)): + return tuple(convert_to_value(item) for item in o) return o @@ -53,6 +58,28 @@ def get_doctype_name(table_name: str) -> str: return table_name.replace('"', "") +def get_doctype_sort_info(doctype: str) -> tuple[str, str]: + """ + Get sort_field and sort_order for a DocType from meta. + + Args: + doctype: The DocType name + + Returns: + Tuple of (sort_field, sort_order) with defaults ("creation", "DESC") if not found + """ + from frappe.database.query import CORE_DOCTYPES + + if doctype in CORE_DOCTYPES: + return "creation", "DESC" + + try: + meta = frappe.get_meta(doctype) + return meta.sort_field or "creation", meta.sort_order or "DESC" + except frappe.DoesNotExistError: + return "creation", "DESC" + + class LazyString: def _setup(self) -> str: raise NotImplementedError diff --git a/frappe/desk/dashboard_chart/email_activity/email_activity.json b/frappe/desk/dashboard_chart/email_activity/email_activity.json new file mode 100644 index 0000000000..4c5b142b5c --- /dev/null +++ b/frappe/desk/dashboard_chart/email_activity/email_activity.json @@ -0,0 +1,34 @@ +{ + "based_on": "creation", + "chart_name": "Email Activity", + "chart_type": "Count", + "creation": "2025-09-08 11:26:02.676908", + "currency": "", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Email Queue", + "dynamic_filters_json": "[]", + "filters_json": "[]", + "group_by_type": "Count", + "idx": 0, + "is_public": 0, + "is_standard": 1, + "last_synced_on": "2025-09-08 11:26:32.458436", + "modified": "2025-09-08 11:26:42.394911", + "modified_by": "Administrator", + "module": "Desk", + "name": "Email Activity", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "show_values_over_chart": 0, + "source": "", + "time_interval": "Daily", + "timeseries": 1, + "timespan": "Last Week", + "type": "Line", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} diff --git a/frappe/desk/dashboard_chart/login/login.json b/frappe/desk/dashboard_chart/login/login.json new file mode 100644 index 0000000000..948fa22747 --- /dev/null +++ b/frappe/desk/dashboard_chart/login/login.json @@ -0,0 +1,34 @@ +{ + "based_on": "communication_date", + "chart_name": "Login", + "chart_type": "Count", + "creation": "2025-08-28 16:48:49.946848", + "currency": "INR", + "docstatus": 0, + "doctype": "Dashboard Chart", + "document_type": "Activity Log", + "dynamic_filters_json": "[]", + "filters_json": "[[\"Activity Log\",\"status\",\"=\",\"Success\",false]]", + "group_by_type": "Count", + "idx": 0, + "is_public": 0, + "is_standard": 1, + "last_synced_on": "2025-09-11 03:02:03.338607", + "modified": "2025-09-11 03:02:10.575994", + "modified_by": "Administrator", + "module": "Desk", + "name": "Login", + "number_of_groups": 0, + "owner": "Administrator", + "parent_document_type": "", + "roles": [], + "show_values_over_chart": 0, + "source": "", + "time_interval": "Daily", + "timeseries": 1, + "timespan": "Last Week", + "type": "Line", + "use_report_chart": 0, + "value_based_on": "", + "y_axis": [] +} diff --git a/frappe/desk/desktop.py b/frappe/desk/desktop.py index ec57ef8e96..95d1c92556 100644 --- a/frappe/desk/desktop.py +++ b/frappe/desk/desktop.py @@ -707,3 +707,8 @@ def update_onboarding_step(name, field, value): frappe.db.set_value("Onboarding Step", name, field, value) capture(frappe.scrub(name), app="frappe_onboarding", properties={field: value}) + + +@frappe.whitelist() +def get_installed_apps(): + return frappe.get_installed_apps() diff --git a/frappe/desk/doctype/dashboard_chart/dashboard_chart.py b/frappe/desk/doctype/dashboard_chart/dashboard_chart.py index b91b338ddb..44355b943f 100644 --- a/frappe/desk/doctype/dashboard_chart/dashboard_chart.py +++ b/frappe/desk/doctype/dashboard_chart/dashboard_chart.py @@ -201,7 +201,7 @@ def get_chart_config(chart, filters, timespan, timegrain, from_date, to_date): data = frappe.get_list( doctype, - fields=[datefield, f"SUM({value_field})", "COUNT(*)"], + fields=[datefield, {"SUM": value_field}, {"COUNT": "*"}], filters=filters, group_by=datefield, order_by=datefield, @@ -244,7 +244,7 @@ def get_heatmap_chart_config(chart, filters, heatmap_year): doctype, fields=[ timestamp_field, - f"{aggregate_function}({value_field})", + {aggregate_function: value_field}, ], filters=filters, group_by=f"date({datefield})", @@ -270,7 +270,7 @@ def get_group_by_chart_config(chart, filters) -> dict | None: doctype, fields=[ f"{group_by_field} as name", - f"{aggregate_function}({value_field}) as count", + {aggregate_function: value_field, "as": "count"}, ], filters=filters, parent_doctype=chart.parent_document_type, diff --git a/frappe/desk/doctype/desktop_icon/desktop_icon.js b/frappe/desk/doctype/desktop_icon/desktop_icon.js index 72ef1f7a12..28a2a680c5 100644 --- a/frappe/desk/doctype/desktop_icon/desktop_icon.js +++ b/frappe/desk/doctype/desktop_icon/desktop_icon.js @@ -2,5 +2,31 @@ // For license information, please see license.txt frappe.ui.form.on("Desktop Icon", { - refresh: function (frm) {}, + setup: function (frm) { + frm.set_query("parent_icon", function () { + return { + filters: { + icon_type: ["in", ["Folder", "App"]], + }, + }; + }); + }, + refresh: function (frm) { + if (frm.doc.link_to && frm.doc.link_type) { + frm.add_custom_button( + __("Workspace Sidebar"), + function () { + frappe.new_doc("Workspace Sidebar", {}, (doc) => { + doc.title = frm.doc.label; + doc.header_icon = frm.doc.icon; + let sidebar_item = frappe.model.add_child(doc, "items"); + sidebar_item.label = frm.doc.link_to; + sidebar_item.link_to = frm.doc.link_to; + sidebar_item.link_type = frm.doc.link_type; + }); + }, + __("Create") + ); + } + }, }); diff --git a/frappe/desk/doctype/desktop_icon/desktop_icon.json b/frappe/desk/doctype/desktop_icon/desktop_icon.json index 1e42a6d468..29ddf8aeb0 100644 --- a/frappe/desk/doctype/desktop_icon/desktop_icon.json +++ b/frappe/desk/doctype/desktop_icon/desktop_icon.json @@ -1,41 +1,34 @@ { "actions": [], + "allow_rename": 1, + "autoname": "field:label", "creation": "2016-02-22 03:47:45.387068", "doctype": "DocType", "engine": "InnoDB", "field_order": [ - "module_name", "label", "standard", - "custom", + "icon_type", + "link_type", + "link_to", + "parent_icon", + "sidebar", "column_break_3", "app", - "description", - "category", - "hidden", - "blocked", - "force_show", - "section_break_7", - "type", - "_doctype", - "_report", - "link", - "column_break_10", - "color", "icon", - "reverse", - "idx" + "logo_url", + "idx", + "link", + "hidden", + "roles_tab", + "roles" ], "fields": [ - { - "fieldname": "module_name", - "fieldtype": "Data", - "label": "Module Name" - }, { "fieldname": "label", "fieldtype": "Data", - "label": "Label" + "label": "Label", + "unique": 1 }, { "default": "0", @@ -44,32 +37,54 @@ "in_list_view": 1, "label": "Standard" }, - { - "default": "0", - "fieldname": "custom", - "fieldtype": "Check", - "label": "Custom", - "read_only": 1 - }, { "fieldname": "column_break_3", "fieldtype": "Column Break" }, { - "fieldname": "app", - "fieldtype": "Data", - "label": "App", - "read_only": 1 - }, - { - "fieldname": "description", + "fieldname": "link", "fieldtype": "Small Text", - "label": "Description" + "label": "Link" }, { - "fieldname": "category", + "fieldname": "icon", + "fieldtype": "Icon", + "label": "Icon" + }, + { + "fieldname": "idx", + "fieldtype": "Int", + "label": "Idx" + }, + { + "fieldname": "logo_url", "fieldtype": "Data", - "label": "Category" + "label": "Logo URL" + }, + { + "fieldname": "icon_type", + "fieldtype": "Select", + "label": "Icon Type", + "options": "Folder\nApp\nLink" + }, + { + "depends_on": "eval: doc.standard == 1", + "fieldname": "app", + "fieldtype": "Autocomplete", + "label": "App", + "options": "Installed Applications" + }, + { + "fieldname": "link_to", + "fieldtype": "Dynamic Link", + "label": "Link To", + "options": "link_type" + }, + { + "fieldname": "parent_icon", + "fieldtype": "Link", + "label": "Parent Icon", + "options": "Desktop Icon" }, { "default": "0", @@ -78,79 +93,37 @@ "label": "Hidden" }, { - "default": "0", - "fieldname": "blocked", - "fieldtype": "Check", - "label": "Blocked" - }, - { - "default": "0", - "fieldname": "force_show", - "fieldtype": "Check", - "label": "Force Show", - "read_only": 1 - }, - { - "fieldname": "section_break_7", - "fieldtype": "Section Break" - }, - { - "fieldname": "type", + "fieldname": "link_type", "fieldtype": "Select", "in_list_view": 1, "in_standard_filter": 1, - "label": "Type", - "options": "module\nlist\nlink\npage\nquery-report" + "label": "Link Type", + "options": "DocType\nWorkspace\nExternal" }, { - "fieldname": "_doctype", + "fieldname": "roles_tab", + "fieldtype": "Tab Break", + "label": "Roles" + }, + { + "fieldname": "roles", + "fieldtype": "Table", + "label": "Roles", + "options": "Has Role" + }, + { + "fieldname": "sidebar", "fieldtype": "Link", - "label": "_doctype", - "options": "DocType" - }, - { - "fieldname": "_report", - "fieldtype": "Link", - "label": "_report", - "options": "Report" - }, - { - "fieldname": "link", - "fieldtype": "Small Text", - "label": "Link" - }, - { - "fieldname": "column_break_10", - "fieldtype": "Column Break" - }, - { - "fieldname": "color", - "fieldtype": "Data", - "label": "Color" - }, - { - "fieldname": "icon", - "fieldtype": "Data", - "label": "Icon" - }, - { - "default": "0", - "fieldname": "reverse", - "fieldtype": "Check", - "label": "Reverse Icon Color" - }, - { - "fieldname": "idx", - "fieldtype": "Int", - "label": "Idx" + "label": "Sidebar", + "options": "Workspace Sidebar" } ], - "in_create": 1, "links": [], - "modified": "2024-03-23 16:02:17.847139", + "modified": "2025-11-15 22:10:10.463829", "modified_by": "Administrator", "module": "Desk", "name": "Desktop Icon", + "naming_rule": "By fieldname", "owner": "Administrator", "permissions": [ { @@ -167,9 +140,10 @@ } ], "read_only": 1, + "row_format": "Dynamic", "sort_field": "creation", "sort_order": "DESC", "states": [], - "title_field": "module_name", + "title_field": "label", "track_changes": 1 -} \ No newline at end of file +} diff --git a/frappe/desk/doctype/desktop_icon/desktop_icon.py b/frappe/desk/doctype/desktop_icon/desktop_icon.py index 77b7f01570..14a256878c 100644 --- a/frappe/desk/doctype/desktop_icon/desktop_icon.py +++ b/frappe/desk/doctype/desktop_icon/desktop_icon.py @@ -2,12 +2,15 @@ # License: MIT. See LICENSE import json +import os import random import frappe from frappe import _ from frappe.model.document import Document -from frappe.utils.user import UserPermissions +from frappe.modules.export_file import write_document_file +from frappe.modules.import_file import import_file_by_path +from frappe.modules.utils import create_directory_on_app_path, get_app_level_directory_path class DesktopIcon(Document): @@ -17,26 +20,22 @@ class DesktopIcon(Document): from typing import TYPE_CHECKING if TYPE_CHECKING: + from frappe.core.doctype.has_role.has_role import HasRole from frappe.types import DF - _doctype: DF.Link | None - _report: DF.Link | None - app: DF.Data | None - blocked: DF.Check - category: DF.Data | None - color: DF.Data | None - custom: DF.Check - description: DF.SmallText | None - force_show: DF.Check + app: DF.Autocomplete | None hidden: DF.Check - icon: DF.Data | None + icon_type: DF.Literal["Folder", "App", "Link"] idx: DF.Int label: DF.Data | None link: DF.SmallText | None - module_name: DF.Data | None - reverse: DF.Check + link_to: DF.DynamicLink | None + link_type: DF.Literal["DocType", "Workspace", "External"] + logo_url: DF.Data | None + parent_icon: DF.Link | None + roles: DF.Table[HasRole] + sidebar: DF.Link | None standard: DF.Check - type: DF.Literal["module", "list", "link", "page", "query-report"] # end: auto-generated types def validate(self): @@ -45,13 +44,89 @@ class DesktopIcon(Document): def on_trash(self): clear_desktop_icons_cache() + allow_export = ( + self.standard and self.app and not frappe.flags.in_import and frappe.conf.developer_mode + ) + if allow_export: + self.delete_desktop_icon_file() + + def on_update(self): + if frappe.conf.developer_mode: + if self.standard == 1 and self.app: + self.export_desktop_icon() + + def export_desktop_icon(self): + folder_path = create_directory_on_app_path("desktop_icon", self.app) + file_path = os.path.join(folder_path, f"{frappe.scrub(self.label)}.json") + doc_export = self.as_dict(no_nulls=True, no_private_properties=True) + # if self.parent_icon: + # print(self.parent_icon) + # doc_export["parent_icon"] = frappe.db.get_value("Desktop Icon", self.parent_icon, "label") + with open(file_path, "w+") as icon_file_doc: + icon_file_doc.write(frappe.as_json(doc_export) + "\n") + + def delete_desktop_icon_file(self): + folder_path = create_directory_on_app_path("desktop_icon", self.app) + file_path = os.path.join(folder_path, f"{frappe.scrub(self.label)}.json") + if os.path.exists(file_path): + os.remove(file_path) + + def is_permitted(self, bootinfo): + if frappe.session.user == "Administrator": + return True + workspaces = get_workspace_names(bootinfo.workspaces) + if self.icon_type == "Link": + if self.link_type == "DocType": + return self.link_to in bootinfo.user.can_read + elif self.link_type == "Workspace": + return self.link_to in workspaces + elif self.icon_type == "App": + return self.get_app_from_title(self.label) + + def get_app_from_title(self, title): + for a in frappe.get_installed_apps(): + if frappe.get_hooks(app_name=a)["app_title"][0] == title: + permission_method = frappe.get_hooks(app_name=a)["add_to_apps_screen"][0].get( + "has_permission", None + ) + if permission_method: + return frappe.call(permission_method) + else: + return False + + # def is_permitted(self): + # """Return True if `Has Role` is not set or the user is allowed.""" + # from frappe.utils import has_common + + # allowed = [d.role for d in frappe.get_all("Has Role", fields=["role"], filters={"parent": self.name})] + + # if not allowed: + # return True + + # roles = frappe.get_roles() + + # if has_common(roles, allowed): + # return True + + def after_insert(self): + clear_desktop_icons_cache() def after_doctype_insert(): - frappe.db.add_unique("Desktop Icon", ("module_name", "owner", "standard")) + pass -def get_desktop_icons(user=None): +# frappe.db.add_unique("Desktop Icon", ("owner", "standard")) + + +def get_workspace_names(workspaces): + workspace_list = [] + for w in workspaces["pages"]: + workspace_list.append(w["name"]) + return workspace_list + + +def get_desktop_icons(user=None, bootinfo=None): """Return desktop icons for user""" if not user: user = frappe.session.user @@ -60,38 +135,41 @@ def get_desktop_icons(user=None): if not user_icons: fields = [ - "module_name", - "hidden", "label", "link", - "type", + "link_type", + "icon_type", + "parent_icon", "icon", - "color", - "description", - "category", - "_doctype", - "_report", + "link_to", "idx", - "force_show", - "reverse", - "custom", "standard", - "blocked", + "logo_url", + "hidden", + "name", + "sidebar", ] active_domains = frappe.get_active_domains() - blocked_doctypes = frappe.get_all( - "DocType", - filters={"ifnull(restrict_to_domain, '')": ("not in", ",".join(active_domains))}, - fields=["name"], - ) - - blocked_doctypes = [d.get("name") for d in blocked_doctypes] + DocType = frappe.qb.DocType("DocType") + if active_domains: + blocked_condition = ( + (DocType.restrict_to_domain.isnull()) + | (DocType.restrict_to_domain == "") + | (DocType.restrict_to_domain.notin(active_domains)) + ) + else: + blocked_condition = (DocType.restrict_to_domain.isnull()) | (DocType.restrict_to_domain == "") + blocked_doctypes = [ + d.get("name") + for d in frappe.qb.from_(DocType).select(DocType.name).where(blocked_condition).run(as_dict=True) + ] standard_icons = frappe.get_all("Desktop Icon", fields=fields, filters={"standard": 1}) standard_map = {} + for icon in standard_icons: if icon._doctype in blocked_doctypes: icon.blocked = 1 @@ -141,12 +219,27 @@ def get_desktop_icons(user=None): user_icons.sort(key=lambda a: a.idx) # translate - for d in user_icons: - if d.label: - d.label = _(d.label, context=d.parent) + # for d in user_icons: + # if d.label: + # d.label = _(d.label, context=d.parent) + # includes + permitted_icons = [] + permitted_parent_labels = set() + + if bootinfo: + for s in user_icons: + icon = frappe.get_doc("Desktop Icon", s) + if icon.is_permitted(bootinfo): + permitted_icons.append(s) + + if not s.parent_icon: + permitted_parent_labels.add(s.label) + + user_icons = [ + s for s in permitted_icons if not s.parent_icon or s.parent_icon in permitted_parent_labels + ] frappe.cache.hset("desktop_icons", user, user_icons) - return user_icons @@ -394,7 +487,19 @@ def make_user_copy(module_name, user): def sync_desktop_icons(): """Sync desktop icons from all apps""" for app in frappe.get_installed_apps(): - sync_from_app(app) + sync_icons(app) + # sync_from_app(app) + + +def sync_icons(app_name): + icon_directory = get_app_level_directory_path("desktop_icon", app_name) + if os.path.exists(icon_directory): + icon_files = [os.path.join(icon_directory, filename) for filename in os.listdir(icon_directory)] + for doc_path in icon_files: + imported = import_file_by_path(doc_path) + if imported: + frappe.db.commit(chain=True) + # print(icon_directory) def sync_from_app(app): @@ -477,6 +582,8 @@ def get_module_icons(user=None): def get_user_icons(user): """Get user icons for module setup page""" + from frappe.utils.user import UserPermissions + user_perms = UserPermissions(user) user_perms.build_permissions() @@ -494,10 +601,10 @@ def get_user_icons(user): if icon.module_name == ["Help", "Settings"]: pass - elif icon.type == "page" and icon.link not in allowed_pages: + elif icon.link_type == "page" and icon.link not in allowed_pages: add = False - elif icon.type == "module" and icon.module_name not in user_perms.allow_modules: + elif icon.link_type == "module" and icon.module_name not in user_perms.allow_modules: add = False if add: @@ -570,3 +677,91 @@ def hide(name, user=None): return False return True + + +def create_desktop_icons_from_workspace(): + workspaces = frappe.get_all( + "Workspace", + filters={"public": 1, "name": ["!=", "Welcome Workspace"]}, + fields=["name", "icon", "app", "module"], + ) + + for w in workspaces: + icon = frappe.new_doc("Desktop Icon") + icon.link_type = "Workspace" + icon.label = w.name + icon.icon_type = "Link" + icon.standard = 1 + icon.link_to = w.name + icon.icon = w.icon + if w.module: + app_name = frappe.db.get_value("Module Def", w.module, "app_name") + if app_name in frappe.get_installed_apps(): + app_title = frappe.get_hooks("app_title", app_name=app_name)[0] + app_icon = frappe.db.exists("Desktop Icon", {"label": app_title, "icon_type": "App"}) + if app_icon: + icon.parent_icon = app_icon + + # Portal App With Desk Workspace + if frappe.db.get_value("Desktop Icon", app_icon, "link") and not frappe.db.get_value( + "Desktop Icon", app_icon, "link" + ).startswith("/app"): + icon.hidden = 1 + icon.parent_icon = None + + # If Desk App has one workspace with the same name + if icon.label == app_title and ( + app_icon and frappe.db.get_value("Desktop Icon", app_icon, "link").startswith("/app") + ): + icon.hidden = 1 + icon.parent_icon = None + + try: + if not frappe.db.exists( + "Desktop Icon", [{"label": icon.label, "icon_type": icon.icon_type}] + ): + icon.insert(ignore_if_duplicate=True) + except Exception as e: + frappe.error_log(title="Creation of Desktop Icon Failed", message=e) + + +def generate_color(): + colors = ["orange", "pink", "blue", "green", "dark", "red", "yellow", "purple", "gray"] + return random.choice(colors) + + +def create_desktop_icons_from_installed_apps(): + apps = frappe.get_installed_apps() + index = 0 + for a in apps: + app_title = frappe.get_hooks("app_title", app_name=a)[0] + app_details = frappe.get_hooks("add_to_apps_screen", app_name=a) + if len(app_details) != 0: + icon = frappe.new_doc("Desktop Icon") + icon.label = app_title + icon.link_type = "External" + icon.standard = 1 + icon.idx = index + icon.icon_type = "App" + icon.link = app_details[0]["route"] + icon.logo_url = app_details[0]["logo"] + if not frappe.db.exists("Desktop Icon", [{"label": icon.label, "icon_type": icon.icon_type}]): + icon.save() + index += 1 + + +@frappe.whitelist() +def set_sequence(desktop_icons): + cnt = 1 + for item in json.loads(desktop_icons): + frappe.db.set_value("Workspace", item.get("name"), "sequence_id", cnt) + frappe.db.set_value("Workspace", item.get("name"), "parent_page", item.get("parent") or "") + cnt += 1 + + frappe.clear_cache() + frappe.toast(frappe._("Updated")) + + +def create_desktop_icons(): + create_desktop_icons_from_installed_apps() + create_desktop_icons_from_workspace() diff --git a/frappe/desk/doctype/desktop_icon/test_desktop_icon.py b/frappe/desk/doctype/desktop_icon/test_desktop_icon.py new file mode 100644 index 0000000000..d83eb7c9ed --- /dev/null +++ b/frappe/desk/doctype/desktop_icon/test_desktop_icon.py @@ -0,0 +1,20 @@ +# Copyright (c) 2025, Frappe Technologies and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + +# On IntegrationTestCase, the doctype test records and all +# link-field test record dependencies are recursively loaded +# Use these module variables to add/remove to/from that list +EXTRA_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] +IGNORE_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] + + +class IntegrationTestDesktopIcon(IntegrationTestCase): + """ + Integration tests for DesktopIcon. + Use this class for testing interactions between multiple components. + """ + + pass diff --git a/frappe/desk/doctype/desktop_settings/__init__.py b/frappe/desk/doctype/desktop_settings/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/desk/doctype/desktop_settings/desktop_settings.js b/frappe/desk/doctype/desktop_settings/desktop_settings.js new file mode 100644 index 0000000000..8824345717 --- /dev/null +++ b/frappe/desk/doctype/desktop_settings/desktop_settings.js @@ -0,0 +1,8 @@ +// Copyright (c) 2025, Frappe Technologies and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Desktop Settings", { + refresh(frm) { + frm.add_custom_button(__("Visit Desktop"), () => frappe.set_route("desktop")); + }, +}); diff --git a/frappe/desk/doctype/desktop_settings/desktop_settings.json b/frappe/desk/doctype/desktop_settings/desktop_settings.json new file mode 100644 index 0000000000..006f17018f --- /dev/null +++ b/frappe/desk/doctype/desktop_settings/desktop_settings.json @@ -0,0 +1,58 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2025-09-07 17:00:48.624209", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "icon_style", + "navbar_style", + "show_app_icons_as_folder" + ], + "fields": [ + { + "default": "Subtle Reverse", + "fieldname": "icon_style", + "fieldtype": "Select", + "label": "Icon Style", + "options": "Monochrome\nSubtle\nSubtle Reverse\nSubtle Reverse w Opacity" + }, + { + "fieldname": "navbar_style", + "fieldtype": "Select", + "label": "Navbar Style", + "options": "Awesomebar\nmacOS Launchpad\nBrand Logo\nBrand Logo with Search\nTimeless Launchpad\nApps with Search" + }, + { + "default": "0", + "fieldname": "show_app_icons_as_folder", + "fieldtype": "Check", + "label": "Show App Icons As Folder" + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "issingle": 1, + "links": [], + "modified": "2025-11-15 11:38:34.968344", + "modified_by": "Administrator", + "module": "Desk", + "name": "Desktop Settings", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "print": 1, + "read": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/frappe/desk/doctype/desktop_settings/desktop_settings.py b/frappe/desk/doctype/desktop_settings/desktop_settings.py new file mode 100644 index 0000000000..920fc06129 --- /dev/null +++ b/frappe/desk/doctype/desktop_settings/desktop_settings.py @@ -0,0 +1,29 @@ +# Copyright (c) 2025, Frappe Technologies and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class DesktopSettings(Document): + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + icon_style: DF.Literal["Monochrome", "Subtle", "Subtle Reverse", "Subtle Reverse w Opacity"] + navbar_style: DF.Literal[ + "Awesomebar", + "macOS Launchpad", + "Brand Logo", + "Brand Logo with Search", + "Timeless Launchpad", + "Apps with Search", + ] + show_app_icons_as_folder: DF.Check + # end: auto-generated types + + pass diff --git a/frappe/desk/doctype/desktop_settings/test_desktop_settings.py b/frappe/desk/doctype/desktop_settings/test_desktop_settings.py new file mode 100644 index 0000000000..384ef8c5eb --- /dev/null +++ b/frappe/desk/doctype/desktop_settings/test_desktop_settings.py @@ -0,0 +1,20 @@ +# Copyright (c) 2025, Frappe Technologies and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + +# On IntegrationTestCase, the doctype test records and all +# link-field test record dependencies are recursively loaded +# Use these module variables to add/remove to/from that list +EXTRA_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] +IGNORE_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] + + +class IntegrationTestDesktopSettings(IntegrationTestCase): + """ + Integration tests for DesktopSettings. + Use this class for testing interactions between multiple components. + """ + + pass diff --git a/frappe/desk/doctype/notification_log/notification_log.py b/frappe/desk/doctype/notification_log/notification_log.py index c192eccede..5b4f49526c 100644 --- a/frappe/desk/doctype/notification_log/notification_log.py +++ b/frappe/desk/doctype/notification_log/notification_log.py @@ -167,7 +167,7 @@ def format_email_header(header_map, language, docname): @frappe.whitelist() @http_cache(max_age=60, stale_while_revalidate=60 * 60) -def get_notification_logs(limit=20): +def get_notification_logs(limit: int = 20): notification_logs = frappe.db.get_list( "Notification Log", fields=["*"], limit=limit, order_by="creation desc" ) diff --git a/frappe/desk/doctype/route_history/route_history.py b/frappe/desk/doctype/route_history/route_history.py index ff64636b71..52e885e583 100644 --- a/frappe/desk/doctype/route_history/route_history.py +++ b/frappe/desk/doctype/route_history/route_history.py @@ -46,7 +46,7 @@ def deferred_insert(routes): def frequently_visited_links(): return frappe.get_all( "Route History", - fields=["route", "count(name) as count"], + fields=["route", {"COUNT": "name", "as": "count"}], filters={"user": frappe.session.user}, group_by="route", order_by="count desc", diff --git a/frappe/desk/doctype/sidebar_item_group/__init__.py b/frappe/desk/doctype/sidebar_item_group/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/desk/doctype/sidebar_item_group/sidebar_item_group.js b/frappe/desk/doctype/sidebar_item_group/sidebar_item_group.js new file mode 100644 index 0000000000..bfef50150e --- /dev/null +++ b/frappe/desk/doctype/sidebar_item_group/sidebar_item_group.js @@ -0,0 +1,8 @@ +// Copyright (c) 2025, Frappe Technologies and contributors +// For license information, please see license.txt + +// frappe.ui.form.on("Sidebar Item Group", { +// refresh(frm) { + +// }, +// }); diff --git a/frappe/desk/doctype/sidebar_item_group/sidebar_item_group.json b/frappe/desk/doctype/sidebar_item_group/sidebar_item_group.json new file mode 100644 index 0000000000..0134d09eaa --- /dev/null +++ b/frappe/desk/doctype/sidebar_item_group/sidebar_item_group.json @@ -0,0 +1,62 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:sidebar", + "creation": "2025-11-10 12:49:52.421973", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "sidebar", + "links", + "app" + ], + "fields": [ + { + "fieldname": "sidebar", + "fieldtype": "Link", + "label": "Sidebar", + "options": "Workspace Sidebar", + "unique": 1 + }, + { + "fieldname": "links", + "fieldtype": "Table", + "label": "Links", + "options": "Sidebar Item Group Link" + }, + { + "fieldname": "app", + "fieldtype": "Autocomplete", + "label": "App", + "options": "Installed Applications" + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "links": [], + "modified": "2025-11-13 10:03:42.852599", + "modified_by": "Administrator", + "module": "Desk", + "name": "Sidebar Item Group", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "rows_threshold_for_grid_search": 20, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/frappe/desk/doctype/sidebar_item_group/sidebar_item_group.py b/frappe/desk/doctype/sidebar_item_group/sidebar_item_group.py new file mode 100644 index 0000000000..7b72e2139f --- /dev/null +++ b/frappe/desk/doctype/sidebar_item_group/sidebar_item_group.py @@ -0,0 +1,58 @@ +# Copyright (c) 2025, Frappe Technologies and contributors +# For license information, please see license.txt + +import os + +import frappe +from frappe.boot import get_allowed_pages, get_allowed_reports +from frappe.model.document import Document +from frappe.modules.utils import create_directory_on_app_path, get_app_level_directory_path + + +class SidebarItemGroup(Document): + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.desk.doctype.sidebar_item_group_link.sidebar_item_group_link import SidebarItemGroupLink + from frappe.types import DF + + app: DF.Autocomplete | None + links: DF.Table[SidebarItemGroupLink] + sidebar: DF.Link | None + # end: auto-generated types + + def on_update(self): + if frappe.conf.developer_mode: + if self.app: + self.export_sidebar_item_group() + + def export_sidebar_item_group(self): + folder_path = create_directory_on_app_path("sidebar_item_group", self.app) + file_path = os.path.join(folder_path, f"{frappe.scrub(self.name)}.json") + doc_export = self.as_dict(no_nulls=True, no_private_properties=True) + with open(file_path, "w+") as doc_file: + doc_file.write(frappe.as_json(doc_export) + "\n") + + def on_trash(self): + if frappe.conf.developer_mode and self.app: + self.delete_file() + + def delete_file(self): + folder_path = get_app_level_directory_path("sidebar_item_group", self.app) + file_path = os.path.join(folder_path, f"{frappe.scrub(self.name)}.json") + if os.path.exists(file_path): + os.remove(file_path) + + +@frappe.whitelist() +def get_reports(module_name=None): + reports_info = [] + if module_name: + sidebar_group = frappe.get_doc("Sidebar Item Group", module_name) + for report_links in sidebar_group.links: + if report_links.report in get_allowed_reports().keys(): + reports_info.append(get_allowed_reports()[report_links.report]) + return reports_info diff --git a/frappe/desk/doctype/sidebar_item_group/test_sidebar_item_group.py b/frappe/desk/doctype/sidebar_item_group/test_sidebar_item_group.py new file mode 100644 index 0000000000..cb53c4ec6c --- /dev/null +++ b/frappe/desk/doctype/sidebar_item_group/test_sidebar_item_group.py @@ -0,0 +1,20 @@ +# Copyright (c) 2025, Frappe Technologies and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + +# On IntegrationTestCase, the doctype test records and all +# link-field test record dependencies are recursively loaded +# Use these module variables to add/remove to/from that list +EXTRA_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] +IGNORE_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] + + +class IntegrationTestSidebarItemGroup(IntegrationTestCase): + """ + Integration tests for SidebarItemGroup. + Use this class for testing interactions between multiple components. + """ + + pass diff --git a/frappe/desk/doctype/sidebar_item_group_link/__init__.py b/frappe/desk/doctype/sidebar_item_group_link/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/desk/doctype/sidebar_item_group_link/sidebar_item_group_link.json b/frappe/desk/doctype/sidebar_item_group_link/sidebar_item_group_link.json new file mode 100644 index 0000000000..1afc714ba3 --- /dev/null +++ b/frappe/desk/doctype/sidebar_item_group_link/sidebar_item_group_link.json @@ -0,0 +1,35 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2025-11-13 10:02:13.869571", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "report" + ], + "fields": [ + { + "fieldname": "report", + "fieldtype": "Link", + "in_list_view": 1, + "label": "Report", + "options": "Report" + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2025-11-13 10:03:51.263771", + "modified_by": "Administrator", + "module": "Desk", + "name": "Sidebar Item Group Link", + "owner": "Administrator", + "permissions": [], + "row_format": "Dynamic", + "rows_threshold_for_grid_search": 20, + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/frappe/desk/doctype/sidebar_item_group_link/sidebar_item_group_link.py b/frappe/desk/doctype/sidebar_item_group_link/sidebar_item_group_link.py new file mode 100644 index 0000000000..ba84574a08 --- /dev/null +++ b/frappe/desk/doctype/sidebar_item_group_link/sidebar_item_group_link.py @@ -0,0 +1,23 @@ +# Copyright (c) 2025, Frappe Technologies and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class SidebarItemGroupLink(Document): + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + parent: DF.Data + parentfield: DF.Data + parenttype: DF.Data + report: DF.Link | None + # end: auto-generated types + + pass diff --git a/frappe/desk/doctype/workspace/workspace.py b/frappe/desk/doctype/workspace/workspace.py index 0a11f1ac84..d534041493 100644 --- a/frappe/desk/doctype/workspace/workspace.py +++ b/frappe/desk/doctype/workspace/workspace.py @@ -6,7 +6,9 @@ from json import loads import frappe from frappe import _ +from frappe.boot import get_sidebar_items from frappe.desk.desktop import get_workspace_sidebar_items, save_new_widget +from frappe.desk.doctype.workspace_sidebar.workspace_sidebar import add_to_my_workspace from frappe.desk.utils import validate_route_conflict from frappe.model.document import Document from frappe.model.rename_doc import rename_doc @@ -125,6 +127,14 @@ class Workspace(Document): def on_trash(self): if self.public and not is_workspace_manager(): frappe.throw(_("You need to be Workspace Manager to delete a public workspace.")) + self.delete_from_my_workspaces() + + def delete_from_my_workspaces(self): + if not self.public: + my_workspaces = frappe.get_doc("Workspace Sidebar", "My Workspaces") + for w in my_workspaces.items: + if self.name == w.link_to: + frappe.delete_doc("Workspace Sidebar Item", w.name) def after_delete(self): if disable_saving_as_public(): @@ -294,7 +304,10 @@ def new_page(new_page): doc.sequence_id = last_sequence_id(doc) + 1 doc.save(ignore_permissions=True) - return get_workspace_sidebar_items() + # add to workspace sidebar items + if not doc.public: + add_to_my_workspace(doc) + return {"workspace_pages": get_workspace_sidebar_items(), "sidebar_items": get_sidebar_items()} @frappe.whitelist() diff --git a/frappe/desk/doctype/workspace_settings/workspace_settings.js b/frappe/desk/doctype/workspace_settings/workspace_settings.js index 58bd6757b3..100743fbe0 100644 --- a/frappe/desk/doctype/workspace_settings/workspace_settings.js +++ b/frappe/desk/doctype/workspace_settings/workspace_settings.js @@ -18,9 +18,6 @@ frappe.ui.form.on("Workspace Settings", { frm.docfields.push({ fieldtype: "Check", fieldname: page.name, - hidden: !frappe.boot.app_data_map[frappe.current_app].workspaces.includes( - page.title - ), label: page.title + (page.parent_page ? ` (${page.parent_page})` : ""), initial_value: workspace_visibilty[page.name] !== 0, // not set is also visible }); diff --git a/frappe/desk/doctype/workspace_sidebar/__init__.py b/frappe/desk/doctype/workspace_sidebar/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/desk/doctype/workspace_sidebar/test_workspace_sidebar.py b/frappe/desk/doctype/workspace_sidebar/test_workspace_sidebar.py new file mode 100644 index 0000000000..4482200436 --- /dev/null +++ b/frappe/desk/doctype/workspace_sidebar/test_workspace_sidebar.py @@ -0,0 +1,20 @@ +# Copyright (c) 2025, Frappe Technologies and Contributors +# See license.txt + +# import frappe +from frappe.tests import IntegrationTestCase + +# On IntegrationTestCase, the doctype test records and all +# link-field test record dependencies are recursively loaded +# Use these module variables to add/remove to/from that list +EXTRA_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] +IGNORE_TEST_RECORD_DEPENDENCIES = [] # eg. ["User"] + + +class IntegrationTestWorkspaceSidebar(IntegrationTestCase): + """ + Integration tests for WorkspaceSidebar. + Use this class for testing interactions between multiple components. + """ + + pass diff --git a/frappe/desk/doctype/workspace_sidebar/workspace_sidebar.js b/frappe/desk/doctype/workspace_sidebar/workspace_sidebar.js new file mode 100644 index 0000000000..f94ab3bb54 --- /dev/null +++ b/frappe/desk/doctype/workspace_sidebar/workspace_sidebar.js @@ -0,0 +1,18 @@ +// Copyright (c) 2025, Frappe Technologies and contributors +// For license information, please see license.txt + +frappe.ui.form.on("Workspace Sidebar", { + refresh(frm) { + if (!frm.is_new()) { + frm.add_custom_button(__(`View Sidebar`), () => { + if (frm.doc.items[0].link_type === "DocType") { + frappe.set_route("List", frm.doc.items[0].link_to); + return; + } else if (frm.doc.items[0].link_type === "Workspace") { + frappe.set_route("Workspaces", frm.doc.items[0].link_to); + return; + } + }); + } + }, +}); diff --git a/frappe/desk/doctype/workspace_sidebar/workspace_sidebar.json b/frappe/desk/doctype/workspace_sidebar/workspace_sidebar.json new file mode 100644 index 0000000000..a101799603 --- /dev/null +++ b/frappe/desk/doctype/workspace_sidebar/workspace_sidebar.json @@ -0,0 +1,80 @@ +{ + "actions": [], + "allow_rename": 1, + "autoname": "field:title", + "creation": "2025-08-12 12:06:45.016314", + "doctype": "DocType", + "engine": "InnoDB", + "field_order": [ + "title", + "header_icon", + "app", + "for_user", + "items", + "module" + ], + "fields": [ + { + "fieldname": "title", + "fieldtype": "Data", + "label": "Title", + "unique": 1 + }, + { + "fieldname": "items", + "fieldtype": "Table", + "label": "Items", + "options": "Workspace Sidebar Item" + }, + { + "fieldname": "header_icon", + "fieldtype": "Icon", + "label": "Header Icon" + }, + { + "fieldname": "app", + "fieldtype": "Autocomplete", + "label": "App", + "options": "Installed Applications" + }, + { + "fieldname": "for_user", + "fieldtype": "Link", + "label": "For User", + "options": "User" + }, + { + "fieldname": "module", + "fieldtype": "Text", + "hidden": 1, + "label": "Module" + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "links": [], + "modified": "2025-11-17 01:17:20.583501", + "modified_by": "Administrator", + "module": "Desk", + "name": "Workspace Sidebar", + "naming_rule": "By fieldname", + "owner": "Administrator", + "permissions": [ + { + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "share": 1, + "write": 1 + } + ], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/frappe/desk/doctype/workspace_sidebar/workspace_sidebar.py b/frappe/desk/doctype/workspace_sidebar/workspace_sidebar.py new file mode 100644 index 0000000000..0c6027ad6b --- /dev/null +++ b/frappe/desk/doctype/workspace_sidebar/workspace_sidebar.py @@ -0,0 +1,240 @@ +# Copyright (c) 2025, Frappe Technologies and contributors +# For license information, please see license.txt + +import os +from json import JSONDecodeError, dumps, loads + +import click + +import frappe +from frappe import _ +from frappe.boot import get_allowed_pages, get_allowed_reports +from frappe.model.document import Document +from frappe.modules.utils import create_directory_on_app_path + + +class WorkspaceSidebar(Document): + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.desk.doctype.workspace_sidebar_item.workspace_sidebar_item import WorkspaceSidebarItem + from frappe.types import DF + + app: DF.Autocomplete | None + for_user: DF.Link | None + items: DF.Table[WorkspaceSidebarItem] + module: DF.Text | None + title: DF.Data | None + # end: auto-generated types + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + if not frappe.flags.in_migrate: + self.user = frappe.get_user() + self.can_read = self.get_cached("user_perm_can_read", self.get_can_read_items) + + self.allowed_pages = get_allowed_pages(cache=True) + self.allowed_reports = get_allowed_reports(cache=True) + self.restricted_doctypes = frappe.cache.get_value("domain_restricted_doctypes") + self.restricted_pages = frappe.cache.get_value("domain_restricted_pages") + + def get_can_read_items(self): + if not self.user.can_read: + self.user.build_permissions() + + def before_save(self): + allow_export = self.app and not frappe.flags.in_import and frappe.conf.developer_mode + if allow_export: + self.export_sidebar() + self.set_module() + + def export_sidebar(self): + folder_path = create_directory_on_app_path("workspace_sidebar", self.app) + file_path = os.path.join(folder_path, f"{frappe.scrub(self.title)}.json") + doc_export = self.as_dict(no_nulls=True, no_private_properties=True) + with open(file_path, "w+") as doc_file: + doc_file.write(frappe.as_json(doc_export) + "\n") + + def delete_file(self): + folder_path = create_directory_on_app_path("workspace_sidebar", self.app) + file_path = os.path.join(folder_path, f"{frappe.scrub(self.title)}.json") + if os.path.exists(file_path): + os.remove(file_path) + + def on_trash(self): + if is_workspace_manager(): + if frappe.conf.developer_mode and self.app: + self.delete_file() + else: + frappe.throw(_("You need to be Workspace Manager to delete a public workspace.")) + + def is_item_allowed(self, name, item_type): + if frappe.session.user == "Administrator": + return True + + item_type = item_type.lower() + + if item_type == "doctype": + return ( + name in (self.can_read or []) + and name in (self.restricted_doctypes or []) + and frappe.has_permission(name) + ) + if item_type == "page": + return name in self.allowed_pages and name in self.restricted_pages + if item_type == "report": + return name in self.allowed_reports + if item_type == "help": + return True + if item_type == "dashboard": + return True + if item_type == "url": + return True + + def get_cached(self, cache_key, fallback_fn): + value = frappe.cache.get_value(cache_key, user=frappe.session.user) + if value is not None: + return value + + value = fallback_fn() + + # Expire every six hour + frappe.cache.set_value(cache_key, value, frappe.session.user, 21600) + return value + + def set_module(self): + if not self.module: + self.module = self.get_module_from_items() + + def get_module_from_items(self): + all_modules_in_sidebars = [] + + for item in self.items: + if item.type != "Section Break" and item.type != "Sidebar Item Group" and item.link_type != "URL": + try: + all_modules_in_sidebars.append(frappe.get_doc(item.link_type, item.link_to).module) + except frappe.DoesNotExistError as e: + frappe.logger().error(e) + from collections import Counter + + counts = Counter(all_modules_in_sidebars) + if counts and counts.most_common(1)[0]: + return counts.most_common(1)[0][0] + + +def is_workspace_manager(): + return "Workspace Manager" in frappe.get_roles() + + +def create_workspace_sidebar_for_workspaces(): + from frappe.query_builder import DocType + + workspace = DocType("Workspace") + + all_workspaces = ( + frappe.qb.from_(workspace) + .select(workspace.name) + .where((workspace.public == 1) & (workspace.name != "Welcome Workspace")) + ).run(pluck=True) + + existing_sidebars = frappe.get_all("Workspace Sidebar", pluck="title") + for workspace in all_workspaces: + if workspace not in existing_sidebars: + workspace_doc = frappe.get_doc("Workspace", workspace) + sidebar = frappe.new_doc("Workspace Sidebar") + sidebar.title = workspace + sidebar.header_icon = frappe.db.get_value("Workspace", workspace, "icon") + click.echo(f"Creating Sidebar Items for {workspace}") + shortcuts = workspace_doc.shortcuts + + items = [] + idx = 1 + # Adding the workspace itself as home + workspace_sidebar_item = frappe.new_doc("Workspace Sidebar Item") + workspace_sidebar_item.update( + {"label": "Home", "link_to": workspace, "link_type": "Workspace", "type": "Link", "idx": 0} + ) + items.append(workspace_sidebar_item) + # Process Shortcuts + for s in shortcuts: + workspace_sidebar_item = frappe.new_doc("Workspace Sidebar Item") + workspace_sidebar_item.update( + {"label": s.label, "link_to": s.link_to, "link_type": s.type, "type": "Link", "idx": idx} + ) + items.append(workspace_sidebar_item) + idx += 1 + try: + sidebar.items = items + sidebar.save() + except Exception as e: + frappe.log_error(title="Failed To Create Sidebar", message=e) + + +@frappe.whitelist() +def add_sidebar_items(sidebar_title, sidebar_items): + sidebar_items = loads(sidebar_items) + w = frappe.get_doc("Workspace Sidebar", sidebar_title) + items = [] + current_idx = 1 + for item in sidebar_items: + si = frappe.new_doc("Workspace Sidebar Item") + si.update(item) + items.append(si) + si.idx = current_idx + items.append(si) + current_idx += 1 + + nested_items = item.get("nested_items", []) + if nested_items: + for nested_item in nested_items: + new_nested_item = frappe.new_doc("Workspace Sidebar Item") + new_nested_item.update(nested_item) + new_nested_item.child = 1 + new_nested_item.idx = current_idx + items.append(new_nested_item) + current_idx += 1 + + w.items = items + w.save() + return w + + +def add_to_my_workspace(workspace): + try: + if not workspace.for_user: + return + + sidebar_name = f"My Workspaces-{workspace.for_user}" + existing_sidebar = frappe.db.exists("Workspace Sidebar", sidebar_name) + + if existing_sidebar: + private_sidebar = frappe.get_doc("Workspace Sidebar", existing_sidebar) + else: + # clone sidebar + base_sidebar = frappe.get_doc("Workspace Sidebar", "My Workspaces") + private_sidebar = frappe.copy_doc(base_sidebar) + private_sidebar.title = sidebar_name + private_sidebar.for_user = workspace.for_user + private_sidebar.owner = workspace.for_user + private_sidebar.items = [] + + sidebar_item = { + "label": workspace.title, + "type": "Link", + "link_to": f"{workspace.title}-{workspace.for_user}", + "link_type": "Workspace", + "icon": workspace.icon, + } + + private_sidebar.append("items", sidebar_item) + + if existing_sidebar: + private_sidebar.save() + else: + private_sidebar.insert() + + except Exception as e: + frappe.log_error(title="Error in Adding Private Workspaces", message=e) diff --git a/frappe/desk/doctype/workspace_sidebar_item/__init__.py b/frappe/desk/doctype/workspace_sidebar_item/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/desk/doctype/workspace_sidebar_item/workspace_sidebar_item.json b/frappe/desk/doctype/workspace_sidebar_item/workspace_sidebar_item.json new file mode 100644 index 0000000000..af32f74b36 --- /dev/null +++ b/frappe/desk/doctype/workspace_sidebar_item/workspace_sidebar_item.json @@ -0,0 +1,173 @@ +{ + "actions": [], + "creation": "2025-08-12 12:46:41.926121", + "doctype": "DocType", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "details_section", + "label", + "link_type", + "icon", + "column_break_krzu", + "type", + "link_to", + "child", + "url", + "display_section", + "collapsible_column", + "collapsible", + "indent", + "keep_closed", + "show_arrow", + "column_break_jexf", + "display_depends_on", + "section_break_whjq", + "filters", + "route_options" + ], + "fields": [ + { + "default": "Link", + "fieldname": "type", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Type", + "options": "Link\nSection Break\nSpacer\nSidebar Item Group" + }, + { + "fieldname": "label", + "fieldtype": "Data", + "in_list_view": 1, + "label": "Label" + }, + { + "default": "DocType", + "depends_on": "eval: doc.type == 'Link' || doc.indent == 1", + "fieldname": "link_type", + "fieldtype": "Select", + "in_list_view": 1, + "label": "Link Type", + "options": "DocType\nPage\nReport\nWorkspace\nDashboard\nURL" + }, + { + "depends_on": "eval: doc.link_type != \"URL\" && doc.type == 'Link' || doc.indent == 1", + "fieldname": "link_to", + "fieldtype": "Dynamic Link", + "in_list_view": 1, + "label": "Link To", + "options": "link_type" + }, + { + "depends_on": "eval: doc.type == \"Link\"", + "fieldname": "icon", + "fieldtype": "Icon", + "in_list_view": 1, + "label": "Icon", + "options": "Emojis" + }, + { + "default": "0", + "fieldname": "child", + "fieldtype": "Check", + "in_list_view": 1, + "label": "Child Item" + }, + { + "default": "0", + "depends_on": "eval: doc.type == \"Section Break\"", + "fieldname": "indent", + "fieldtype": "Check", + "label": "Indent" + }, + { + "default": "1", + "depends_on": "eval: doc.type == \"Section Break\"", + "fieldname": "collapsible", + "fieldtype": "Check", + "label": "Collapsible" + }, + { + "fieldname": "details_section", + "fieldtype": "Section Break", + "label": "Details" + }, + { + "fieldname": "column_break_krzu", + "fieldtype": "Column Break" + }, + { + "depends_on": "eval: doc.type == \"Section Break\"", + "fieldname": "display_section", + "fieldtype": "Section Break", + "label": "Display" + }, + { + "depends_on": "eval: doc.type == \"Section Break\"", + "fieldname": "collapsible_column", + "fieldtype": "Column Break", + "label": "Collapsible" + }, + { + "default": "0", + "depends_on": "eval: doc.type == \"Section Break\"", + "fieldname": "keep_closed", + "fieldtype": "Check", + "label": "Keep Closed" + }, + { + "fieldname": "column_break_jexf", + "fieldtype": "Column Break" + }, + { + "fieldname": "display_depends_on", + "fieldtype": "Code", + "label": "Display Depends On (JS)", + "options": "JS", + "width": "30" + }, + { + "depends_on": "eval: doc.link_type == \"URL\"", + "fieldname": "url", + "fieldtype": "Data", + "label": "URL" + }, + { + "default": "0", + "depends_on": "eval: doc.indent == 1", + "fieldname": "show_arrow", + "fieldtype": "Check", + "label": "Show Arrow" + }, + { + "fieldname": "section_break_whjq", + "fieldtype": "Section Break" + }, + { + "fieldname": "filters", + "fieldtype": "Code", + "label": "Filters", + "options": "JSON" + }, + { + "fieldname": "route_options", + "fieldtype": "Code", + "label": "Route Options", + "options": "JSON" + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2025-11-13 10:30:13.048477", + "modified_by": "Administrator", + "module": "Desk", + "name": "Workspace Sidebar Item", + "owner": "Administrator", + "permissions": [], + "row_format": "Dynamic", + "sort_field": "creation", + "sort_order": "DESC", + "states": [] +} diff --git a/frappe/desk/doctype/workspace_sidebar_item/workspace_sidebar_item.py b/frappe/desk/doctype/workspace_sidebar_item/workspace_sidebar_item.py new file mode 100644 index 0000000000..e6e72b94dc --- /dev/null +++ b/frappe/desk/doctype/workspace_sidebar_item/workspace_sidebar_item.py @@ -0,0 +1,35 @@ +# Copyright (c) 2025, Frappe Technologies and contributors +# For license information, please see license.txt + +# import frappe +from frappe.model.document import Document + + +class WorkspaceSidebarItem(Document): + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + child: DF.Check + collapsible: DF.Check + display_depends_on: DF.Code | None + filters: DF.Code | None + indent: DF.Check + keep_closed: DF.Check + label: DF.Data | None + link_to: DF.DynamicLink | None + link_type: DF.Literal["DocType", "Page", "Report", "Workspace", "Dashboard", "URL"] + parent: DF.Data + parentfield: DF.Data + parenttype: DF.Data + route_options: DF.Code | None + show_arrow: DF.Check + type: DF.Literal["Link", "Section Break", "Spacer", "Sidebar Item Group"] + url: DF.Data | None + # end: auto-generated types + + pass diff --git a/frappe/desk/form/linked_with.py b/frappe/desk/form/linked_with.py index 072dcc8433..fe2113302e 100644 --- a/frappe/desk/form/linked_with.py +++ b/frappe/desk/form/linked_with.py @@ -457,7 +457,7 @@ def get_linked_docs(doctype: str, name: str, linkinfo: dict | None = None) -> di if add_fields := link_context.get("add_fields"): fields += add_fields - fields = [f"`tab{linked_doctype}`.`{sf.strip()}`" for sf in fields if sf and "`tab" not in sf] + fields = [sf.strip() for sf in fields if sf] if filters_ctx := link_context.get("filters"): ret = frappe.get_list(doctype=linked_doctype, fields=fields, filters=filters_ctx, order_by=None) diff --git a/frappe/desk/form/load.py b/frappe/desk/form/load.py index d798b42d45..430dac8818 100644 --- a/frappe/desk/form/load.py +++ b/frappe/desk/form/load.py @@ -10,6 +10,7 @@ import frappe.defaults import frappe.desk.form.meta import frappe.utils from frappe import _, _dict +from frappe.core.doctype.permission_type.permission_type import get_doctype_ptype_map from frappe.desk.form.document_follow import is_document_followed from frappe.model.utils.user_settings import get_user_settings from frappe.permissions import check_doctype_permission, get_doc_permissions, has_permission @@ -125,6 +126,7 @@ def get_docinfo(doc=None, doctype=None, name=None): "is_document_followed": is_document_followed(doc.doctype, doc.name, frappe.session.user), "tags": get_tags(doc.doctype, doc.name), "document_email": get_document_email(doc.doctype, doc.name), + "custom_perm_types": get_doctype_ptype_map().get(doc.doctype, []), } ) diff --git a/frappe/desk/form/utils.py b/frappe/desk/form/utils.py index 8bfa3cac69..f956428c91 100644 --- a/frappe/desk/form/utils.py +++ b/frappe/desk/form/utils.py @@ -101,7 +101,7 @@ def get_next(doctype, value, prev, filters=None, sort_order="desc", sort_field=" doctype, fields=["name"], filters=filters, - order_by=f"`tab{doctype}`.{sort_field}" + " " + sort_order, + order_by=f"{sort_field} {sort_order}", limit_start=0, limit_page_length=1, as_list=True, diff --git a/frappe/desk/listview.py b/frappe/desk/listview.py index 94af0a06aa..870cfe6199 100644 --- a/frappe/desk/listview.py +++ b/frappe/desk/listview.py @@ -68,8 +68,8 @@ def get_group_by_count(doctype: str, current_filters: str, field: str) -> list[d data = frappe.get_list( doctype, filters=current_filters, - group_by=f"`tab{doctype}`.{field}", - fields=["count(*) as count", f"`{field}` as name"], + group_by=field, + fields=[{"COUNT": "*", "as": "count"}, f"{field} as name"], order_by="count desc", limit=1000, ) diff --git a/frappe/desk/notifications.py b/frappe/desk/notifications.py index 5aa9f0a40e..11b2b979ae 100644 --- a/frappe/desk/notifications.py +++ b/frappe/desk/notifications.py @@ -65,7 +65,7 @@ def get_notifications_for_doctypes(config, notification_count): try: if isinstance(condition, dict): result = frappe.get_list( - d, fields=["count(*) as count"], filters=condition, ignore_ifnull=True + d, fields=[{"COUNT": "*", "as": "count"}], filters=condition, ignore_ifnull=True )[0].count else: result = frappe.get_attr(condition)() diff --git a/frappe/desk/number_card/failed_login_attempts/failed_login_attempts.json b/frappe/desk/number_card/failed_login_attempts/failed_login_attempts.json new file mode 100644 index 0000000000..0d8150bc03 --- /dev/null +++ b/frappe/desk/number_card/failed_login_attempts/failed_login_attempts.json @@ -0,0 +1,27 @@ +{ + "aggregate_function_based_on": "", + "color": "#ff0000", + "creation": "2025-08-28 16:53:16.406273", + "currency": "", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Activity Log", + "dynamic_filters_json": "[]", + "filters_json": "[[\"Activity Log\",\"status\",\"=\",\"Failed\",false]]", + "function": "Count", + "idx": 0, + "is_public": 0, + "is_standard": 1, + "label": "Failed Login Attempts", + "modified": "2025-08-31 19:21:55.040453", + "modified_by": "Administrator", + "module": "Desk", + "name": "Failed Login Attempts", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_full_number": 0, + "show_percentage_stats": 1, + "stats_time_interval": "Weekly", + "type": "Document Type" +} diff --git a/frappe/desk/number_card/published_web_forms/published_web_forms.json b/frappe/desk/number_card/published_web_forms/published_web_forms.json new file mode 100644 index 0000000000..eeabc90d34 --- /dev/null +++ b/frappe/desk/number_card/published_web_forms/published_web_forms.json @@ -0,0 +1,27 @@ +{ + "aggregate_function_based_on": "", + "color": "#29CD42", + "creation": "2025-09-08 11:22:50.008022", + "currency": "INR", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Web Form", + "dynamic_filters_json": "[]", + "filters_json": "[[\"Web Form\",\"published\",\"=\",1,false]]", + "function": "Count", + "idx": 0, + "is_public": 0, + "is_standard": 1, + "label": "Published Web Forms", + "modified": "2025-09-08 11:23:24.431998", + "modified_by": "Administrator", + "module": "Desk", + "name": "Published Web Forms", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_full_number": 0, + "show_percentage_stats": 1, + "stats_time_interval": "Daily", + "type": "Document Type" +} diff --git a/frappe/desk/number_card/published_web_pages/published_web_pages.json b/frappe/desk/number_card/published_web_pages/published_web_pages.json new file mode 100644 index 0000000000..de41ff9fa6 --- /dev/null +++ b/frappe/desk/number_card/published_web_pages/published_web_pages.json @@ -0,0 +1,27 @@ +{ + "aggregate_function_based_on": "", + "color": "#29CD42", + "creation": "2025-09-08 11:17:53.321489", + "currency": "", + "docstatus": 0, + "doctype": "Number Card", + "document_type": "Web Page", + "dynamic_filters_json": "[]", + "filters_json": "[[\"Web Page\",\"published\",\"=\",1,false]]", + "function": "Count", + "idx": 0, + "is_public": 0, + "is_standard": 1, + "label": "Published Web Pages", + "modified": "2025-09-08 11:18:38.551335", + "modified_by": "Administrator", + "module": "Desk", + "name": "Published Web Pages", + "owner": "Administrator", + "parent_document_type": "", + "report_function": "Sum", + "show_full_number": 0, + "show_percentage_stats": 1, + "stats_time_interval": "Daily", + "type": "Document Type" +} diff --git a/frappe/desk/page/desktop/__init__.py b/frappe/desk/page/desktop/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/desk/page/desktop/desktop.css b/frappe/desk/page/desktop/desktop.css new file mode 100644 index 0000000000..ed6447312b --- /dev/null +++ b/frappe/desk/page/desktop/desktop.css @@ -0,0 +1,259 @@ +:root{ + --desktop-blur: blur(10.2px); + --desktop-modal-width: 508px; + --desktop-modal-height: 448px; + --folder-thumbnail-icon-height: 12px; + --desktop-icon-dimension: 54px; + --folder-icon-background-color: var(--surface-gray-1); +} +[data-theme="dark"]{ + --folder-icon-background-color: #2b2b2b; +} +.desktop-wrapper{ + max-width: 100%; + width: 100%; + margin-right: auto; + margin-left: auto; + padding: 0px; +} + +.navbar-container{ + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + padding: 10px 20px 10px 20px; /* Add padding if needed */ + box-sizing: border-box; + height: 52px; +} + +.desktop-search-wrapper{ + flex: 1; + max-width: 396px; + position: relative; +} + +#navbar-search{ + padding-left: 32px; +} +.desktop-search-icon{ + position: absolute; + left: 10px; + top: 2px; +} + +.desktop-search-icon > .icon { + stroke: var(--ink-gray-4); + stroke-width: 1px; +} + +.desktop-container{ + display: flex; + align-items: center; + justify-content: center; + flex-direction: row; + margin-top: 20px; +} + +.icon-stroke{ + stroke-width: 1.5px; +} +.icons{ + gap: 30px; + display: grid; + justify-items: center; + margin-top: 50px; + grid-template-columns: repeat(6, 1fr); + grid-template-rows: repeat(3, 1fr); +} +.desktop-icon{ + display: flex; + height: 100px; + width: 100px; + flex-direction: column; + align-items: center; + gap: 12px; +} +.icon-container:has(.app-logo) { + padding: 0; + background-color: unset; +} +.icon-container img{ + width: var(--desktop-icon-dimension); + height: var(--desktop-icon-dimension); +} +.icon-container{ + padding: 10px; + border-radius: 10px; + display: flex; + align-items: center; + justify-content: center; + width: var(--desktop-icon-dimension); + height: var(--desktop-icon-dimension); +} +.icon-container:has(.icon){ + background-color: var(--surface-gray-3); +} +.icon-container .icon{ + width: 27px; + height: 27px; +} +.icon-container:hover{ + transform: scale(1.05); + transition: transform 0.1s; +} +.icon-caption{ + text-align: center; + text-wrap: nowrap; + display: flex; + flex-direction: column; +} +.icon-title{ + font-weight: var(--weight-semibold); + font-size: var(--text-sm); +} +.icon-subtitle{ + font-weight: var(--weight-regular); + font-size: var(--text-xs); + color: var(--ink-gray-5); +} +.timeless-style{ + width: 100vw; + max-width: 600px; +} +.timeless-style input::placeholder{ + text-align: center; +} +.apps-search{ + align-items: center; + justify-content: space-between; + margin-left: 20px; +} +.small-margin{ + margin-top: 30px; +} +.desktop-modal{ + backdrop-filter: var(--desktop-blur); + display: flex !important; + & .modal-dialog{ + & .modal-content { + top: 120px; + border-radius: var(--border-radius-2xl); + } + } +} + +#desktop-modal{ + transform: none; + transition: none; +} + +.desktop-modal-body { + width: var(--desktop-modal-width); + padding: 23px 0px 23px 0px !important; + & .icons{ + gap: 0px 0px; + } + .icon-container{ + min-height: var(--desktop-icon-dimension); + } +} +.modal-heading{ + display: flex; + align-items: center; + justify-content: center; + font-size: var(--text-2xl); + font-weight: var(--weight-semibold); + color: var(--neutral-white); +} +.desktop-modal-heading { + all: unset !important; + position: absolute !important; + top: -75px !important; + width: 100% !important; + & .title-section{ + display: flex; + align-items: center; + justify-content: center; + & .modal-title{ + color: var(--neutral-white); + font-size: var(--text-2xl); + display: flex; + align-items: center; + gap: 5px; + } + } + & .modal-actions { + display: none !important; + } +} +.modal-body .icons{ + margin-top: 0px; + place-self: start; + & .desktop-icon{ + height: 126px; + width: 127px; + padding: 13px 16px 13px 16px; + & .icon-caption { + text-overflow: ellipsis; + text-wrap: wrap; + } + } +} +.desktop-context-menu{ + position: absolute; +} + +.folder-icon{ + background-color: var(--folder-icon-background-color) !important; + box-shadow: 0px 0px 1px 0px rgba(0, 0, 0, 0.14); + padding: 7px; + align-items: normal; + box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.14); + & .icons{ + gap: 2.1px; + margin-top: 0px; + & .desktop-icon { + width: fit-content; + height: fit-content; + pointer-events: none; + & .icon-container{ + height: var(--folder-thumbnail-icon-height); + width: var(--folder-thumbnail-icon-height); + padding: 0px; + border-radius: 2px; + & .icon{ + width: 5px; + height: 5px; + } + & img{ + width: 9px; + height: 9px; + } + } + + } + } +} +.page-indicator-container{ + display: flex; + justify-content: center; + gap: 5px; +} +.active-page{ + background: black !important; +} +.page-indicator{ + background: var(--gray-300); + width: 8px; + height: 8px; + border-radius: 50%; + +} +.no-apps-message{ + grid-column: 1 / -1; + grid-row: 1 / -1; +} +.right-page-arrow, .left-page-arrow{ + margin: 0px; +} \ No newline at end of file diff --git a/frappe/desk/page/desktop/desktop.html b/frappe/desk/page/desktop/desktop.html new file mode 100644 index 0000000000..15899c57eb --- /dev/null +++ b/frappe/desk/page/desktop/desktop.html @@ -0,0 +1,29 @@ + +
+ +
+
+
diff --git a/frappe/desk/page/desktop/desktop.js b/frappe/desk/page/desktop/desktop.js new file mode 100644 index 0000000000..40a8c0a852 --- /dev/null +++ b/frappe/desk/page/desktop/desktop.js @@ -0,0 +1,672 @@ +frappe.desktop_utils = {}; +$.extend(frappe.desktop_utils, { + modal: null, + modal_stack: [], + create_desktop_modal: function (icon, icon_title, icons_data, grid) { + if (!this.modal) { + this.modal = new DesktopModal(icon); + } + this.modal_stack.push(icon); + return this.modal; + }, + close_desktop_modal: function () { + if (this.modal) { + this.modal.hide(); + } + }, +}); +frappe.pages["desktop"].on_page_load = function (wrapper) { + var page = frappe.ui.make_app_page({ + parent: wrapper, + title: "Desktop", + single_column: true, + hide_sidebar: true, + }); + let desktop_page = new DesktopPage(page); + frappe.pages["desktop"].desktop_page = desktop_page; + // setup(); +}; + +function get_workspaces_from_app_name(app_name) { + const app = frappe.boot.app_data.filter((a) => { + return a.app_title === app_name; + }); + if (app.length > 0) return app[0].workspaces; +} + +function get_route(desktop_icon) { + let route; + if (!desktop_icon) return; + let item = {}; + if (desktop_icon.link_type == "External" && desktop_icon.link) { + route = window.location.origin + desktop_icon.link; + } else { + if (desktop_icon.link_type == "Workspace") { + item = { + type: desktop_icon.link_type, + link: frappe.router.slug(desktop_icon.link_to), + }; + } else if (desktop_icon.link_type == "DocType" || desktop_icon.link_type == "list") { + item = { + type: desktop_icon.link_type, + name: desktop_icon.link_to, + }; + } + route = frappe.utils.generate_route(item); + } + + return route; +} + +function get_desktop_icon_by_label(title, filters) { + if (!filters) { + return frappe.boot.desktop_icons.find((f) => f.label === title && f.hidden != 1); + } else { + return frappe.boot.desktop_icons.find((f) => { + return ( + f.label === title && + Object.keys(filters).every((key) => f[key] === filters[key]) && + f.hidden != 1 + ); + }); + } +} + +function get_desktop_icon_by_idx(idx, parent_icon) { + return frappe.boot.desktop_icons.find((f) => f.idx == idx && f.parent_icon == parent_icon); +} + +function save_desktop() { + // saving in localStorage; + localStorage.setItem( + `${frappe.session.user}:desktop`, + JSON.stringify(frappe.boot.desktop_icons) + ); + frappe.toast("Desktop Saved"); + frappe.pages["desktop"].desktop_page.update(); +} + +function reset_to_default() { + localStorage.setItem(`${frappe.session.user}:desktop`, null); +} + +frappe.pages["desktop"].on_page_show = function () { + frappe.pages["desktop"].desktop_page.setup(); +}; + +function toggle_icons(icons) { + icons.forEach((i) => { + $(i).parent().parent().show(); + }); +} + +class DesktopPage { + constructor(page) { + this.page = page; + this.prepare(); + this.make(page); + } + update() { + this.prepare(); + this.make(); + this.setup(); + } + + prepare() { + this.apps_icons = []; + + const icon_map = {}; + const all_icons = ( + JSON.parse(localStorage.getItem(`${frappe.session.user}:desktop`)) || + frappe.boot.desktop_icons + ).filter((icon) => { + if (icon.hidden != 1) { + icon.child_icons = []; + icon_map[icon.label] = icon; + return true; + } + return false; + }); + + all_icons.forEach((icon) => { + if (icon.parent_icon && icon_map[icon.parent_icon]) { + icon_map[icon.parent_icon].child_icons.push(icon); + } + + if (!icon.parent_icon || !icon_map[icon.parent_icon]) { + this.apps_icons.push(icon); + } + }); + } + + make() { + this.page.page_head.hide(); + $(this.page.body).empty(); + $(frappe.render_template("desktop")).appendTo(this.page.body); + this.wrapper = this.page.body.find(".desktop-container"); + this.icon_grid = new DesktopIconGrid({ + wrapper: this.wrapper, + icons_data: this.apps_icons, + page_size: { + row: 6, + col: 3, + }, + }); + } + + setup() { + this.setup_avatar(); + this.setup_navbar(); + this.setup_awesomebar(); + this.handke_route_change(); + } + setup_avatar() { + $(".desktop-avatar").html(frappe.avatar(frappe.session.user, "avatar-medium")); + $(".desktop-avatar").data("menu", "user-menu"); + let menu_items = [ + { + icon: "edit", + label: "Edit Profile", + url: `/update-profile/${frappe.session.user}`, + }, + { + icon: "lock", + label: "Reset Password", + url: "/update-password", + }, + { + icon: "rotate-ccw", + label: "Reset to Default", + onClick: function () { + reset_to_default(); + window.location.reload(); + }, + }, + { + icon: "log-out", + label: "Logout", + onClick: function () { + frappe.app.logout(); + }, + }, + ]; + frappe.ui.create_menu($(".desktop-avatar"), menu_items, null, true); + } + setup_navbar() { + $(".sticky-top > .navbar").hide(); + } + + setup_awesomebar() { + if (frappe.boot.desk_settings.search_bar) { + let awesome_bar = new frappe.search.AwesomeBar(); + awesome_bar.setup(".desktop-search-wrapper #navbar-search"); + } + frappe.ui.keys.add_shortcut({ + shortcut: "ctrl+g", + action: function (e) { + $(".desktop-search-wrapper #navbar-search").focus(); + e.preventDefault(); + return false; + }, + description: __("Open Awesomebar"), + }); + frappe.ui.keys.add_shortcut({ + shortcut: "ctrl+k", + action: function (e) { + $(".desktop-search-wrapper #navbar-search").focus(); + e.preventDefault(); + return false; + }, + description: __("Open Awesomebar"), + }); + } + handke_route_change() { + const me = this; + frappe.router.on("change", function () { + if (frappe.get_route()[0] == "desktop" || frappe.get_route()[0] == "") + me.setup_navbar(); + else { + $(".navbar").show(); + frappe.desktop_utils.close_desktop_modal(); + } + }); + } + + // setup_icon_search() { + // let all_icons = $(".icon-title"); + // let icons_to_show = []; + // $(".desktop-container .icons").append( + // "" + // ); + // $(".desktop-search-wrapper > #navbar-search").on("input", function (e) { + // let search_query = $(e.target).val().toLowerCase(); + // console.log(search_query); + // icons_to_show = []; + // all_icons.each(function (index, element) { + // $(element).parent().parent().hide(); + // let label = $(element).text().toLowerCase(); + // if (label.includes(search_query)) { + // icons_to_show.push(element); + // } + // }); + + // if (icons_to_show.length == 0) { + // $(".desktop-container .icons").find(".no-apps-message").removeClass("hidden"); + // } else { + // $(".desktop-container .icons").find(".no-apps-message").addClass("hidden"); + // } + // toggle_icons(icons_to_show); + // }); + // } +} + +class DesktopIconGrid { + constructor(opts) { + $.extend(this, opts); + this.icons = []; + this.icons_html = []; + this.page_size = { + col: opts.page_size?.col || 4, + row: opts.page_size?.row || 3, + total: function () { + return this.col * this.row; + }, + }; + this.grids = []; + this.prepare(); + this.make(); + } + + prepare() { + this.icons_data = this.icons_data.sort((a, b) => a.idx - b.idx); + this.total_pages = Math.ceil(this.icons_data.length / this.page_size.total()); + this.icons_data_by_page = this.split_data(this.icons_data, this.page_size.total()); + } + make() { + const me = this; + this.icons_container = $(`
`).appendTo(this.wrapper); + for (let i = 0; i < this.total_pages; i++) { + let template = `
`; + + if (this.row_size) { + template = ``; + } + this.grids.push($(template).appendTo(this.icons_container)); + this.make_icons(this.icons_data_by_page[i], this.grids[i]); + if (!this.no_dragging) { + this.setup_reordering(this.grids[i]); + } + } + if (!this.in_folder && this.total_pages > 1) { + this.add_page_indicators(); + this.setup_arrows(); + this.setup_pagination(); + this.setup_swipe_gesture(); + } else { + this.grids[0] && this.grids[0].css("display", "grid"); + } + } + setup_arrows() { + if (this.in_modal) { + const me = this; + this.wrapper + .parent() + .parent() + .parent() + .on("shown.bs.modal", function () { + me.add_arrows(); + }); + } else { + this.add_arrows(this.wrapper.find(".icons")); + } + } + setup_swipe_gesture() { + const me = this; + this.grids.forEach((grid) => { + $(grid).on("wheel", function (event) { + if (event.originalEvent) { + event = event.originalEvent; // for jQuery or wrapped events + } + + if (Math.abs(event.deltaX) > Math.abs(event.deltaY)) { + event.preventDefault(); + if (event.deltaX > 0) { + if (me.current_page != me.total_pages - 1) me.current_page++; + me.change_to_page(me.current_page); + } else { + if (me.current_page != 0) me.current_page--; + me.change_to_page(me.current_page); + } + } + }); + }); + } + add_arrows(element) { + if (!element) element = this.wrapper; + const me = this; + let stroke_color = "black"; + let horizontal_movement = 0; + if (this.in_modal) { + stroke_color = "white"; + horizontal_movement = "-40px"; + } + this.left_arrow = $( + frappe.utils.icon("chevron-left", "lg", "", "", "left-page-arrow", "", stroke_color) + ); + this.right_arrow = $( + frappe.utils.icon("chevron-right", "lg", "", "", "right-page-arrow", "", stroke_color) + ); + + this.icons_container.before(this.left_arrow); + this.icons_container.after(this.right_arrow); + + let wrapper_style = getComputedStyle(element.get(0)); + let total_height = parseInt(wrapper_style.height) - 2 * parseInt(wrapper_style.paddingTop); + + this.left_arrow.css("top", `${total_height / 2}px`); + this.right_arrow.css("top", `${total_height / 2}px`); + if (horizontal_movement) { + this.left_arrow.css("left", horizontal_movement); + this.right_arrow.css("right", horizontal_movement); + this.left_arrow.css("position", "absolute"); + this.right_arrow.css("position", "absolute"); + } + this.left_arrow.on("click", function () { + if (me.current_page != 0) me.current_page--; + me.change_to_page(me.current_page); + }); + this.right_arrow.on("click", function () { + if (me.current_page != me.total_pages - 1) me.current_page++; + me.change_to_page(me.current_page); + }); + } + add_page_indicators(tempplate) { + this.page_indicators = []; + if (this.total_pages > 1) { + this.pagination_indicator = $(`
`).appendTo( + this.icons_container + ); + for (let i = 0; i < this.total_pages; i++) { + this.page_indicators.push( + $("
").appendTo(this.pagination_indicator) + ); + } + } + } + setup_pagination() { + this.current_page = this.old_index = 0; + this.change_to_page(this.current_page); + } + change_to_page(index) { + this.grids.forEach((g) => $(g).css("display", "none")); + this.grids[index].css("display", "grid"); + + if (this.page_indicators.length) { + this.page_indicators[this.old_index].removeClass("active-page"); + this.page_indicators[this.current_page].addClass("active-page"); + } + this.current_page = index; + this.old_index = index; + } + + split_data(icons, size) { + const result = []; + + for (let i = 0; i < icons.length; i += size) { + result.push(icons.slice(i, i + size)); + } + + return result; + } + make_icons(icons_data, grid) { + icons_data.forEach((icon) => { + let icon_obj = new DesktopIcon(icon, this.in_folder); + let icon_html = icon_obj.get_desktop_icon_html(); + this.icons.push(icon_obj); + this.icons_html.push(icon_html); + grid.append(icon_html); + }); + } + + setup_reordering(grid) { + const me = this; + this.hoverTarget = null; + this.hoverTimer = null; + this.sortable = new Sortable($(grid).get(0), { + swapThreshold: 0.09, + animation: 150, + sort: true, // keep sorting normally + dragoverBubble: true, + group: { + name: "desktop", + put: true, + pull: true, + }, + setData: function (/** DataTransfer */ dataTransfer, /** HTMLElement*/ dragEl) { + let title = $(dragEl).find(".icon-title").text(); + let icon = me.icons.find((d) => { + return d.icon_title === title; + }); + dataTransfer.setData("text/plain", JSON.stringify(icon.icon_data)); // `dataTransfer` object of HTML5 DragEvent + }, + onEnd: function (evt) { + if (evt.oldIndex !== evt.newIndex) { + if (evt.to.parentElement == evt.from.parentElement) { + let reordered_icons = me.sortable.toArray(); + let filters = { + parent_icon: me.parent_icon?.icon_data.label || null, + }; + me.reorder_icons(reordered_icons, filters); + me.parent_icon?.render_folder_thumbnail(); + } else { + let from = $(evt.from.parentElement); + let to = $(evt.to.parentElement); + let title = $(evt.item).find(".icon-title").text(); + let selected_icon = get_desktop_icon_by_label(title); + if ($(to.get(0).parentElement)) { + me.reorder_icons(me.sortable.toArray()); + me.reorder_icons( + frappe.pages["desktop"].desktop_page.icon_grid.sortable.toArray() + ); + selected_icon.idx = evt.newIndex; + selected_icon.parent_icon = null; + } + } + } else { + frappe.toast("Nothing changed"); + } + save_desktop(); + }, + }); + } + reorder_icons(reordered_icons, filters) { + reordered_icons.forEach((d, idx) => { + let icon = get_desktop_icon_by_label(d, filters); + if (icon) { + icon.idx = idx; + } + }); + } + add_to_main_screen(title) { + let icon = get_desktop_icon_by_label(title); + icon.parent_icon = null; + } +} +class DesktopIcon { + constructor(icon, in_folder) { + this.icon_data = icon; + this.icon_title = this.icon_data.label; + this.icon_subtitle = ""; + this.icon_type = this.icon_data.icon_type; + this.in_folder = in_folder; + this.link_type = this.icon_data.link_type; + if (this.icon_type != "Folder" && !this.icon_data.sidebar) { + this.icon_route = get_route(this.icon_data); + } + this.icon = $( + frappe.render_template("desktop_icon", { icon: this.icon_data, in_folder: in_folder }) + ); + + this.icon_caption_area = $(this.icon.get(0).children[1]); + this.child_icons = this.get_child_icons_data(); + // this.child_icons = this.get_desktop_icon(this.icon_title).child_icons; + // this.child_icons_data = this.get_child_icons_data(); + this.parent_icon = this.icon_data.icon; + this.setup_click(); + this.render_folder_thumbnail(); + this.setup_dragging(); + this.child_icons = this.get_child_icons_data(); + } + + get_child_icons_data() { + return this.icon_data.child_icons.sort((a, b) => a.idx - b.idx); + } + get_desktop_icon_html() { + return this.icon; + } + setup_click() { + const me = this; + if (this.child_icons.length && (this.icon_type == "App" || this.icon_type == "Folder")) { + $(this.icon).on("click", () => { + let modal = frappe.desktop_utils.create_desktop_modal(me); + modal.setup(me.icon_title, me.child_icons, 4); + modal.show(); + }); + if (this.icon_type == "App") { + $($(this.icon_caption_area).children()[1]).html( + `${this.child_icons.length} Workspaces` + ); + } + } else { + this.icon.attr("href", this.icon_route); + } + if (this.icon_data.sidebar) { + const me = this; + this.icon.on("click", function () { + if (me.icon_data.sidebar == "My Workspaces") { + let sidebar_name = me.icon_data.sidebar.toLowerCase(); + if (frappe.boot.workspace_sidebar_item[sidebar_name].items.length == 0) { + frappe.toast("No Private Workspaces for user"); + } else { + let workspace_name = + frappe.boot.workspace_sidebar_item[sidebar_name].items[0]["link_to"]; + frappe.set_route("Workspaces", "private", workspace_name); + } + } + }); + } + } + + render_folder_thumbnail() { + let condition = + frappe.boot.show_app_icons_as_folder && + this.icon_type == "App" && + this.child_icons.length > 0; + if (this.icon_type == "Folder" || condition) { + if (!this.folder_wrapper) this.folder_wrapper = this.icon.find(".icon-container"); + this.folder_wrapper.html(""); + this.folder_grid = new DesktopIconGrid({ + wrapper: this.folder_wrapper, + icons_data: this.child_icons, + row_size: 3, + page_size: { + row: 3, + col: 3, + }, + in_folder: true, + in_modal: false, + no_dragging: true, + }); + if (this.icon_type == "App") { + this.folder_wrapper.addClass("folder-icon"); + } + } + } + + setup_dragging() { + this.icon.on("drag", (event) => { + const mouse_x = event.clientX; + const mouse_y = event.clientY; + if (frappe.desktop_utils.modal) { + let modal = frappe.desktop_utils.modal.modal + .find(".modal-content") + .get(0) + .getBoundingClientRect(); + if ( + mouse_x > modal.right || + mouse_x < modal.left || + mouse_y > modal.bottom || + mouse_y < modal.top + ) { + frappe.desktop_utils.close_desktop_modal(); + } + } + }); + } +} + +class DesktopModal { + constructor(icon) { + this.parent_icon_obj = icon; + } + setup(icon_title, child_icons_data, grid_row_size) { + const me = this; + this.make_modal(icon_title); + this.child_icon_grid = new DesktopIconGrid({ + wrapper: this.$child_icons_wrapper, + icons_data: child_icons_data, + row_size: grid_row_size, + in_folder: false, + in_modal: true, + parent_icon: this.parent_icon_obj, + }); + + this.modal.on("hidden.bs.modal", function () { + me.modal.remove(); + frappe.desktop_utils.modal = null; + frappe.desktop_utils.modal_stack = []; + }); + } + make_modal(icon_title) { + if ($(".desktop-modal").length == 0) { + this.modal = new frappe.get_modal(icon_title, ""); + this.modal.find(".modal-header").addClass("desktop-modal-heading"); + this.modal.addClass("desktop-modal"); + this.modal.find(".modal-dialog").attr("id", "desktop-modal"); + this.modal.find(".modal-body").addClass("desktop-modal-body"); + this.$child_icons_wrapper = this.modal.find(".desktop-modal-body"); + } else { + this.modal.find(".modal-title").text(icon_title); + $(this.modal.find(".modal-body")).empty(); + if (frappe.desktop_utils.modal_stack.length == 1) { + this.title_section.find(".icon").remove(); + } else { + this.add_back_button(); + } + } + } + add_back_button() { + const me = this; + this.title_section = this.modal.find(".title-section").find(".modal-title"); + $(this.title_section).prepend( + frappe.utils.icon("chevron-left", "md", "", "", "", "", "white") + ); + $(this.title_section) + .find(".icon") + .on("click", function () { + const [prev] = frappe.desktop_utils.modal_stack.splice(-1, 1); + let icon = + frappe.desktop_utils.modal_stack[frappe.desktop_utils.modal_stack.length - 1]; + if (icon) { + me.setup(icon.icon_title, icon.child_icons, 4); + me.show(); + } + }); + } + show() { + this.modal.modal("show"); + } + hide() { + this.modal.modal("hide"); + } +} diff --git a/frappe/desk/page/desktop/desktop.json b/frappe/desk/page/desktop/desktop.json new file mode 100644 index 0000000000..ea61c81769 --- /dev/null +++ b/frappe/desk/page/desktop/desktop.json @@ -0,0 +1,24 @@ +{ + "content": null, + "creation": "2025-08-18 16:17:07.259326", + "docstatus": 0, + "doctype": "Page", + "icon": "", + "idx": 0, + "modified": "2025-10-08 13:31:06.525425", + "modified_by": "Administrator", + "module": "Desk", + "name": "desktop", + "owner": "Administrator", + "page_name": "desktop", + "roles": [ + { + "role": "All" + } + ], + "script": null, + "standard": "Yes", + "style": null, + "system_page": 1, + "title": "Desktop" +} diff --git a/frappe/desk/page/desktop/desktop.py b/frappe/desk/page/desktop/desktop.py new file mode 100644 index 0000000000..b73f1bfa37 --- /dev/null +++ b/frappe/desk/page/desktop/desktop.py @@ -0,0 +1,16 @@ +import frappe +from frappe.desk.doctype.desktop_icon.desktop_icon import get_desktop_icons + + +def get_context(context): + if frappe.session.user == "Guest": + frappe.local.flags.redirect_location = "/app" + raise frappe.Redirect + brand_logo = None + brand_logo = frappe.get_single_value("Navbar Settings", "app_logo") + if not brand_logo: + brand_logo = frappe.get_hooks("app_logo_url", app_name="frappe")[0] + context.brand_logo = brand_logo + context.desktop_icons = get_desktop_icons() + context.current_user = frappe.session.user + return context diff --git a/frappe/desk/page/setup_wizard/setup_wizard.js b/frappe/desk/page/setup_wizard/setup_wizard.js index 5f9a6a5283..05515f78dd 100644 --- a/frappe/desk/page/setup_wizard/setup_wizard.js +++ b/frappe/desk/page/setup_wizard/setup_wizard.js @@ -32,7 +32,7 @@ frappe.setup = { frappe.pages["setup-wizard"].on_page_load = function (wrapper) { if (frappe.boot.setup_complete) { - window.location.href = frappe.boot.apps_data.default_path || "/app"; + window.location.href = frappe.boot.apps_data.default_path || "/desk"; } let requires = frappe.boot.setup_wizard_requires || []; frappe.require(requires, function () { @@ -219,7 +219,7 @@ frappe.setup.SetupWizard = class SetupWizard extends frappe.ui.Slides { localStorage.current_route = ""; localStorage.current_app = ""; - window.location.href = current_route || frappe.boot.apps_data.default_path || "/app"; + window.location.href = current_route || frappe.boot.apps_data.default_path || "/desk"; }, 2000); } diff --git a/frappe/desk/reportview.py b/frappe/desk/reportview.py index c56bcdadb1..7af8008965 100644 --- a/frappe/desk/reportview.py +++ b/frappe/desk/reportview.py @@ -63,6 +63,7 @@ def get_count() -> int | None: distinct = "distinct " if args.distinct else "" args.limit = cint(args.limit) fieldname = f"{distinct}`tab{args.doctype}`.name" + args.pop("distinct") # to avoid a double DISTINCT concat in db_query args.order_by = None # args.limit is specified to avoid getting accurate count. @@ -125,6 +126,10 @@ def validate_fields(data): wildcard = update_wildcard_field_param(data) for field in list(data.fields or []): + # TODO: extract_fieldnames needs to handle dict fields for qb_query aggregations + if isinstance(field, dict): + continue + fieldname = extract_fieldnames(field)[0] if not fieldname: raise_invalid_field(fieldname) @@ -685,7 +690,7 @@ def get_stats(stats, doctype, filters=None): try: tag_count = frappe.get_list( doctype, - fields=[column, "count(*)"], + fields=[column, {"COUNT": "*"}], filters=[*filters, [column, "!=", ""]], group_by=column, as_list=True, @@ -696,7 +701,7 @@ def get_stats(stats, doctype, filters=None): results[column] = scrub_user_tags(tag_count) no_tag_count = frappe.get_list( doctype, - fields=[column, "count(*)"], + fields=[column, {"COUNT": "1"}], filters=[*filters, [column, "in", ("", ",")]], as_list=True, group_by=column, @@ -735,7 +740,7 @@ def get_filter_dashboard_data(stats, doctype, filters=None): if tag["type"] not in ["Date", "Datetime"]: tagcount = frappe.get_list( doctype, - fields=[tag["name"], "count(*)"], + fields=[tag["name"], {"COUNT": "*"}], filters=[*filters, "ifnull(`{}`,'')!=''".format(tag["name"])], group_by=tag["name"], as_list=True, @@ -757,7 +762,7 @@ def get_filter_dashboard_data(stats, doctype, filters=None): "No Data", frappe.get_list( doctype, - fields=[tag["name"], "count(*)"], + fields=[tag["name"], {"COUNT": "*"}], filters=[*filters, "({0} = '' or {0} is null)".format(tag["name"])], as_list=True, )[0][1], diff --git a/frappe/desk/search.py b/frappe/desk/search.py index 3bafdcb2bd..b26c240d18 100644 --- a/frappe/desk/search.py +++ b/frappe/desk/search.py @@ -163,25 +163,29 @@ def search_widget( fields = get_std_fields_list(meta, searchfield or "name") if filter_fields: fields = list(set(fields + json.loads(filter_fields))) - formatted_fields = [f"`tab{meta.name}`.`{f.strip()}`" for f in fields] + formatted_fields = [f.strip() for f in fields] # Insert title field query after name if meta.show_title_field_in_link and meta.title_field: - formatted_fields.insert(1, f"`tab{meta.name}`.{meta.title_field} as `label`") + formatted_fields.insert(1, f"{meta.title_field} as label") order_by_based_on_meta = get_order_by(doctype, meta) # `idx` is number of times a document is referred, check link_count.py - order_by = f"`tab{doctype}`.idx desc, {order_by_based_on_meta}" + order_by = f"idx desc, {order_by_based_on_meta}" if not meta.translated_doctype: _txt = frappe.db.escape((txt or "").replace("%", "").replace("@", "")) # locate returns 0 if string is not found, convert 0 to null and then sort null to end in order by - _relevance = f"(1 / nullif(locate({_txt}, `tab{doctype}`.`name`), 0))" - formatted_fields.append(f"""{_relevance} as `_relevance`""") - # Since we are sorting by alias postgres needs to know number of column we are sorting + _relevance_expr = {"DIV": [1, {"NULLIF": [{"LOCATE": [_txt, "name"]}, 0]}]} + + # For MariaDB, wrap in IFNULL for sorting to push nulls to end if frappe.db.db_type == "mariadb": - order_by = f"ifnull(_relevance, -9999) desc, {order_by}" + _relevance = {"IFNULL": [_relevance_expr, -9999], "as": "_relevance"} + formatted_fields.append(_relevance) + order_by = f"_relevance desc, {order_by}" elif frappe.db.db_type == "postgres": + _relevance = {**_relevance_expr, "as": "_relevance"} + formatted_fields.append(_relevance) # Since we are sorting by alias postgres needs to know number of column we are sorting order_by = f"{len(formatted_fields)} desc nulls last, {order_by}" diff --git a/frappe/desk/treeview.py b/frappe/desk/treeview.py index 3e73db2806..238557a4c9 100644 --- a/frappe/desk/treeview.py +++ b/frappe/desk/treeview.py @@ -3,6 +3,7 @@ import frappe from frappe import _ +from frappe.query_builder import Field, functions @frappe.whitelist() @@ -42,24 +43,25 @@ def get_children(doctype, parent="", include_disabled=False, **filters): def _get_children(doctype, parent="", ignore_permissions=False, include_disabled=False): parent_field = "parent_" + frappe.scrub(doctype) - filters = [[f"ifnull(`{parent_field}`,'')", "=", parent], ["docstatus", "<", 2]] - if frappe.db.has_column(doctype, "disabled") and not include_disabled: - filters.append(["disabled", "=", False]) - meta = frappe.get_meta(doctype) - return frappe.get_list( - doctype, - fields=[ - "name as value", - "{} as title".format(meta.get("title_field") or "name"), - "is_group as expandable", - ], - filters=filters, - order_by="name", - ignore_permissions=ignore_permissions, + qb = ( + frappe.qb.from_(doctype) + .select( + Field("name").as_("value"), + Field(meta.get("title_field") or "name").as_("title"), + Field("is_group").as_("expandable"), + ) + .where(functions.IfNull(Field(parent_field), "").eq(parent)) + .where(Field("docstatus") < 2) ) + if frappe.db.has_column(doctype, "disabled") and not include_disabled: + qb = qb.where(Field("disabled").eq(False)) + + # Order by name and execute + return qb.orderby("name").run(as_dict=True) + @frappe.whitelist() def add_node(): diff --git a/frappe/desktop_icon/automation.json b/frappe/desktop_icon/automation.json new file mode 100644 index 0000000000..d29b78d112 --- /dev/null +++ b/frappe/desktop_icon/automation.json @@ -0,0 +1,20 @@ +{ + "app": "frappe", + "creation": "2025-11-05 23:58:08.187208", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "repeat-2", + "icon_type": "Link", + "idx": 0, + "label": "Automation", + "link_to": "Assignment Rule", + "link_type": "DocType", + "modified": "2025-11-13 16:00:56.971828", + "modified_by": "Administrator", + "name": "Automation", + "owner": "Administrator", + "parent_icon": "Frappe Framework", + "roles": [], + "standard": 1 +} diff --git a/frappe/desktop_icon/build.json b/frappe/desktop_icon/build.json new file mode 100644 index 0000000000..b3efab27ee --- /dev/null +++ b/frappe/desktop_icon/build.json @@ -0,0 +1,20 @@ +{ + "app": "frappe", + "creation": "2025-11-05 11:24:16.723769", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "hammer", + "icon_type": "Link", + "idx": 0, + "label": "Build", + "link_to": "DocType", + "link_type": "DocType", + "modified": "2025-11-13 16:00:56.980768", + "modified_by": "Administrator", + "name": "Build", + "owner": "Administrator", + "parent_icon": "Frappe Framework", + "roles": [], + "standard": 1 +} diff --git a/frappe/desktop_icon/data.json b/frappe/desktop_icon/data.json new file mode 100644 index 0000000000..2d82bbe300 --- /dev/null +++ b/frappe/desktop_icon/data.json @@ -0,0 +1,35 @@ +{ + "app": "frappe", + "creation": "2025-11-11 02:27:30.898706", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "table_2", + "icon_type": "Link", + "idx": 0, + "label": "Data", + "link_to": "Data Import", + "link_type": "DocType", + "modified": "2025-11-13 16:46:11.428362", + "modified_by": "Administrator", + "name": "Data", + "owner": "Administrator", + "parent_icon": "Frappe Framework", + "roles": [ + { + "creation": "2025-10-31 12:58:11.621125", + "docstatus": 0, + "doctype": "Has Role", + "idx": 1, + "modified": "2025-11-13 16:46:11.428362", + "modified_by": "Administrator", + "name": "q8qhb7fg13", + "owner": "Administrator", + "parent": "Data", + "parentfield": "roles", + "parenttype": "Desktop Icon", + "role": "Accounts User" + } + ], + "standard": 1 +} diff --git a/frappe/desktop_icon/email.json b/frappe/desktop_icon/email.json new file mode 100644 index 0000000000..da7e41b967 --- /dev/null +++ b/frappe/desktop_icon/email.json @@ -0,0 +1,20 @@ +{ + "app": "frappe", + "creation": "2025-11-05 22:24:50.822193", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "mail", + "icon_type": "Link", + "idx": 0, + "label": "Email", + "link_to": "Email Account", + "link_type": "DocType", + "modified": "2025-11-13 16:00:56.976167", + "modified_by": "Administrator", + "name": "Email", + "owner": "Administrator", + "parent_icon": "Frappe Framework", + "roles": [], + "standard": 1 +} diff --git a/frappe/desktop_icon/frappe_framework.json b/frappe/desktop_icon/frappe_framework.json new file mode 100644 index 0000000000..4f66404732 --- /dev/null +++ b/frappe/desktop_icon/frappe_framework.json @@ -0,0 +1,34 @@ +{ + "app": "frappe", + "creation": "2025-10-31 00:06:17.823417", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon_type": "App", + "idx": 101, + "label": "Frappe Framework", + "link": "/app/build", + "link_type": "External", + "logo_url": "/assets/frappe/images/frappe-framework-logo.svg", + "modified": "2025-11-17 15:50:52.686928", + "modified_by": "Administrator", + "name": "Frappe Framework", + "owner": "Administrator", + "roles": [ + { + "creation": "2025-10-31 00:06:17.823417", + "docstatus": 0, + "doctype": "Has Role", + "idx": 1, + "modified": "2025-11-17 15:50:52.686928", + "modified_by": "Administrator", + "name": "osnc6bpj4v", + "owner": "Administrator", + "parent": "Frappe Framework", + "parentfield": "roles", + "parenttype": "Desktop Icon", + "role": "System Manager" + } + ], + "standard": 1 +} diff --git a/frappe/desktop_icon/integrations.json b/frappe/desktop_icon/integrations.json new file mode 100644 index 0000000000..75ad56fb0f --- /dev/null +++ b/frappe/desktop_icon/integrations.json @@ -0,0 +1,20 @@ +{ + "app": "frappe", + "creation": "2025-11-05 11:24:16.753521", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "integration", + "icon_type": "Link", + "idx": 0, + "label": "Integrations", + "link_to": "Connected App", + "link_type": "DocType", + "modified": "2025-11-13 16:00:56.967719", + "modified_by": "Administrator", + "name": "Integrations", + "owner": "Administrator", + "parent_icon": "Frappe Framework", + "roles": [], + "standard": 1 +} diff --git a/frappe/desktop_icon/my_workspaces.json b/frappe/desktop_icon/my_workspaces.json new file mode 100644 index 0000000000..1bce3c052c --- /dev/null +++ b/frappe/desktop_icon/my_workspaces.json @@ -0,0 +1,20 @@ +{ + "app": "frappe", + "creation": "2025-11-16 01:29:41.871347", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "user-round", + "icon_type": "Link", + "idx": 101, + "label": "My Workspaces", + "link_to": "", + "link_type": "DocType", + "modified": "2025-11-17 16:04:09.545862", + "modified_by": "Administrator", + "name": "My Workspaces", + "owner": "Administrator", + "roles": [], + "sidebar": "My Workspaces", + "standard": 1 +} diff --git a/frappe/desktop_icon/printing.json b/frappe/desktop_icon/printing.json new file mode 100644 index 0000000000..d828526610 --- /dev/null +++ b/frappe/desktop_icon/printing.json @@ -0,0 +1,35 @@ +{ + "app": "frappe", + "creation": "2025-11-06 10:43:13.440877", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "printer", + "icon_type": "Link", + "idx": 0, + "label": "Printing", + "link_to": "Print Format", + "link_type": "DocType", + "modified": "2025-11-13 16:39:42.995097", + "modified_by": "Administrator", + "name": "Printing", + "owner": "Administrator", + "parent_icon": "Frappe Framework", + "roles": [ + { + "creation": "2025-10-31 13:08:16.747930", + "docstatus": 0, + "doctype": "Has Role", + "idx": 1, + "modified": "2025-11-13 16:39:42.995097", + "modified_by": "Administrator", + "name": "3sjtumcivg", + "owner": "Administrator", + "parent": "Printing", + "parentfield": "roles", + "parenttype": "Desktop Icon", + "role": "System Manager" + } + ], + "standard": 1 +} diff --git a/frappe/desktop_icon/users.json b/frappe/desktop_icon/users.json new file mode 100644 index 0000000000..932ec58a31 --- /dev/null +++ b/frappe/desktop_icon/users.json @@ -0,0 +1,20 @@ +{ + "app": "frappe", + "creation": "2025-11-05 11:24:16.756563", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "users", + "icon_type": "Link", + "idx": 0, + "label": "Users", + "link_to": "Users", + "link_type": "Workspace", + "modified": "2025-11-13 16:00:56.962638", + "modified_by": "Administrator", + "name": "Users", + "owner": "Administrator", + "parent_icon": "Frappe Framework", + "roles": [], + "standard": 1 +} diff --git a/frappe/desktop_icon/website.json b/frappe/desktop_icon/website.json new file mode 100644 index 0000000000..8846f81051 --- /dev/null +++ b/frappe/desktop_icon/website.json @@ -0,0 +1,20 @@ +{ + "app": "frappe", + "creation": "2025-11-05 11:24:16.762628", + "docstatus": 0, + "doctype": "Desktop Icon", + "hidden": 0, + "icon": "website", + "icon_type": "Link", + "idx": 0, + "label": "Website", + "link_to": "Website", + "link_type": "Workspace", + "modified": "2025-11-13 16:00:56.957106", + "modified_by": "Administrator", + "name": "Website", + "owner": "Administrator", + "parent_icon": "Frappe Framework", + "roles": [], + "standard": 1 +} diff --git a/frappe/email/doctype/auto_email_report/auto_email_report.js b/frappe/email/doctype/auto_email_report/auto_email_report.js index d7db8fc477..1f2ca849ac 100644 --- a/frappe/email/doctype/auto_email_report/auto_email_report.js +++ b/frappe/email/doctype/auto_email_report/auto_email_report.js @@ -171,9 +171,13 @@ frappe.ui.form.on("Auto Email Report", { .appendTo(row); }); + // remove mandatory but hidden filters from dialog + const dialog_filter_fields = report_filters.filter( + (f) => !(f.hidden == 1 && f.reqd == 1) + ); table.on("click", function () { dialog = new frappe.ui.Dialog({ - fields: report_filters, + fields: dialog_filter_fields, primary_action: function () { var values = this.get_values(); if (values) { 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 9f83923302..f92562abe5 100644 --- a/frappe/email/doctype/auto_email_report/auto_email_report.py +++ b/frappe/email/doctype/auto_email_report/auto_email_report.py @@ -124,7 +124,9 @@ class AutoEmailReport(Document): filters = frappe.parse_json(self.filters) if self.filters else {} filter_meta = frappe.parse_json(self.filter_meta) if self.filter_meta else {} throw_list = [ - meta["label"] for meta in filter_meta if meta.get("reqd") and not filters.get(meta["fieldname"]) + meta["label"] + for meta in filter_meta + if (meta.get("reqd") and (not meta.get("hidden"))) and not filters.get(meta["fieldname"]) ] if throw_list: frappe.throw( diff --git a/frappe/email/doctype/email_account/email_account.py b/frappe/email/doctype/email_account/email_account.py index c41f1b8454..67559fe8d6 100755 --- a/frappe/email/doctype/email_account/email_account.py +++ b/frappe/email/doctype/email_account/email_account.py @@ -950,7 +950,7 @@ def get_max_email_uid(email_account): "sent_or_received": "Received", "email_account": email_account, }, - fields=["max(uid) as uid"], + fields=[{"MAX": "uid", "as": "uid"}], ): return cint(result[0].get("uid", 0)) + 1 return 1 diff --git a/frappe/email/doctype/email_queue/email_queue.js b/frappe/email/doctype/email_queue/email_queue.js index 6552f6fc28..e054b1e7a9 100644 --- a/frappe/email/doctype/email_queue/email_queue.js +++ b/frappe/email/doctype/email_queue/email_queue.js @@ -43,5 +43,11 @@ frappe.ui.form.on("Email Queue", { }); }); } + + if (frm.doc.__onload?.mute_emails) { + frm.dashboard.set_headline( + __("Automatic sending of emails is disabled via site config.") + ); + } }, }); diff --git a/frappe/email/doctype/email_queue/email_queue.py b/frappe/email/doctype/email_queue/email_queue.py index 68cecd4d0e..86bdd1b8bf 100644 --- a/frappe/email/doctype/email_queue/email_queue.py +++ b/frappe/email/doctype/email_queue/email_queue.py @@ -12,7 +12,7 @@ from email.policy import SMTP from typing import TYPE_CHECKING import frappe -from frappe import _, safe_encode, task +from frappe import _, are_emails_muted, safe_encode, task from frappe.core.utils import html2text from frappe.database.database import savepoint from frappe.email.doctype.email_account.email_account import EmailAccount @@ -74,6 +74,9 @@ class EmailQueue(Document): DOCTYPE = "Email Queue" + def onload(self): + self.set_onload("mute_emails", bool(are_emails_muted())) + def set_recipients(self, recipients): self.set("recipients", []) for r in recipients: diff --git a/frappe/email/doctype/notification/notification.js b/frappe/email/doctype/notification/notification.js index 518b06daaa..ebd57b05c3 100644 --- a/frappe/email/doctype/notification/notification.js +++ b/frappe/email/doctype/notification/notification.js @@ -105,6 +105,14 @@ frappe.notification = { "options", [""].concat(["owner"]).concat(receiver_fields) ); + + // set options for "From Attach Field" + let attach_fields = fields.filter((d) => d.fieldtype === "Attach"); + let attach_options = $.map(attach_fields, function (d) { + return get_select_options(d); + }); + + frm.set_df_property("from_attach_field", "options", [""].concat(attach_options)); }); }, setup_example_message: function (frm) { diff --git a/frappe/email/doctype/notification/notification.json b/frappe/email/doctype/notification/notification.json index fc1da87657..b51d884859 100644 --- a/frappe/email/doctype/notification/notification.json +++ b/frappe/email/doctype/notification/notification.json @@ -48,7 +48,10 @@ "view_properties", "column_break_25", "attach_print", - "print_format" + "print_format", + "column_break_llcs", + "attach_files", + "from_attach_field" ], "fields": [ { @@ -260,7 +263,7 @@ "collapsible_depends_on": "attach_print", "fieldname": "column_break_25", "fieldtype": "Section Break", - "label": "Print Settings" + "label": "Attachment Settings" }, { "default": "0", @@ -337,13 +340,30 @@ "fieldname": "filters_section", "fieldtype": "Section Break", "label": "Filters" + }, + { + "fieldname": "column_break_llcs", + "fieldtype": "Column Break" + }, + { + "fieldname": "attach_files", + "fieldtype": "Select", + "label": "Attach Files", + "options": "\nFrom Field\nAll" + }, + { + "depends_on": "eval:doc.attach_files === \"From Field\"", + "fieldname": "from_attach_field", + "fieldtype": "Select", + "label": "From Attach Field", + "mandatory_depends_on": "eval:doc.attach_files === \"From Field\"" } ], "grid_page_length": 50, "icon": "fa fa-envelope", "index_web_pages_for_search": 1, "links": [], - "modified": "2025-10-21 18:54:38.454748", + "modified": "2025-10-21 23:14:52.345857", "modified_by": "Administrator", "module": "Email", "name": "Notification", diff --git a/frappe/email/doctype/notification/notification.py b/frappe/email/doctype/notification/notification.py index a094c3f1b5..7c0efb1fbc 100644 --- a/frappe/email/doctype/notification/notification.py +++ b/frappe/email/doctype/notification/notification.py @@ -34,6 +34,7 @@ class Notification(Document): from frappe.email.doctype.notification_recipient.notification_recipient import NotificationRecipient from frappe.types import DF + attach_files: DF.Literal["", "From Field", "All"] attach_print: DF.Check channel: DF.Literal["Email", "Slack", "System Notification", "SMS"] condition: DF.Code | None @@ -59,6 +60,7 @@ class Notification(Document): "Custom", ] filters: DF.Code | None + from_attach_field: DF.Literal[None] is_standard: DF.Check message: DF.Code | None message_type: DF.Literal["Markdown", "HTML", "Plain Text"] @@ -166,6 +168,9 @@ class Notification(Document): if self.event == "Value Change" and not self.value_changed: frappe.throw(_("Please specify which value field must be checked")) + if self.attach_files == "From Field" and not self.from_attach_field: + frappe.throw(_("Please specify the field from which to attach files")) + self.validate_forbidden_document_types() self.validate_condition() self.validate_filters() @@ -445,7 +450,7 @@ def get_context(context): "subject": subject, "from_user": doc.modified_by or doc.owner, "email_content": frappe.render_template(self.message, context), - "attached_file": attachments and json.dumps(attachments[0]), + "attached_file": json.dumps(attachments) if attachments else None, } enqueue_create_notification(users, notification_doc) @@ -490,6 +495,13 @@ def get_context(context): comm = frappe.get_lazy_doc("Communication", communication) comm.get_outgoing_email_account() + # We expect at most one print format attachment, but we don't know where it is. + print_letterhead = any( + attachment.get("print_letterhead") + for attachment in attachments + if attachment.get("print_format_attachment") == 1 + ) + frappe.sendmail( recipients=recipients, subject=subject, @@ -501,7 +513,7 @@ def get_context(context): reference_name=get_reference_name(doc), attachments=attachments, expose_recipients="header", - print_letterhead=((attachments and attachments[0].get("print_letterhead")) or False), + print_letterhead=print_letterhead, communication=communication, ) @@ -624,10 +636,28 @@ def get_context(context): return list(set(receiver_list)) - def get_attachment(self, doc): - """check print settings are attach the pdf""" - if not self.attach_print: - return None + def get_attachment(self, doc) -> list[dict]: + """Check Attachment Settings and return attachments accordingly""" + attachments = [] + + if self.attach_print: + attachments.append(self.get_print(doc)) + + if self.attach_files == "From Field" and self.from_attach_field: + attachments.append({"file_url": doc.get(self.from_attach_field)}) + elif self.attach_files == "All": + attachments.extend( + frappe.get_all( + "File", + fields=["file_url"], + filters={"attached_to_doctype": self.document_type, "attached_to_name": doc.name}, + ) + ) + + return attachments + + def get_print(self, doc): + """check print settings and return dict with print info""" print_settings = frappe.get_doc("Print Settings", "Print Settings") if (doc.docstatus == 0 and not print_settings.allow_print_for_draft) or ( @@ -642,18 +672,17 @@ def get_context(context): title=_("Error in Notification"), ) else: - return [ - { - "print_format_attachment": 1, - "doctype": doc.doctype, - "name": doc.name, - "print_format": self.print_format, - "print_letterhead": print_settings.with_letterhead, - "lang": frappe.db.get_value("Print Format", self.print_format, "default_print_language") - if self.print_format - else "en", - } - ] + return { + "print_format_attachment": 1, + "doctype": doc.doctype, + "name": doc.name, + "print_format": self.print_format, + "print_letterhead": print_settings.with_letterhead, + "lang": doc.get("language") + or frappe.db.get_value("Print Format", self.print_format, "default_print_language") + if self.print_format + else "en", + } def get_template(self, md_as_html=False): module = get_doc_module(self.module, self.doctype, self.name) diff --git a/frappe/email/doctype/notification/test_notification.py b/frappe/email/doctype/notification/test_notification.py index 63f3a630df..0826eb4a0c 100644 --- a/frappe/email/doctype/notification/test_notification.py +++ b/frappe/email/doctype/notification/test_notification.py @@ -25,6 +25,51 @@ def get_test_notification(config): frappe.db.commit() +@contextmanager +def get_test_doctype_with_attach_field(doctype_name="Test Attach Doctype"): + """Create a temporary doctype with an attach field for testing.""" + try: + # Create custom doctype with attach field + if not frappe.db.exists("DocType", doctype_name): + frappe.get_doc( + { + "doctype": "DocType", + "name": doctype_name, + "module": "Core", + "custom": 1, + "fields": [ + {"label": "Title", "fieldname": "title", "fieldtype": "Data", "reqd": 1}, + {"label": "Attachment", "fieldname": "attachment", "fieldtype": "Attach"}, + ], + "permissions": [ + {"role": "System Manager", "read": 1, "write": 1, "create": 1, "delete": 1} + ], + } + ).insert() + + yield doctype_name + + finally: + frappe.db.delete(doctype_name) + frappe.delete_doc_if_exists("DocType", doctype_name, force=1) + frappe.db.commit() + + +@contextmanager +def create_test_file(file_name="test_attachment.txt", content="Test file content"): + """Create a test file and return its File document.""" + try: + file_doc = frappe.get_doc( + {"doctype": "File", "file_name": file_name, "content": content, "is_private": 0} + ).insert() + + yield file_doc + + finally: + frappe.delete_doc_if_exists("File", file_doc.name, force=1) + frappe.db.commit() + + class TestNotification(IntegrationTestCase): def setUp(self): frappe.db.delete("Email Queue") @@ -465,6 +510,159 @@ class TestNotification(IntegrationTestCase): user.save() self.assertEqual(1, frappe.db.count("Notification Log", {"subject": n.subject})) + def test_attach_files_from_field(self): + """Test notification with 'From Field' attachment option.""" + frappe.db.delete("Email Queue") + + with get_test_doctype_with_attach_field("Test From Field Doctype") as test_doctype: + with create_test_file("from_field_test.txt", "Content from specific field") as test_file: + # Create notification with "From Field" attachment + notification_config = { + "name": "Test From Field Attachment", + "subject": "Test From Field Attachment", + "document_type": test_doctype, + "event": "Save", + "message": "Document saved with attachment", + "channel": "Email", + "attach_files": "From Field", + "from_attach_field": "attachment", + "recipients": [{"receiver_by_document_field": "owner"}], + } + + with get_test_notification(notification_config): + # Create document with attachment + test_doc = frappe.get_doc( + { + "doctype": test_doctype, + "title": "Test Document with Attachment", + "attachment": test_file.file_url, + } + ).insert() + + # Trigger save event to send notification + test_doc.save() + + # Verify Email Queue created + email_queue = frappe.get_doc( + "Email Queue", {"reference_doctype": test_doctype, "reference_name": test_doc.name} + ) + + self.assertTrue(email_queue, "Email Queue not created") + + # Verify attachment metadata in Email Queue + attachments = json.loads(email_queue.attachments) if email_queue.attachments else [] + self.assertEqual(len(attachments), 1, "Expected exactly one attachment") + self.assertEqual( + attachments[0].get("file_url"), test_file.file_url, "Attachment URL doesn't match" + ) + + # Clean up test document + test_doc.delete() + + def test_attach_files_all(self): + """Test notification with 'All' attachment option.""" + frappe.db.delete("Email Queue") + + with get_test_doctype_with_attach_field("Test All Attachments Doctype") as test_doctype: + with create_test_file("all_test_1.txt", "First file content") as test_file1: + # Create notification with "All" attachment option + notification_config = { + "name": "Test All Attachments", + "subject": "Test All Attachments", + "document_type": test_doctype, + "event": "Save", + "message": "Document saved with all attachments", + "channel": "Email", + "attach_files": "All", + "recipients": [{"receiver_by_document_field": "owner"}], + } + + with get_test_notification(notification_config): + # Create document with one attachment + test_doc = frappe.get_doc( + { + "doctype": test_doctype, + "title": "Test Document with Multiple Attachments", + "attachment": test_file1.file_url, + } + ).insert() + + # Upload additional file that is not attached to a specific field + with create_test_file( + "additional_file.txt", "Additional file content" + ) as additional_file: + additional_file.attached_to_doctype = test_doctype + additional_file.attached_to_name = test_doc.name + additional_file.save() + + # Trigger save event to send notification + test_doc.save() + + # Verify Email Queue created + email_queue = frappe.get_doc( + "Email Queue", + {"reference_doctype": test_doctype, "reference_name": test_doc.name}, + ) + + self.assertTrue(email_queue, "Email Queue not created") + + # Verify all attachments in Email Queue + attachments = json.loads(email_queue.attachments) if email_queue.attachments else [] + + # Should have the additional file that's directly attached to the document + self.assertEqual(len(attachments), 2, "Expected exactly two attachments") + + # Verify the additional file is included + attachment_urls = [att.get("file_url") for att in attachments] + self.assertIn( + test_file1.file_url, attachment_urls, "First file not found in attachments" + ) + self.assertIn( + additional_file.file_url, + attachment_urls, + "Additional file not found in attachments", + ) + + test_doc.delete() + + def test_attach_files_empty_option(self): + """Test notification with empty attachment option (no attachments).""" + frappe.db.delete("Email Queue") + + # Create notification with empty attach_files option + notification_config = { + "name": "Test No Attachments", + "subject": "Test No Attachments", + "document_type": "ToDo", + "event": "Save", + "message": "Todo saved without attachments", + "channel": "Email", + "attach_print": 0, + "attach_files": "", # Empty option + "recipients": [{"receiver_by_document_field": "owner"}], + } + + with get_test_notification(notification_config): + # Create a ToDo + todo = frappe.new_doc("ToDo") + todo.description = "Test ToDo" + todo.insert() + todo.save() + + # Verify Email Queue created + email_queue = frappe.get_doc( + "Email Queue", {"reference_doctype": "ToDo", "reference_name": todo.name} + ) + + self.assertTrue(email_queue, "Email Queue not created") + + # Verify no attachments in Email Queue (or empty list) + attachments = json.loads(email_queue.attachments) if email_queue.attachments else [] + self.assertEqual(len(attachments), 0, "Expected no attachments") + + # Clean up + todo.delete(ignore_permissions=True) + @classmethod def tearDownClass(cls): frappe.delete_doc_if_exists("Notification", "ToDo Status Update") diff --git a/frappe/email/test_smtp.py b/frappe/email/test_smtp.py index dc5faccdd2..01c55372e1 100644 --- a/frappe/email/test_smtp.py +++ b/frappe/email/test_smtp.py @@ -26,7 +26,8 @@ class TestSMTP(IntegrationTestCase): # remove mail_server config so that test@example.com is not created mail_server = frappe.conf.get("mail_server") - del frappe.conf["mail_server"] + if "mail_server" in frappe.conf: + del frappe.conf["mail_server"] frappe.local.outgoing_email_account = {} @@ -47,9 +48,9 @@ class TestSMTP(IntegrationTestCase): password="password", enable_outgoing=1, default_outgoing=1, - append_to="Todo", + append_to="ToDo", ) - self.assertEqual(EmailAccount.find_outgoing(match_by_doctype="Todo").email_id, "append_to@gmail.com") + self.assertEqual(EmailAccount.find_outgoing(match_by_doctype="ToDo").email_id, "append_to@gmail.com") # add back the mail_server frappe.conf["mail_server"] = mail_server diff --git a/frappe/frappeclient.py b/frappe/frappeclient.py index f8c619fc6b..65c4b17fa3 100644 --- a/frappe/frappeclient.py +++ b/frappe/frappeclient.py @@ -109,11 +109,11 @@ class FrappeClient: def get_list( self, - doctype, + doctype: str, fields='["name"]', filters=None, - limit_start=0, - limit_page_length=None, + limit_start: int = 0, + limit_page_length: int | None = None, order_by=None, group_by=None, ): diff --git a/frappe/gettext/translate.py b/frappe/gettext/translate.py index 3e0166fd8e..d3c9228fd5 100644 --- a/frappe/gettext/translate.py +++ b/frappe/gettext/translate.py @@ -10,6 +10,7 @@ from babel.messages.catalog import Catalog from babel.messages.extract import DEFAULT_KEYWORDS, extract_from_dir from babel.messages.mofile import read_mo, write_mo from babel.messages.pofile import read_po, write_po +from click import secho import frappe from frappe.utils import get_bench_path @@ -136,6 +137,7 @@ def generate_pot(target_app: str | None = None): for app in apps: app_path = frappe.get_pymodule_path(app, "..") catalog = new_catalog(app) + ignored_strings = _get_ignored_strings(app) # Each file will only be processed by the first method that matches, # so more specific methods should come first. @@ -148,12 +150,63 @@ def generate_pot(target_app: str | None = None): if not message: continue + if (message, context) in ignored_strings: + continue + catalog.add(message, locations=[(filename, lineno)], auto_comments=comments, context=context) pot_path = write_catalog(app, catalog) print(f"POT file created at {pot_path}") +def _get_ignored_strings(app: str) -> set[tuple[str, str | None]]: + """Return a set of tuples (message, context) that should be excluded from the given app's POT file. + + Example: + If [app]/hooks.py contains: + ignore_translatable_strings_from = ["frappe"] + + Then this will return a set of tuples (message, context) with all + entries from frappe's POT file. + """ + ignored_strings = set() + for ignore_app in frappe.get_hooks("ignore_translatable_strings_from", [], app_name=app): + if ignore_app == app: + raise ValueError( + f"Invalid configuration: App '{app}' cannot ignore its own translatable strings. " + f"Remove '{app}' from the 'ignore_translatable_strings_from' hook in {app}/hooks.py to fix this." + ) + + try: + catalog = get_catalog(ignore_app) + except ModuleNotFoundError: + secho( + f"App '{ignore_app}' specified in '{app}/hooks.py' 'ignore_translatable_strings_from' hook is not installed. Skipping", + err=True, + fg="yellow", + ) + continue + except ImportError: + secho( + f"App '{ignore_app}' specified in '{app}/hooks.py' 'ignore_translatable_strings_from' hook could not be imported. Skipping", + err=True, + fg="yellow", + ) + continue + except AttributeError: + secho( + f"Site not initialized. Cannot load app '{ignore_app}' specified in '{app}/hooks.py' 'ignore_translatable_strings_from' hook. Skipping", + err=True, + fg="yellow", + ) + continue + + for message in catalog: + ignored_strings.add((message.id, message.context)) + + return ignored_strings + + def get_is_gitignored_function_for_app(app: str | None): """ Used to check if a directory is gitignored or not. diff --git a/frappe/hooks.py b/frappe/hooks.py index b8c8901320..8ad4e53368 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -16,6 +16,9 @@ app_email = "developers@frappe.io" before_install = "frappe.utils.install.before_install" after_install = "frappe.utils.install.after_install" +after_app_install = "frappe.utils.install.auto_generate_icons_and_sidebar" +after_app_uninstall = "frappe.utils.install.delete_desktop_icon" + page_js = {"setup-wizard": "public/js/frappe/setup_wizard.js"} # website @@ -37,6 +40,7 @@ app_include_css = [ app_include_icons = [ "/assets/frappe/icons/timeless/icons.svg", "/assets/frappe/icons/espresso/icons.svg", + "/assets/frappe/icons/icons.svg", ] doctype_js = { @@ -56,11 +60,11 @@ email_css = ["email.bundle.css"] website_route_rules = [ {"from_route": "/kb/", "to_route": "Help Article"}, {"from_route": "/profile", "to_route": "me"}, - {"from_route": "/app/", "to_route": "app"}, + {"from_route": "/desk/", "to_route": "desk"}, ] website_redirects = [ - {"source": r"/desk(.*)", "target": r"/app\1"}, + {"source": r"/app(.*)", "target": r"/desk\1"}, ] base_template = "templates/base.html" @@ -416,6 +420,7 @@ ignore_links_on_delete = [ "Route History", "Access Log", "Permission Log", + "Desktop Icon", ] # Request Hooks @@ -581,3 +586,13 @@ user_invitation = { "System Manager": [], }, } + + +add_to_apps_screen = [ + { + "name": app_name, + "logo": app_logo_url, + "title": app_title, + "route": app_home, + } +] diff --git a/frappe/integrations/doctype/connected_app/test_connected_app.py b/frappe/integrations/doctype/connected_app/test_connected_app.py index f063b2e920..e69ad7ce54 100644 --- a/frappe/integrations/doctype/connected_app/test_connected_app.py +++ b/frappe/integrations/doctype/connected_app/test_connected_app.py @@ -144,6 +144,8 @@ class TestConnectedApp(IntegrationTestCase): doc = frappe.get_doc("OAuth Authorization Code", code.name) doc.delete() + frappe.db.commit() + delete_if_exists("user") delete_if_exists("oauth_client") diff --git a/frappe/integrations/google_oauth.py b/frappe/integrations/google_oauth.py index 448de20d03..5aab40ce0c 100644 --- a/frappe/integrations/google_oauth.py +++ b/frappe/integrations/google_oauth.py @@ -173,7 +173,7 @@ def callback(state: str, code: str | None = None, error: str | None = None) -> N along with committing and redirecting us back to frappe site.""" state = json.loads(state) - redirect = state.pop("redirect", "/app") + redirect = state.pop("redirect", "/desk") success_query_param = state.pop("success_query_param", "") failure_query_param = state.pop("failure_query_param", "") diff --git a/frappe/locale/ar.po b/frappe/locale/ar.po index 1a1de9b27c..e312c1d5bd 100644 --- a/frappe/locale/ar.po +++ b/frappe/locale/ar.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:36\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Arabic\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "تمت مزامنة حدث تقويم Google واحد." msgid "1 Report" msgstr "" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "منذ 1 ساعة" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "منذ 1 دقيقة" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "قبل شهر" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "1 قبل أسبوع" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "منذ سنة" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "" @@ -231,7 +231,7 @@ msgstr "" msgid "5 Records" msgstr "5 السجلات" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "" @@ -512,7 +512,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -912,7 +912,7 @@ msgstr "العمل / الطريق" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "فشل العمل" @@ -1049,7 +1049,7 @@ msgstr "إضافة / تحديث" msgid "Add A New Rule" msgstr "إضافة قاعدة جديدة" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "إضافة مرفق" @@ -1154,7 +1154,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "إضافة التوقيع" @@ -1182,7 +1182,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1589,6 +1589,7 @@ msgstr "محاذاة القيمة" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1603,7 +1604,9 @@ msgstr "محاذاة القيمة" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2205,7 +2208,7 @@ msgstr "اسم التطبيق" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2367,7 +2370,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "هل تريد بالتأكيد حذف جميع الصفوف؟" @@ -2403,7 +2406,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "هل أنت متأكد من رغبتك في دمج {0} مع {1}؟" @@ -2649,10 +2652,15 @@ msgstr "" msgid "Attach" msgstr "إرفاق" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "إرفاق طباعة المستند" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2735,6 +2743,11 @@ msgstr "رابط المرفقات" msgid "Attachment Removed" msgstr "تم حذف المرفق" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2912,7 +2925,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "فشل إنشاء مستند تكرار تلقائي" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3146,7 +3159,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3164,7 +3177,7 @@ msgstr "العودة الى المكتب" msgid "Back to Home" msgstr "العودة إلى المنزل" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "العودة إلى تسجيل الدخول" @@ -3604,7 +3617,7 @@ msgstr "حذف بالجملة" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "تعديل بالجمله {0}" @@ -3727,7 +3740,7 @@ msgstr "ملغي" msgid "CC" msgstr "نسخة" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "نسخة" @@ -3922,6 +3935,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "الغاء جميع الوثائق" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3959,11 +3980,11 @@ msgstr "إلغاء الوثائق" msgid "Cancelling {0}" msgstr "الغاء {0}" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4066,7 +4087,7 @@ msgstr "لا يمكن حذف {0} لأن لديها عُقد تابعة" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "لا يمكن تحرير الإشعار القياسي. للتعديل ، يرجى تعطيله وتكراره" @@ -4091,7 +4112,7 @@ msgstr "لا يمكن تحرير عوامل التصفية للمخططات ال msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "لا تستطيع تعديل الحقول القياسية" @@ -4111,7 +4132,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "لا يمكن تعيين طابعات متعددة على تنسيق طباعة واحد." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4139,7 +4160,7 @@ msgstr "لا يمكن إزالة معرف الحقل" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4484,11 +4505,11 @@ msgstr "المدينة / البلدة" msgid "Clear" msgstr "واضح" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4522,7 +4543,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "مسح أذونات المستخدم" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4575,7 +4596,7 @@ msgstr "انقر فوق {0} لإنشاء تحديث الرمز المميز." #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "انقر الجدول لتعديل" @@ -4586,7 +4607,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4763,7 +4784,7 @@ msgstr "" msgid "Collapse" msgstr "انهيار" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "انهيار" @@ -4887,7 +4908,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5130,7 +5151,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "الحالة" @@ -5467,7 +5488,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6078,13 +6099,13 @@ msgstr "" msgid "Customizations Reset" msgstr "التخصيصات إعادة تعيين" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "تم تصدير التخصيصات ل {0} إلى:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "تخصيص" @@ -6737,7 +6758,7 @@ msgstr "مؤجل" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7090,7 +7111,7 @@ msgstr "رمز سطح المكتب موجود بالفعل" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "تفاصيل" @@ -7246,7 +7267,7 @@ msgstr "معطل" msgid "Disabled Auto Reply" msgstr "الرد التلقائي معطل" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7335,7 +7356,7 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "لا تقم بتحرير الرؤوس التي يتم ضبطها مسبقا في القالب" @@ -7497,7 +7518,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "يجب تقديم دوكتيب للحدث دوك المحدد" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7518,11 +7539,11 @@ msgstr "DOCTYPE على سير العمل هذا الذي ينطبق." msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7633,7 +7654,7 @@ msgstr "" msgid "Document Name" msgstr "اسم المستند" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7809,7 +7830,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7837,11 +7858,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "تمت إعادة تسمية المستند من {0} إلى {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7857,7 +7878,7 @@ msgstr "تمت استعادة المستند {0} بالفعل" msgid "Document {0} has been set to state {1} by {2}" msgstr "تم تعيين المستند {0} على الحالة {1} بواسطة {2}" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8084,7 +8105,7 @@ msgid "Due Date Based On" msgstr "تاريخ الاستحقاق بناء على" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "مكررة" @@ -8199,7 +8220,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8248,7 +8269,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "تحرير مخصص HTML" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "تعديل القائمة" @@ -8433,7 +8454,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8492,7 +8513,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "البريد الالكتروني" @@ -8642,7 +8663,7 @@ msgstr "مزامنة البريد الإلكتروني الخيار" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "قالب البريد الإلكتروني" @@ -8674,7 +8695,7 @@ msgstr "تم نقل البريد الإلكتروني إلى المهملات" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "البريد الإلكتروني لا يرسل إلى {0} (غير مشترك / غيرمفعل)" @@ -8871,7 +8892,7 @@ msgstr "تمكين تتبع مشاهدات الصفحة" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "تمكين اثنين من عامل المصادقة" @@ -9044,7 +9065,7 @@ msgstr "أدخل معرف العميل وسر العميل في إعدادات G msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "أدخل البريد الإلكتروني المستلم" @@ -9182,9 +9203,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "خطأ في الإخطار" @@ -9204,7 +9225,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "حدث خطأ أثناء الاتصال بحساب البريد الإلكتروني {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "خطأ أثناء تقييم الإشعار {0}. يرجى تصحيح القالب الخاص بك." @@ -9386,7 +9407,7 @@ msgstr "" msgid "Expand" msgstr "وسعت" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "وسعت" @@ -9483,7 +9504,7 @@ msgstr "تصدير تخصيصات" msgid "Export Data" msgstr "تصدير البيانات" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "تصدير الصفوف الخطأ" @@ -9493,7 +9514,7 @@ msgstr "تصدير الصفوف الخطأ" msgid "Export From" msgstr "تصدير من" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9669,7 +9690,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9706,11 +9727,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9740,7 +9761,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "بالفشل" @@ -9800,6 +9821,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "جلب مستندات البحث العالمي الافتراضية." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9904,7 +9929,7 @@ msgstr "" msgid "Field {0} not found." msgstr "الحقل {0} غير موجود." -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10137,7 +10162,7 @@ msgstr "الملفات" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "منقي" @@ -10397,7 +10422,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "إتبع" @@ -10405,7 +10430,7 @@ msgstr "إتبع" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10869,11 +10894,16 @@ msgstr "الجمعة" msgid "From" msgstr "من" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "من" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10889,6 +10919,11 @@ msgstr "من حقل التاريخ" msgid "From Document Type" msgstr "من نوع المستند" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11050,7 +11085,7 @@ msgstr "تحديد الموقع الجغرافي" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "الحصول على تنبيهات لهذا اليوم" @@ -11142,7 +11177,7 @@ msgstr "اختصارات العالمية" msgid "Global Unsubscribe" msgstr "إلغاء الاشتراك العالمية" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "اذهب" @@ -11190,7 +11225,7 @@ msgstr "" msgid "Go to {0}" msgstr "اذهب إلى {0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11887,7 +11922,7 @@ msgstr "إخفاء عطلة نهاية الأسبوع" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "إخفاء التفاصيل" @@ -12570,11 +12605,11 @@ msgstr "يجب أن يكون قالب الاستيراد من النوع .csv أ msgid "Import template should contain a Header and atleast one row." msgstr "يجب أن يحتوي قالب الاستيراد على رأس صف واحد على الأقل." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13077,7 +13112,7 @@ msgstr "غير صالحة" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "تعبير "under_on" غير صالح" @@ -13171,6 +13206,8 @@ msgstr "خادم البريد غير صالحة . يرجى تصحيح و حاو msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13185,7 +13222,7 @@ msgstr "خيار غير صالح" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "تنسيق الإخراج غير صالح" @@ -13307,7 +13344,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "اسم الحقل غير صالح {0}" @@ -13842,6 +13879,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13850,16 +13888,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "القفز الى الميدان" @@ -14911,7 +14955,7 @@ msgstr "تحميل" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "جارٍ تحميل ملف الاستيراد ..." @@ -15046,7 +15090,7 @@ msgstr "تسجيل الدخول رمز التحقق من {}" msgid "Login and view in Browser" msgstr "تسجيل الدخول وعرض في المتصفح" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15083,7 +15127,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15553,7 +15597,7 @@ msgstr "متوسط" msgid "Meeting" msgstr "لقاء" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15589,7 +15633,7 @@ msgstr "يذكر" msgid "Menu" msgstr "الخيارات" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "دمج مع الحالي" @@ -15614,16 +15658,16 @@ msgstr "الدمج مسموح فقط بين مجموعة ومجموعة أو ف #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15660,7 +15704,7 @@ msgstr "تم ارسال الرسالة" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "رسالة قص" @@ -15668,7 +15712,7 @@ msgstr "رسالة قص" msgid "Message from server: {0}" msgstr "رسالة من الخادم: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "رسالة لا الإعداد" @@ -15854,7 +15898,7 @@ msgstr "" msgid "Missing Fields" msgstr "حقول مفقودة" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -15989,7 +16033,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -15997,7 +16041,7 @@ msgstr "" msgid "Module to Export" msgstr "وحدة لتصدير" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16511,7 +16555,7 @@ msgstr "رسالة جديدة من موقع الاتصال الصفحة" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "اسم جديد" @@ -16613,10 +16657,10 @@ msgid "New value to be set" msgstr "القيمة الجديدة التي سيتم تحديدها" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16701,6 +16745,10 @@ msgstr "التالي عمل قالب البريد الإلكتروني" msgid "Next Actions HTML" msgstr "العمليات القادمة HTML" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16768,8 +16816,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16805,7 +16853,7 @@ msgid "No Copy" msgstr "اي نسخة" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16945,7 +16993,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "لا تنبيهات لهذا اليوم" @@ -16985,6 +17033,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "لا جهات اتصال مرتبطة بالمستند" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "لا توجد بيانات للتصدير" @@ -17005,7 +17057,7 @@ msgstr "لا يوجد حساب بريد إلكتروني مرتبط بالمست msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17068,7 +17120,7 @@ msgstr "عدد الصفوف (بحد أقصى 500)" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "لا يوجد صلاحية لـ {0}
No permission for {0}" @@ -17105,7 +17157,7 @@ msgstr "لن يتم تصدير سجلات" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17246,8 +17298,8 @@ msgstr "" msgid "Not Published" msgstr "لم تنشر" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17300,7 +17352,7 @@ msgstr "غير نشطة" msgid "Not allowed for {0}: {1}" msgstr "غير مسموح لـ {0}: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "غير مسموح بإرفاق مستند {0} ، يرجى تمكين السماح بالطباعة لـ {0} في إعدادات الطباعة" @@ -17332,7 +17384,7 @@ msgstr "ليس في وضع مطور البرامج" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "ليس في وضع المطور! يقع في site_config.json أو جعل DOCTYPE \"مخصص\"." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17455,15 +17507,15 @@ msgstr "وثيقة الاشتراك المكتوبة" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17577,7 +17629,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17686,14 +17738,30 @@ msgstr "تطبيق كلمة السر الفريدة" msgid "OTP Issuer Name" msgstr "اسم جهة مكتب المدعي العام" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "تمت إعادة تعيين سر مكتب المدعي العام. سوف تكون هناك حاجة لإعادة التسجيل على تسجيل الدخول المقبل." +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17809,7 +17877,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17869,7 +17937,7 @@ msgstr "كلمة المرور لمرة واحدة (OTP) رمز التسجيل م msgid "One of" msgstr "واحد من" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "فقط 200 إدراج سمحت في طلب واحد" @@ -17907,7 +17975,7 @@ msgstr "فقط إرسال السجلات التي تم تحديثها في آخ msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18087,7 +18155,7 @@ msgstr "افتتح" msgid "Operation" msgstr "عملية" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "يجب أن يكون المشغل واحدا من {0}" @@ -18589,7 +18657,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18761,6 +18829,10 @@ msgstr "المسار إلى شهادة الخادم" msgid "Path to private Key File" msgstr "الطريق إلى ملف مفتاح خاص" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19085,7 +19157,7 @@ msgstr "يرجى وضع الرسم البياني" msgid "Please Update SMS Settings" msgstr "يرجى تحديث إعدادات الرسائل القصيرة" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "الرجاء إضافة موضوع إلى بريدك الإلكتروني" @@ -19137,7 +19209,7 @@ msgstr "يرجى التحقق من عنوان بريدك الإلكتروني ا msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19177,7 +19249,7 @@ msgstr "من فضلك لا تغيير عناوين القالب." msgid "Please duplicate this to make changes" msgstr "يرجى تكرار هذه إلى إجراء تغييرات" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19293,6 +19365,10 @@ msgstr "الرجاء حفظ المستند قبل التعيين" msgid "Please save the document before removing assignment" msgstr "الرجاء حفظ المستند قبل إزالة المهمة" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "يرجى حفظ التقرير الأول" @@ -19309,7 +19385,7 @@ msgstr "يرجى تحديد DOCTYPE أولا" msgid "Please select Entity Type first" msgstr "يرجى اختيار نوع الكيان أولا" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "يرجى تحديد الحد الأدنى لسجل كلمة المرور" @@ -19375,7 +19451,7 @@ msgstr "يرجى تعيين تعيين طابعة لتنسيق الطباعة ه msgid "Please set filters" msgstr "يرجى تعيين المرشحات" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "الرجاء تعيين قيمة عوامل التصفية في جدول تصفية التقرير." @@ -19391,11 +19467,11 @@ msgstr "يرجى تعيين المستندات التالية في لوحة ال msgid "Please set the series to be used." msgstr "يرجى ضبط المسلسل ليتم استخدامه." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "يرجى إعداد سمز قبل تعيينه كطريقة المصادقة، عبر إعدادات سمز" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "يرجى إعداد رسالة أولاً" @@ -19415,23 +19491,27 @@ msgstr "رجاء حدد" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "يرجى تحديد حقل التاريخ الذي يجب التحقق منه" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "يرجى تحديد حقل القيمة الذي يجب التحقق منه" @@ -19618,7 +19698,7 @@ msgstr "" msgid "Preparing Report" msgstr "إعداد التقرير" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19639,7 +19719,7 @@ msgstr "اضغط على إنتر للحفظ" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19693,6 +19773,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "سابق" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19742,8 +19826,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19856,7 +19940,7 @@ msgstr "اخفاء الطباعة" msgid "Print Hide If No Value" msgstr "طباعة إخفاء إذا لا قيمة" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "لغة الطباعة" @@ -19871,10 +19955,8 @@ msgid "Print Server" msgstr "ملقم الطباعة" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20496,7 +20578,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "رد: {0}" @@ -20507,7 +20589,7 @@ msgstr "رد: {0}" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20746,12 +20828,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "مخبأ خادم رديس يست قيد التشغيل. الرجاء الاتصال بمسؤول / الدعم الفني" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21064,7 +21146,7 @@ msgstr "إعادة ربط" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "تحديث" @@ -21095,7 +21177,7 @@ msgstr "تذكر آخر مختارة القيمة" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21175,9 +21257,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21205,7 +21287,7 @@ msgstr "" msgid "Reopen" msgstr "إعادة فتح" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "كرر" @@ -21455,7 +21537,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21649,7 +21731,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "إعادة تعيين مكتب المدعي العام سر" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21805,7 +21887,7 @@ msgid "Resume Sending" msgstr "استئناف إرسال" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22127,7 +22209,7 @@ msgstr "" msgid "Row Name" msgstr "اسم الصف" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22135,7 +22217,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22360,7 +22442,7 @@ msgid "Saturday" msgstr "السبت" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22416,13 +22498,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "حفظ" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22464,7 +22546,7 @@ msgstr "مسح رمز الاستجابة السريعة وأدخل رمز الن msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22528,7 +22610,7 @@ msgstr "" msgid "Scheduler Event" msgstr "حدث المجدول" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "المجدول غير نشط" @@ -22541,7 +22623,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "المجدول غير نشط. لا يمكن استيراد البيانات." @@ -22842,8 +22924,8 @@ msgstr "حدد" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22909,7 +22991,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "اختر المجال" @@ -22983,7 +23065,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "حدد تنسيق طباعة" @@ -23197,7 +23279,7 @@ msgstr "أرسل الآن" msgid "Send Print as PDF" msgstr "إرسال الطباعة بصيغة PDF" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "إرسال مقروءة إيصال" @@ -23256,11 +23338,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "إرسال الاستفسارات إلى عنوان البريد الإلكتروني هذا" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "أرسل لي نسخة" @@ -23484,7 +23566,7 @@ msgstr "انتهت الجلسة" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "يجب أن يكون انتهاء الجلسة بالتنسيق {0}" @@ -23529,7 +23611,7 @@ msgstr "تعيين عوامل التصفية الديناميكية" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "ضبط المرشحات" @@ -23901,7 +23983,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23953,7 +24035,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "فواصل عرض الخط بعد الأقسام" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24028,7 +24110,7 @@ msgstr "مشاهدة الشريط الجانبي" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "أضهر العلامات" @@ -24054,7 +24136,7 @@ msgstr "مشاهدة المجاميع" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24134,8 +24216,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "إظهار مزيد من التفاصيل" @@ -24323,7 +24405,7 @@ msgstr "تخطي العمود بلا عنوان" msgid "Skipping column {0}" msgstr "عمود التخطي {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24719,7 +24801,7 @@ msgstr "تاريخ البدء" msgid "Start Date Field" msgstr "تاريخ البدء الحقل" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "بدء الاستيراد" @@ -24853,7 +24935,7 @@ msgstr "الفاصل الزمني للإحصائيات" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25020,9 +25102,9 @@ msgstr "مجال فرعي" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "موضوع" @@ -25166,12 +25248,12 @@ msgstr "عنوان فرعي" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25231,11 +25313,11 @@ msgstr "ناجح: {0} إلى {1}" msgid "Successfully Updated" msgstr "تم التحديث بنجاح" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25251,11 +25333,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "تم تحديث الترجمات بنجاح" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25390,7 +25472,7 @@ msgstr "المزامنة" msgid "Syncing {0} of {1}" msgstr "مزامنة {0} من {1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25701,7 +25783,7 @@ msgstr "الجدول MultiSelect" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "الجدول محدث" @@ -25916,7 +25998,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "تم تعطيل التكرار التلقائي لهذا المستند." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "تنسيق كسف حساس لحالة الأحرف" @@ -25927,7 +26009,7 @@ msgid "The Client ID obtained from the Google Cloud Console under " msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "الشرط '{0}' غير صالح" @@ -26174,7 +26256,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26226,7 +26308,7 @@ msgstr "كانت هناك أخطاء" msgid "There were errors while creating the document. Please try again." msgstr "كانت هناك أخطاء أثناء إنشاء المستند. حاول مرة اخرى." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "كانت هناك أخطاء أثناء إرسال البريد الإلكتروني. يرجى المحاولة مرة أخرى." @@ -26303,7 +26385,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "هذا الإجراء مسموح به فقط لـ {}" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "هذا لا يمكن التراجع عنها" @@ -26532,6 +26614,8 @@ msgstr "سيؤدي هذا إلى إزالة بياناتك نهائيًا." msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -27600,15 +27684,15 @@ msgstr "إلغاء تعيين الشرط" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "دون تغيير" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27617,7 +27701,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "الغاء المتابعة" @@ -27655,7 +27739,7 @@ msgstr "غير معروف" msgid "Unknown Column: {0}" msgstr "عمود غير معروف: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27883,7 +27967,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28529,7 +28613,7 @@ msgstr "الصلاحية" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "القيمة" @@ -28607,7 +28691,7 @@ msgstr "قيمة كبيرة جدا" msgid "Value {0} missing for {1}" msgstr "القيمة {0} مفقودة لـ {1}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "يجب أن تكون القيمة {0} بتنسيق المدة الصالح: dhms" @@ -28629,7 +28713,7 @@ msgstr "فيردانا" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28687,7 +28771,7 @@ msgstr "" msgid "View All" msgstr "عرض الكل" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29653,9 +29737,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29750,7 +29834,7 @@ msgstr "غير مسموح لك بتصدير النمط {}" msgid "You are not allowed to print this report" msgstr "لا يسمح لك بطباعة هذا التقرير" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "لا يسمح لك بإرسال رسائل البريد الإلكتروني ذات الصلة بهذه الوثيقة" @@ -29938,7 +30022,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -29998,7 +30082,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30107,7 +30191,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30281,7 +30365,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "صفر" @@ -30324,7 +30408,7 @@ msgstr "أدخل_بعد" msgid "amend" msgstr "تعديل" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "و" @@ -30611,7 +30695,7 @@ msgstr "قائمة" msgid "logged in" msgstr "تسجيل الدخول" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30949,7 +31033,7 @@ msgstr "عبر استيراد البيانات" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "عبر الإخطار" @@ -31158,7 +31242,7 @@ msgstr "{0} غير مشترك أصلاً" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} تم إلغاء الاشتراك في {1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} و {1}" @@ -31183,7 +31267,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31496,7 +31580,7 @@ msgstr "قبل {0} دقائق" msgid "{0} months ago" msgstr "قبل {0} أشهر" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} يجب أن يكون بعد {1}" @@ -31553,12 +31637,12 @@ msgstr "{0} من {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} من {1} ({2} صفوف تحتوي على أطفال)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} أو {1}" @@ -31603,7 +31687,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "" @@ -31882,11 +31966,11 @@ msgstr "{{{0}}} غير صالح كأسم حقل. يجب أن يكون {{field_na msgid "{} Complete" msgstr "{} اكتمال" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/bs.po b/frappe/locale/bs.po index e7b3e231d7..541ff4cda3 100644 --- a/frappe/locale/bs.po +++ b/frappe/locale/bs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:49\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Bosnian\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "Sinhroniziran je 1 događaj iz Google Kalendara." msgid "1 Report" msgstr "1 Izvještaj" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "prije 1 dan" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 sat" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "prije 1 sat" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "prije 1 minutu" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "prije 1 mjesec" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "1 red do {0}" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "prije 1 sekundu" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "prije 1 sedmicu" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "prije 1 godinu" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "prije 2 sata" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "prije 2 mjeseca" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "prije 2 sedmice" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "prije 2 godine" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "prije 3 minute" @@ -232,7 +232,7 @@ msgstr "4 sata" msgid "5 Records" msgstr "5 Zapisa" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "prije 5 dana" @@ -665,7 +665,7 @@ msgstr "

Za interakciju s gornjim HTML-om morat ćete koristiti `root_element` "some_class_element.textContent = \"Novi sadržaj\";\n" "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "

Vaša OTP tajna na {0} je poništena. Ako niste izvršili ovo resetiranje i niste ga zatražili, odmah kontaktirajte svog administratora sistema.

" @@ -1090,7 +1090,7 @@ msgstr "Radnja / Ruta" msgid "Action Complete" msgstr "Radnja Završena" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Radnja Neuspješna" @@ -1227,7 +1227,7 @@ msgstr "Dodaj / Ažuriraj" msgid "Add A New Rule" msgstr "Dodaj Novo Pravilo" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Dodaj Prilog" @@ -1332,7 +1332,7 @@ msgstr "Dodaj Red" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Dodaj Potpis" @@ -1360,7 +1360,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "Dodaj Oznake" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "Dodaj Šablon" @@ -1767,6 +1767,7 @@ msgstr "Poravnaj Vrijednost" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1781,7 +1782,9 @@ msgstr "Poravnaj Vrijednost" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2384,7 +2387,7 @@ msgstr "Naziv Aplikacije" msgid "App Name (Client Name)" msgstr "Naziv Aplikacije (Ime Klijenta)" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "Aplikacija nije pronađena za modul: {0}" @@ -2546,7 +2549,7 @@ msgstr "Jeste li sigurni da želite otkazati pozivnicu?" msgid "Are you sure you want to clear the assignments?" msgstr "Jeste li sigurni da želite izbrisati zadatke?" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "Jeste li sigurni da želite izbrisati sve redove?" @@ -2582,7 +2585,7 @@ msgstr "Jeste li sigurni da želite odbaciti promjene?" msgid "Are you sure you want to generate a new report?" msgstr "Jeste li sigurni da želite generisati novi izvještaj?" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "Jeste li sigurni da želite spojiti {0} sa {1}?" @@ -2828,10 +2831,15 @@ msgstr "Barem jedno polje vrste nadređenog dokumenta je obavezno" msgid "Attach" msgstr "Priloži" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Priloži Ispis Dokumenta" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2914,6 +2922,11 @@ msgstr "Veza Priloga" msgid "Attachment Removed" msgstr "Prilog Uklonjen" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -3091,7 +3104,7 @@ msgstr "Dan Automatskog Ponavljanja{0} {1} je ponovljen." msgid "Auto Repeat Document Creation Failed" msgstr "Automatsko Ponavljanje Kreiranja Dokumenta Neuspješno" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "Raspored Automatskog Ponavljanja" @@ -3325,7 +3338,7 @@ msgstr "B9" msgid "BCC" msgstr "BCC" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "BCC" @@ -3343,7 +3356,7 @@ msgstr "Nazad na Radnu Površinu" msgid "Back to Home" msgstr "Povratak na Početnu" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "Nazad na Prijavu" @@ -3783,7 +3796,7 @@ msgstr "Grupno Brisanje" msgid "Bulk Edit" msgstr "Grupno Uređivanje" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "Grupno uređivanje {0}" @@ -3906,7 +3919,7 @@ msgstr "OTKAZANO" msgid "CC" msgstr "CC" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "CC" @@ -4101,6 +4114,14 @@ msgstr "Otkaži" msgid "Cancel All Documents" msgstr "Otkaži Sve Dokumente" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "Otkaži Uvoz" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "Otkaži Pripremljeni Izvještaj" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4138,11 +4159,11 @@ msgstr "Otkazivanje dokumenata u toku" msgid "Cancelling {0}" msgstr "Otkazujem {0}" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "Nije moguće preuzeti izvještaj zbog nedovoljnih dozvola" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "Nije Moguće Preuzeti Vrijednosti" @@ -4245,7 +4266,7 @@ msgstr "Ne može se izbrisati {0} jer ima podređene članove" msgid "Cannot edit Standard Dashboards" msgstr "Nije moguće uređivati Standardne Nadzorne Table" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "Nije moguće uređivati Standardno Obavještenje. Za uređivanje, onemogućite ovo i duplicirajte" @@ -4270,7 +4291,7 @@ msgstr "Nije moguće uređivati filtere za standardne grafikone" msgid "Cannot edit filters for standard number cards" msgstr "Nije moguće uređivati filtere za standardne numeričke kartice" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "Nije moguće uređivati standardna polja" @@ -4290,7 +4311,7 @@ msgstr "Nije moguće dobiti sadržaj mape" msgid "Cannot have multiple printers mapped to a single print format." msgstr "Nije moguće imati više pisača mapiranih u jedan format pisača." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "Nije moguće uvesti tabelu sa više od 5000 redova." @@ -4318,7 +4339,7 @@ msgstr "Nije moguće ukloniti ID polje" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "Ne može se postaviti dopuštenje 'Izvještaj' ako je postavljena dozvola 'Samo ako je Kreator'" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "Nije moguće postaviti Obavijest s događajem {0} za Doctype {1}" @@ -4664,11 +4685,11 @@ msgstr "Grad/Mjesto" msgid "Clear" msgstr "Očisti" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "Očisti & Dodaj Šablon" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "Očisti & Dodaj Šablon" @@ -4702,7 +4723,7 @@ msgstr "Očisti Zapisnike Nakon (dana)" msgid "Clear User Permissions" msgstr "Obriši Korisničke Dozvole" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "Obrišite poruku e-pošte i dodajte šablon" @@ -4755,7 +4776,7 @@ msgstr "Klikni na {0} za generisanje tokena osvježavanja." #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "Klikni na tabelu za uređivanje" @@ -4766,7 +4787,7 @@ msgstr "Klikni da Postavite Dinamičke Filtere" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "Klikni da Postavite Filtere" @@ -4943,7 +4964,7 @@ msgstr "Metoda Kod Izazova" msgid "Collapse" msgstr "Sklopi" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Sklopi" @@ -5067,7 +5088,7 @@ msgstr "Širina Kolone" msgid "Column width cannot be zero." msgstr "Širina kolone ne može biti nula." -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "Kolona {0}" @@ -5310,7 +5331,7 @@ msgstr "Komprimirano" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "Uslov" @@ -5649,7 +5670,7 @@ msgstr "Kopiraj ugrađen kod" msgid "Copy error to clipboard" msgstr "Greška pri kopiranju u međuspremnik" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "Kopiraj u Međuspremnik" @@ -6260,13 +6281,13 @@ msgstr "Prilagođavanja Odbačena" msgid "Customizations Reset" msgstr "Poništi Prilagođavanja" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "Prilagođavanja za {0} eksportirana u:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Prilagodi" @@ -6919,7 +6940,7 @@ msgstr "Odgođeno" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7272,7 +7293,7 @@ msgstr "Ikona Radne Površine već postoji" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "Detalji" @@ -7428,7 +7449,7 @@ msgstr "Onemogućeno" msgid "Disabled Auto Reply" msgstr "Automatski Odgovor Onemogućen" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7517,7 +7538,7 @@ msgstr "Ne Kreiraj Novog Korisnika" msgid "Do not create new user if user with email does not exist in the system" msgstr "Ne kreiraj novog korisnika ako korisnik sa e-poštom ne postoji u sistemu" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "Ne uređiuji zaglavlja koja su unaprijed postavljena u šablonu" @@ -7682,7 +7703,7 @@ msgstr "DocType je Tabela / Obrazac u aplikaciji." msgid "DocType must be Submittable for the selected Doc Event" msgstr "DocType mora imati mogućnost podnošenja za odabrani Događaj Dokumenta" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "DocType mora biti niz" @@ -7703,11 +7724,11 @@ msgstr "DocType na koji je ovaj Radni Tok primjenjiv." msgid "DocType required" msgstr "DocType Obavezan" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "DocType {0} ne postoji." -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "DocType {} nije pronađen" @@ -7818,7 +7839,7 @@ msgstr "Veze Dokumenta Red #{0}: Naziv polja tabele je obavezan za interne veze" msgid "Document Name" msgstr "Naziv Dokumenta" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "Naziv Dokumenta mora biti niz" @@ -7994,7 +8015,7 @@ msgid "Document Types and Permissions" msgstr "Tipovi Dokumenata i Dozvole" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "Dokument Otključan" @@ -8022,11 +8043,11 @@ msgstr "Dokument mogu uređivati samo korisnici sa ulogom" msgid "Document not Relinked" msgstr "Dokument nije ponovo povezan" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "Dokument je preimenovan iz {0} u {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "Preimenovanje dokumenta iz {0} u {1} je stavljeno u red čekanja" @@ -8042,7 +8063,7 @@ msgstr "Dokument {0} je već obnovljen" msgid "Document {0} has been set to state {1} by {2}" msgstr "Dokument {0} je postavljen na stanje {1} od {2}" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "Dokument {0} {1} ne postoji" @@ -8269,7 +8290,7 @@ msgid "Due Date Based On" msgstr "Krajnji Rok na osnovu" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Kopiraj" @@ -8384,7 +8405,7 @@ msgstr "ESC" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8433,7 +8454,7 @@ msgstr "Uredi Prilagođeni Blok" msgid "Edit Custom HTML" msgstr "Uredi Prilagođeni HTML" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "Uredi DocType" @@ -8618,7 +8639,7 @@ msgstr "Birač Elementa" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8677,7 +8698,7 @@ msgstr "Račun e-pošte {0} Onemogućen" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "Adresa e-pošte" @@ -8827,7 +8848,7 @@ msgstr "Opcija Sinhronizacije e-pošte" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "Šablon e-pošte" @@ -8859,7 +8880,7 @@ msgstr "E-pošta je premještena u smeće" msgid "Email is mandatory to create User Email" msgstr "E-pošta je obavezna za kreiranje korisničke e-pošte" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "E-pošta nije poslana na {0} (otkazana / onemogućena)" @@ -9056,7 +9077,7 @@ msgstr "Omogućite Praćenje Prikaza Stranica" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "Omogući Dvofaktorsku Autentifikaciju" @@ -9230,7 +9251,7 @@ msgstr "Unesi Id klijenta i Tajnu klijenta u Google Postavke." msgid "Enter Code displayed in OTP App." msgstr "Unesi kod prikazan u OTP aplikaciji." -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "Unesi Primaoca(e) e-pošte" @@ -9368,9 +9389,9 @@ msgstr "Greška u Klijent Skripti." msgid "Error in Header/Footer Script" msgstr "Greška Skripte Zaglavlja/Podnožja" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "Greška u Obavještenju" @@ -9390,7 +9411,7 @@ msgstr "Greška pri parsiranju ugniježđenih filtera: {0}" msgid "Error while connecting to email account {0}" msgstr "Greška prilikom povezivanja na račun e-pošte {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "Greška prilikom evaluacije Obavještenja {0}. Popravite vaš šablon." @@ -9572,7 +9593,7 @@ msgstr "Postojeća Uloga" msgid "Expand" msgstr "Proširi" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Proširi" @@ -9669,7 +9690,7 @@ msgstr "Eksportiraj Prilagodbe" msgid "Export Data" msgstr "Izvezi Podatke" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "Izvezi Redove s Greškom" @@ -9679,7 +9700,7 @@ msgstr "Izvezi Redove s Greškom" msgid "Export From" msgstr "Eksportiraj iz" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "Izvezi Zapisnik Importa" @@ -9855,7 +9876,7 @@ msgstr "Brisanje {0} dokumenata nije uspjelo: {1}" msgid "Failed to enable scheduler: {0}" msgstr "Omogućavanje Raspoređivača nije uspjelo: {0}" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "Procjena uslova nije uspjela: {}" @@ -9892,11 +9913,11 @@ msgstr "Uvoz virtuelnog doctypa {} nije uspio, je li prisutna datoteka kontroler msgid "Failed to optimize image: {0}" msgstr "Optimizacija slike nije uspjela: {0}" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "Nije uspjelo prikazivanje poruke: {}" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "Nije uspjelo prikazivanje predmeta: {}" @@ -9926,7 +9947,7 @@ msgstr "Nije uspjelo pri pozivanju API {0}" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "Neuspjeli Zakazani Poslovi (zadnjih 7 dana)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "Neuspjeh" @@ -9986,6 +10007,10 @@ msgstr "Preuzmi na Spremi ako je Prazno" msgid "Fetching default Global Search documents." msgstr "Preuzimaju se standard Dokumenata Globalnog Pretraživanja." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "Preuzimanje polja iz {0}..." + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -10090,7 +10115,7 @@ msgstr "Polje {0} mora biti virtualno polje kako bi podržalo virtualni doctype. msgid "Field {0} not found." msgstr "Polje {0} nije pronađeno." -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "Polje {0} u dokumentu {1} nije ni polje za broj Mobilnog Telefona niti veza za Klijenta ili Korisnika" @@ -10323,7 +10348,7 @@ msgstr "Datoteke" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "Filter" @@ -10583,7 +10608,7 @@ msgid "Folio" msgstr "Folio" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "Prati" @@ -10591,7 +10616,7 @@ msgstr "Prati" msgid "Followed by" msgstr "Praćen od" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "Sljedeći Filteri Izvještaja nemaju vrijednosti:" @@ -11056,11 +11081,16 @@ msgstr "Petak" msgid "From" msgstr "Od" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "Od" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -11076,6 +11106,11 @@ msgstr "Od Datuma" msgid "From Document Type" msgstr "Od Dokumenta" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11237,7 +11272,7 @@ msgstr "Geolokacija" msgid "Geolocation Settings" msgstr "Geolokacijske Postavke" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "Preuzmi Današnja Upozorenja" @@ -11329,7 +11364,7 @@ msgstr "Globalne Prečice" msgid "Global Unsubscribe" msgstr "Globalno Otkazivanje Pretplate" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "Idi" @@ -11377,7 +11412,7 @@ msgstr "Idi na ovaj URL nakon popunjavanja forme" msgid "Go to {0}" msgstr "Idi na {0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -12074,7 +12109,7 @@ msgstr "Sakrij Vikende" msgid "Hide descendant records of For Value." msgstr "Sakrij podređene zapise Za Vrijednost." -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "Sakrij Detalje" @@ -12757,11 +12792,11 @@ msgstr "Šablon za Uvoz treba biti tipa .csv, .xlsx ili .xls" msgid "Import template should contain a Header and atleast one row." msgstr "Šablon za Uvoz treba da sadrži Zaglavlje i najmanje jedan red." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "Uvoz je istekao, pokušaj ponovo." -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "Uvoz {0} nije dozvoljen." @@ -13264,7 +13299,7 @@ msgstr "Nevažeći" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "Nevažeći izraz \"depends_on\"" @@ -13358,6 +13393,8 @@ msgstr "Nevažeći Server Pošte. Ispravi i pokušaj ponovo." msgid "Invalid Naming Series: {}" msgstr "Nevažeća Serija Imenovanja: {}" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13372,7 +13409,7 @@ msgstr "Nevažeća Opcija" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "Nevažeći Server Odlazne Pošte ili port: {0}" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "Nevažeći Izlazni Format" @@ -13494,7 +13531,7 @@ msgstr "Nevažeći format polja u {0}: {1}. Koristi 'field', 'link_field.field' msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "Nevažeći naziv polja u funkciji: {0}. Dozvoljeni su samo jednostavni nazivi polja." -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "Nevažeći naziv polja {0}" @@ -14029,6 +14066,7 @@ msgstr "Naziv Posla" msgid "Job Status" msgstr "Status Posla" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "Posao Uspješno Zaustavljen" @@ -14037,16 +14075,22 @@ msgstr "Posao Uspješno Zaustavljen" msgid "Job is in {0} state and can't be cancelled" msgstr "Posao je u stanju {0} i ne može se otkazati" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "Posao se ne izvodi." +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "Posao je uspješno zaustavljen" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "Pridruži se video konferenciji sa {0}" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "Skoči na polje" @@ -15098,7 +15142,7 @@ msgstr "Učitava se" msgid "Loading Filters..." msgstr "Učitavanje Filtera u toku..." -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "Učitavanje datoteke za uvoz..." @@ -15233,7 +15277,7 @@ msgstr "Kod Potvrdu Prijave od {}" msgid "Login and view in Browser" msgstr "Prijavi se i pregledaj u Pretraživaču" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "Prijava je potrebna da biste vidjeli pregled liste web forme. Omogući {0} da vidite postavke liste" @@ -15270,7 +15314,7 @@ msgstr "Prijavi se na {0}" msgid "Login token required" msgstr "Token je obavezan za prijavu" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "Prijavi se putem e-mail veze" @@ -15740,7 +15784,7 @@ msgstr "Srednje" msgid "Meeting" msgstr "Sastanak" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "Ispunjava Uslove?" @@ -15776,7 +15820,7 @@ msgstr "Pominjanja" msgid "Menu" msgstr "Meni" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Spoji sa postojećim" @@ -15801,16 +15845,16 @@ msgstr "Spajanje je moguće samo između Grupe na Grupe ili podređeni na podre #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15847,7 +15891,7 @@ msgstr "Poruka Poslata" msgid "Message Type" msgstr "Tip Poruke" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "Poruka je isječena" @@ -15855,7 +15899,7 @@ msgstr "Poruka je isječena" msgid "Message from server: {0}" msgstr "Poruka sa servera: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "Poruka nije postavljena" @@ -16041,7 +16085,7 @@ msgstr "Nedostaje Polje" msgid "Missing Fields" msgstr "Nedostajuća Polja" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "Obavezni Nedostajući Filteri" @@ -16176,7 +16220,7 @@ msgstr "Profil Modula" msgid "Module Profile Name" msgstr "Naziv Profila Modula" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "Poništavanje introdukcijskog progresa modula" @@ -16184,7 +16228,7 @@ msgstr "Poništavanje introdukcijskog progresa modula" msgid "Module to Export" msgstr "Modul za Izvoz" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "Modul {} nije pronađen" @@ -16700,7 +16744,7 @@ msgstr "Nova Pruka sa Kontaktne Web Stranice" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "Novo Ime" @@ -16804,10 +16848,10 @@ msgid "New value to be set" msgstr "Nova vrijednost koju treba postaviti" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16892,6 +16936,10 @@ msgstr "Šablon Sljedeće Akcije e-pošte" msgid "Next Actions HTML" msgstr "HTML Sljedeće Akcije" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "Sljedeći dokument" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16959,8 +17007,8 @@ msgstr "Sljedeća na Klik" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16996,7 +17044,7 @@ msgid "No Copy" msgstr "Ne Kopiraj" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17136,7 +17184,7 @@ msgstr "Nema Nadolazećih Događaja" msgid "No address added yet." msgstr "Adresa još nije dodana." -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "Nema upozorenja za danas" @@ -17176,6 +17224,10 @@ msgstr "Još nema dodanih kontakata." msgid "No contacts linked to document" msgstr "Nema kontakata povezanih s dokumentom" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "Nema polja za valutu u {0}" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "Nema podataka za izvoz" @@ -17196,7 +17248,7 @@ msgstr "Nijedan račun e-pošte nije povezan s korisnikom. Dodajte račun pod Ko msgid "No email addresses to invite" msgstr "Nema adresa e-pošte za pozivnicu" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "Nema neuspjelih zapisa" @@ -17259,7 +17311,7 @@ msgstr "Broj Redova (Max. 500)" msgid "No of Sent SMS" msgstr "Broj Poslanih SMS-ova" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "Nema dozvole za {0}" @@ -17296,7 +17348,7 @@ msgstr "Nijedan zapis neće biti izvezen" msgid "No rows" msgstr "Nema redova" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "Nema predmeta" @@ -17437,8 +17489,8 @@ msgstr "Nije Dozvoljeno čitati {0}" msgid "Not Published" msgstr "Nije Objavljeno" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17491,7 +17543,7 @@ msgstr "Nije aktivno" msgid "Not allowed for {0}: {1}" msgstr "Nije dozvoljeno za {0}: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "Nije dozvoljeno priložiti {0} dokument, omogući Dozvoli Ispis za {0} u Postavkama Ispisa" @@ -17523,7 +17575,7 @@ msgstr "Nije u načinu rada za programere" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "Nije u načinu rada za programere! Postavi u site_config.json ili napravi 'Prilagođen' DocType." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17646,15 +17698,15 @@ msgstr "Obavijest Pretplaćeni Dokument" msgid "Notification sent to" msgstr "Obavještenje je poslano za" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "Obavještenje: klijent {0} nema postavljen broj mobilnog telefona" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "Obavještenje: dokument {0} nema postavljen broj {1} (polje: {2})" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "Obavještenje: korisnik {0} nema postavljen broj mobilnog telefona" @@ -17768,7 +17820,7 @@ msgstr "Broj Upita" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "Broj polja priloga je veći od {}, ograničenje je ažurirano na {}." -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "Broj Sigurnosnih Kopija mora biti veći od nule." @@ -17877,14 +17929,30 @@ msgstr "OTP Aplikacija" msgid "OTP Issuer Name" msgstr "Naziv OTP Izdavaoca" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "OTP Poništavanje Tajne - {0}" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "OTP Tajna je resetovana. Ponovna registracija će biti potrebna prilikom sljedeće prijave." +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "Postavljanje OTP pomoću OTP Aplikacije nije završeno. Kontaktiraj Administratora." @@ -18000,7 +18068,7 @@ msgstr "Na ili Poslije" msgid "On or Before" msgstr "Na ili Prije" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "{0}, {1} je napisao:" @@ -18060,7 +18128,7 @@ msgstr "Jednokratna Lozinka (OTP) registracijski kod od {}" msgid "One of" msgstr "Jedan od" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "Dozvoljeno je samo 200 umetanja u jednom zahtjevu" @@ -18098,7 +18166,7 @@ msgstr "Pošalji Zapise Ažurirane u Posljednjih X Sati" msgid "Only Workspace Manager can edit public workspaces" msgstr "Samo Upravitelj Radnog Prostorar može uređivati javne radne prostore" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "Dozvoljeno je izvoziti prilagođavanja samo u načinu rada za programere" @@ -18278,7 +18346,7 @@ msgstr "Otvoreno" msgid "Operation" msgstr "Operacija" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "Operator mora biti jedan od {0}" @@ -18780,7 +18848,7 @@ msgstr "Nadređeni-Podređeni ili Podređeni-Drugi Podrđeni nije dozvoljeno." msgid "Parentfield not specified in {0}: {1}" msgstr "Nadređeno polje nije navedeno u {0}: {1}" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "Za umetanje podređenog zapisa potrebni su nadređeni tip, nadređeni i nadređeno polje" @@ -18952,6 +19020,10 @@ msgstr "Put do Certifikata Servera" msgid "Path to private Key File" msgstr "Put do Datoteke Privatnog Ključa" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "Put {0} nije važeći put" @@ -19276,7 +19348,7 @@ msgstr "Postavi Grafikon" msgid "Please Update SMS Settings" msgstr "Ažuriraj SMS Postavke" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "Dodaj predmet e-pošti" @@ -19328,7 +19400,7 @@ msgstr "Provjeri registrovanu adresu e-pošte za upute kako postupiti. Ne zatvar msgid "Please click Edit on the Workspace for best results" msgstr "Kliknite Uredi na radnom prostoru za najbolje rezultate" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "Klikni na 'Izvezi Redove s Greškom', popravi greške i ponovo uvezi." @@ -19368,7 +19440,7 @@ msgstr "Ne mijenjaj Naslove Šablona." msgid "Please duplicate this to make changes" msgstr "Kopiraj ovo da izvršite promjene" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "Omogući barem jedan ključ za prijavu na društvenim mrežama ili LDAP ili se prijavite putem veze e-pošte prije nego što onemogućite prijavu zasnovanu na korisničkom imenu/lozinki." @@ -19484,6 +19556,10 @@ msgstr "Spremi dokument prije dodjele" msgid "Please save the document before removing assignment" msgstr "Spremi dokument prije uklanjanja dodjele" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "Prvo spremi izvještaj" @@ -19500,7 +19576,7 @@ msgstr "Odaberi DocType" msgid "Please select Entity Type first" msgstr "Odaberi Tip Entiteta" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "Odaberi Minimalnu Vrijednost Lozinke" @@ -19566,7 +19642,7 @@ msgstr "Podesite mapiranje pisača za ovaj format ispisivanja u postavkama pisa msgid "Please set filters" msgstr "Postavi filtere" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "Postavi vrijednost filtera u tabeli Filter Izvještaja." @@ -19582,11 +19658,11 @@ msgstr "Postavite sljedeće dokumente na ovoj Nadzornoj Tabli kao standardne." msgid "Please set the series to be used." msgstr "Postavi seriju imenovanja koja će se koristiti." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "Podesite SMS prije nego što ga postavite kao metodu provjere autentičnosti, putem SMS Postavki" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "Postavi Poruku" @@ -19606,23 +19682,27 @@ msgstr "Navedi" msgid "Please specify a valid parent DocType for {0}" msgstr "Navedi važeći nadređeni DocType za {0}" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "Navedi najmanje 10 minuta zbog ritma okidača raspoređivača" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "Molimo navedite pomak minuta" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "Navedi koje polje datuma mora biti označeno" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "Navedi koje polje datuma i vremena mora biti označeno" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "Navedi koje polje vrijednosti mora biti označeno" @@ -19809,7 +19889,7 @@ msgstr "Generisanje Pripremljenog Izvještaja nije uspjelo" msgid "Preparing Report" msgstr "Priprema Izvještaja" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "Priloži šablon poruci e-pošte" @@ -19830,7 +19910,7 @@ msgstr "Pritisni Enter da spremite" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19884,6 +19964,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Prethodna" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "Prethodni dokument" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "Prethodno Podnošenje" @@ -19933,8 +20017,8 @@ msgstr "Primarni ključ tipa dokumenta {0} ne može se promijeniti jer postoje p #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -20047,7 +20131,7 @@ msgstr "Sakrij" msgid "Print Hide If No Value" msgstr "Sakrij ispis ako nema vrijednost" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "Jezik Ispisa" @@ -20062,10 +20146,8 @@ msgid "Print Server" msgstr "Ispisni Server" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20687,7 +20769,7 @@ msgstr "Od:" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "Od: {0}" @@ -20698,7 +20780,7 @@ msgstr "Od: {0}" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20937,12 +21019,12 @@ msgstr "Preusmjeravanja" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "Redis server ne radi. Kontaktiraj Administratora/Tehničku podršku" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "Ponovi" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "Ponovi posljednju radnju" @@ -21255,7 +21337,7 @@ msgstr "Ponovno povezano" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Ponovo Učitaj" @@ -21286,7 +21368,7 @@ msgstr "Zapamti Posljednju Odabranu Vrijednost" msgid "Remind At" msgstr "Podsjeti" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "Podsjeti Me" @@ -21366,9 +21448,9 @@ msgid "Removed" msgstr "Uklonjeno" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21396,7 +21478,7 @@ msgstr "Prikaži oznake lijevo i vrijednosti desno u ovom odjeljku" msgid "Reopen" msgstr "Ponovo otvori" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "Ponovi" @@ -21646,7 +21728,7 @@ msgstr "Izvještaj je pokrenut, klikni da vidite status" msgid "Report limit reached" msgstr "Granica Izvještaja Dostignuta" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "Izvještaj je istekao." @@ -21840,7 +21922,7 @@ msgstr "Poništi Izgled" msgid "Reset OTP Secret" msgstr "Poništi OTP Tajnu" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21996,7 +22078,7 @@ msgid "Resume Sending" msgstr "Nastavi Slanje" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22318,7 +22400,7 @@ msgstr "Indeksi Reda" msgid "Row Name" msgstr "Naziv Reda" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "Broj Reda" @@ -22326,7 +22408,7 @@ msgstr "Broj Reda" msgid "Row Values Changed" msgstr "Vrijednosti Reda Promijenjene" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "Red {0}" @@ -22551,7 +22633,7 @@ msgid "Saturday" msgstr "Subota" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22607,13 +22689,13 @@ msgstr "Spremi dokument." #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "Spremljeno" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "Spremjeni Filteri" @@ -22655,7 +22737,7 @@ msgstr "Skenirajte QR Kod i unesi prikazani rezultirajući kod." msgid "Schedule" msgstr "Raspored" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "Raspored Slanja" @@ -22719,7 +22801,7 @@ msgstr "Raspoređivač" msgid "Scheduler Event" msgstr "Događaj Raspoređivača" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "Raspoređivač Neaktivan" @@ -22732,7 +22814,7 @@ msgstr "Status Raspoređivača" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "Raspoređivač se ne može ponovno omogućiti kada je aktivan način rada za održavanje." -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "Raspoređivač je neaktivan. Nije moguće uvesti podatke." @@ -23033,8 +23115,8 @@ msgstr "Odaberi" msgid "Select All" msgstr "Odaberi sve" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -23100,7 +23182,7 @@ msgstr "Odaberi Tipove Dokumenata da postavite koje se korisničke dozvole koris #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "Odaberi Polje" @@ -23174,7 +23256,7 @@ msgid "Select Page" msgstr "Odaberi Stranicu" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Odaberi Ispis Format" @@ -23388,7 +23470,7 @@ msgstr "Pošalji Sad" msgid "Send Print as PDF" msgstr "Pošalji Ispis kao PDF" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "Pošalji Potvrdu o Čitanju" @@ -23447,11 +23529,11 @@ msgstr "Pošaljite e-poštu kada dokument pređe u stanje." msgid "Send enquiries to this email address" msgstr "Pošalji upite na ovu adresu e-pošte" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "Pošalji Vezu Prijave" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "Pošalji Mi Kopiju" @@ -23675,7 +23757,7 @@ msgstr "Sesija Istekla" msgid "Session Expiry (idle timeout)" msgstr "Istek Sesije (vremensko ograničenje mirovanja)" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "Istek Sesije mora biti u formatu {0}" @@ -23720,7 +23802,7 @@ msgstr "Postavi Dinamičke Filtere" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "Postavi Filtere" @@ -24116,7 +24198,7 @@ msgstr "Prikaži Grešku" msgid "Show External Link Warning" msgstr "Prikaži upozorenje o eksternim linkovima" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "Prikaži Naziv Polja (klikni da kopirate u međuspremnik)" @@ -24168,7 +24250,7 @@ msgstr "Prikaži Birač Jezika" msgid "Show Line Breaks after Sections" msgstr "Prikaži Prijelome Reda nakon Sekcije" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "Prikaži Veze" @@ -24243,7 +24325,7 @@ msgstr "Prikaži Bočnu Traku" msgid "Show Social Login Key as Authorization Server" msgstr "Prikaži ključ za prijavu na socijalnu mrežu kao server za autorizaciju" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "Prikaži Oznake" @@ -24269,7 +24351,7 @@ msgstr "Prikaži Ukupno" msgid "Show Tour" msgstr "Prikaži Introdukciju" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "Prikaži Povratno Praćenje" @@ -24349,8 +24431,8 @@ msgstr "Prikaži vezu do dokumenta" msgid "Show list" msgstr "Prikaži listu" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "Prikaži više detalja" @@ -24538,7 +24620,7 @@ msgstr "Preskače se Kolona bez Naziva" msgid "Skipping column {0}" msgstr "Preskače se kolona {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "Preskače se sinhronizacija fiksiranja za tip dokumenta {0} iz datoteke {1}" @@ -24934,7 +25016,7 @@ msgstr "Datum Početka" msgid "Start Date Field" msgstr "Datum Početka" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "Počni Uvoz" @@ -25068,7 +25150,7 @@ msgstr "Vremenski Interval Statistike" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25235,9 +25317,9 @@ msgstr "Poddomena" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Predmet" @@ -25381,12 +25463,12 @@ msgstr "Podnaziv" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25446,11 +25528,11 @@ msgstr "Uspješno: {0} do {1}" msgid "Successfully Updated" msgstr "Uspješno Ažurirano" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "Uspješno uvezeno {0}" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "Uspješno uvezeno {0} od {1} zapisa." @@ -25466,11 +25548,11 @@ msgstr "Odjavljen/a" msgid "Successfully updated translations" msgstr "Uspješno ažurirani prijevodi" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "Uspješno ažurirano {0}" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "Uspješno ažurirano {0} od {1} zapisa." @@ -25605,7 +25687,7 @@ msgstr "Sinhronizacija u toku" msgid "Syncing {0} of {1}" msgstr "Sinhronizira se {0} od {1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "Greška Sintakse" @@ -25916,7 +25998,7 @@ msgstr "Višestruki Odabir Tabele" msgid "Table Trimmed" msgstr "Tabela Optimizirana" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "Tabela Ažurirana" @@ -26133,7 +26215,7 @@ msgstr "Hvala" msgid "The Auto Repeat for this document has been disabled." msgstr "Automatsko Ponavljanje za ovaj dokument je onemogućeno." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "CSV format razlikuje velika i mala slova" @@ -26146,7 +26228,7 @@ msgstr "ID klijenta dobijen sa Google Cloud Console pod
" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "Uvjet '{0}' je nevažeći" @@ -26397,7 +26479,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "U redu čekanja već postoji {0} s istim filterima:" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "U Web Formi može postojati samo 9 polja Prijeloma Stranice" @@ -26449,7 +26531,7 @@ msgstr "Bilo je grešaka" msgid "There were errors while creating the document. Please try again." msgstr "Bilo je grešaka prilikom kreiranja dokumenta. Molimo pokušajte ponovo." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "Bilo je grešaka prilikom slanja e-pošte. Molimo pokušajte ponovo." @@ -26526,7 +26608,7 @@ msgstr "Ova radnja je nepovratna. Da li želite da nastavite?" msgid "This action is only allowed for {}" msgstr "Ova radnja je dozvoljena samo za {}" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "Ovo se ne može poništiti" @@ -26759,6 +26841,8 @@ msgstr "Ovo će trajno ukloniti vaše podatke." msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "Ovo će poništiti ovu introdukciju i prikazati ga svim korisnicima. Jeste li sigurni?" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Ovo će odmah prekinuti posao i može biti opasno, jeste li sigurni?" @@ -27835,15 +27919,15 @@ msgstr "Poništi Dodjelu Uslova" msgid "Uncaught Exception" msgstr "Neuhvaćena Iznimka" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "Nepromijenjeno" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "Poništi" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "Poništi posljednju radnju" @@ -27852,7 +27936,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "Neizbjegnuti navodnici u niz literalu: {0}" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "Prestani Pratiti" @@ -27892,7 +27976,7 @@ msgstr "Nepoznato" msgid "Unknown Column: {0}" msgstr "Nepoznata Kolona: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "Nepoznata Metoda Zaokruživanja: {}" @@ -28120,7 +28204,7 @@ msgstr "Ažuriraju se globalne postavke" msgid "Updating naming series options" msgstr "Ažuriraju se opcije imenovanja serije" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "Ažuriraju se povezana polja..." @@ -28766,7 +28850,7 @@ msgstr "Validnost" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Vrijednost" @@ -28844,7 +28928,7 @@ msgstr "Vrijednost je Prevelika" msgid "Value {0} missing for {1}" msgstr "Nedostaje vrijednost {0} za {1}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "Vrijednost {0} mora biti u važećem formatu trajanja: d h m s" @@ -28866,7 +28950,7 @@ msgstr "Verdana" msgid "Verification" msgstr "Verifikacija" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "Verfikacijski Kod" @@ -28924,7 +29008,7 @@ msgstr "Prikaz" msgid "View All" msgstr "Prikaži Sve" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "Prikaži Trag" @@ -29890,9 +29974,9 @@ msgstr "Žuta" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29987,7 +30071,7 @@ msgstr "Nije vam dozvoljeno da izvezete {} doctype" msgid "You are not allowed to print this report" msgstr "Nije vam dozvoljeno da ispišete ovaj izveštaj" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "Nije vam dozvoljeno slanje e-pošte u vezi sa ovim dokumentom" @@ -30175,7 +30259,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "Vi ste kreirali ovaj dokument {0}" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "Nemate dozvole za Čitanje ili Odabir za {}" @@ -30235,7 +30319,7 @@ msgstr "Dostigli ste ograničenje veličine reda u tabeli baze podataka: {0}" msgid "You have not entered a value. The field will be set to empty." msgstr "Niste unijeli vrijednost. Polje će biti prazno." -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "Morate omogućiti Dvofaktorsku Autentifikaciju iz Postavki Sistema." @@ -30344,7 +30428,7 @@ msgstr "Trebate dozvolu za pisanje na {0} {1} za spajanje" msgid "You need write permission on {0} {1} to rename" msgstr "Trebate dozvolu za pisanje na {0} {1} da biste preimenovali" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "Trebate {0} dozvolu da preuzmete vrijednosti iz {1} {2}" @@ -30518,7 +30602,7 @@ msgstr "Vaša je stranica u toku održavanja ili ažuriranja." msgid "Your verification code is {0}" msgstr "Vaš verifikacioni kod je {0}" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "Nula" @@ -30561,7 +30645,7 @@ msgstr "nakon_umetanja" msgid "amend" msgstr "izmijeni" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "i" @@ -30848,7 +30932,7 @@ msgstr "lista" msgid "logged in" msgstr "prijavljen" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "prijava_potrebna" @@ -31186,7 +31270,7 @@ msgstr "putem Uvoza Podataka" msgid "via Google Meet" msgstr "putem Google Meet" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "putem Obavijesti" @@ -31395,7 +31479,7 @@ msgstr "{0} je već odjavljen" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} je već otkazan za {1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} i {1}" @@ -31420,7 +31504,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "{0} priloženo {1}" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "{0} ne može biti više od {1}" @@ -31733,7 +31817,7 @@ msgstr "prije {0} minuta" msgid "{0} months ago" msgstr "{0} mjeseci prije" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} mora biti iza {1}" @@ -31790,12 +31874,12 @@ msgstr "{0} od {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} od {1} ({2} redovi sa potomcima)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "Samo {0}." -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} ili {1}" @@ -31840,7 +31924,7 @@ msgstr "{0} je uklonilo {1} redova iz {2}" msgid "{0} role does not have permission on any doctype" msgstr "{0} uloga nema dozvolu ni za jedan tip dokumenta" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} red #{1}:" @@ -32119,11 +32203,11 @@ msgstr "{{{0}}} nije važeća forma naziva polja. Trebalo bi da bude {{field_nam msgid "{} Complete" msgstr "{} Završeno" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "{} Nevažeći python kod na liniji {}" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "{} Možda nevažeći python kod.
{}" diff --git a/frappe/locale/cs.po b/frappe/locale/cs.po index 92faebee0f..cc53b5d942 100644 --- a/frappe/locale/cs.po +++ b/frappe/locale/cs.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:36\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Czech\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "" msgid "1 Report" msgstr "" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "" @@ -231,7 +231,7 @@ msgstr "" msgid "5 Records" msgstr "" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "" @@ -502,7 +502,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -902,7 +902,7 @@ msgstr "" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "" @@ -1039,7 +1039,7 @@ msgstr "" msgid "Add A New Rule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "" @@ -1144,7 +1144,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "" @@ -1172,7 +1172,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1579,6 +1579,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1593,7 +1594,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2195,7 +2198,7 @@ msgstr "" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2357,7 +2360,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "" @@ -2393,7 +2396,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "" @@ -2639,10 +2642,15 @@ msgstr "" msgid "Attach" msgstr "" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2725,6 +2733,11 @@ msgstr "" msgid "Attachment Removed" msgstr "" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2902,7 +2915,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3136,7 +3149,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3154,7 +3167,7 @@ msgstr "" msgid "Back to Home" msgstr "" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3594,7 +3607,7 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3717,7 +3730,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "" @@ -3912,6 +3925,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3949,11 +3970,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4056,7 +4077,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4081,7 +4102,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4101,7 +4122,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4129,7 +4150,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4474,11 +4495,11 @@ msgstr "" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4512,7 +4533,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4565,7 +4586,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4576,7 +4597,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4753,7 +4774,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "" @@ -4877,7 +4898,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5120,7 +5141,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5457,7 +5478,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6068,13 +6089,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "" @@ -6727,7 +6748,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7080,7 +7101,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7236,7 +7257,7 @@ msgstr "" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7325,7 +7346,7 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7487,7 +7508,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7508,11 +7529,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7623,7 +7644,7 @@ msgstr "" msgid "Document Name" msgstr "" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7799,7 +7820,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7827,11 +7848,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7847,7 +7868,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8074,7 +8095,7 @@ msgid "Due Date Based On" msgstr "" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "" @@ -8189,7 +8210,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8238,7 +8259,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "" @@ -8423,7 +8444,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8482,7 +8503,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8632,7 +8653,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8664,7 +8685,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -8861,7 +8882,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9034,7 +9055,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9172,9 +9193,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9194,7 +9215,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9376,7 +9397,7 @@ msgstr "" msgid "Expand" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "" @@ -9473,7 +9494,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9483,7 +9504,7 @@ msgstr "" msgid "Export From" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9659,7 +9680,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9696,11 +9717,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9730,7 +9751,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9790,6 +9811,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9894,7 +9919,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10127,7 +10152,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10387,7 +10412,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10395,7 +10420,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10859,11 +10884,16 @@ msgstr "" msgid "From" msgstr "" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10879,6 +10909,11 @@ msgstr "" msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11040,7 +11075,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11132,7 +11167,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11180,7 +11215,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11877,7 +11912,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12560,11 +12595,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13067,7 +13102,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13161,6 +13196,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13175,7 +13212,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13297,7 +13334,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13832,6 +13869,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13840,16 +13878,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -14901,7 +14945,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15036,7 +15080,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15073,7 +15117,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15543,7 +15587,7 @@ msgstr "" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15579,7 +15623,7 @@ msgstr "" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "" @@ -15604,16 +15648,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15650,7 +15694,7 @@ msgstr "" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15658,7 +15702,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15844,7 +15888,7 @@ msgstr "" msgid "Missing Fields" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -15979,7 +16023,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -15987,7 +16031,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16501,7 +16545,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "" @@ -16603,10 +16647,10 @@ msgid "New value to be set" msgstr "" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16691,6 +16735,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16758,8 +16806,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16795,7 +16843,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16935,7 +16983,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -16975,6 +17023,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -16995,7 +17047,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17058,7 +17110,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17095,7 +17147,7 @@ msgstr "" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17236,8 +17288,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17290,7 +17342,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17322,7 +17374,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17445,15 +17497,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17567,7 +17619,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17676,14 +17728,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17799,7 +17867,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17859,7 +17927,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" @@ -17897,7 +17965,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18077,7 +18145,7 @@ msgstr "" msgid "Operation" msgstr "" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18579,7 +18647,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18751,6 +18819,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19075,7 +19147,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19127,7 +19199,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19167,7 +19239,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19283,6 +19355,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19299,7 +19375,7 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" @@ -19365,7 +19441,7 @@ msgstr "" msgid "Please set filters" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19381,11 +19457,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19405,23 +19481,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19608,7 +19688,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19629,7 +19709,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19683,6 +19763,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19732,8 +19816,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19846,7 +19930,7 @@ msgstr "" msgid "Print Hide If No Value" msgstr "" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19861,10 +19945,8 @@ msgid "Print Server" msgstr "" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20486,7 +20568,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20497,7 +20579,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20736,12 +20818,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21054,7 +21136,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "" @@ -21085,7 +21167,7 @@ msgstr "" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21165,9 +21247,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21195,7 +21277,7 @@ msgstr "" msgid "Reopen" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21445,7 +21527,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21639,7 +21721,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21795,7 +21877,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22117,7 +22199,7 @@ msgstr "" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22125,7 +22207,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22350,7 +22432,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22406,13 +22488,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22454,7 +22536,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22518,7 +22600,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22531,7 +22613,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22832,8 +22914,8 @@ msgstr "" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22899,7 +22981,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -22973,7 +23055,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "" @@ -23187,7 +23269,7 @@ msgstr "" msgid "Send Print as PDF" msgstr "" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "" @@ -23246,11 +23328,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "" @@ -23474,7 +23556,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23519,7 +23601,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -23891,7 +23973,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23943,7 +24025,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24018,7 +24100,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "" @@ -24044,7 +24126,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24124,8 +24206,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24313,7 +24395,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24709,7 +24791,7 @@ msgstr "" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24843,7 +24925,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25010,9 +25092,9 @@ msgstr "" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "" @@ -25156,12 +25238,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25221,11 +25303,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25241,11 +25323,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25380,7 +25462,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25691,7 +25773,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25906,7 +25988,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -25917,7 +25999,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26164,7 +26246,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26216,7 +26298,7 @@ msgstr "" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26293,7 +26375,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26522,6 +26604,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -27590,15 +27674,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27607,7 +27691,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27645,7 +27729,7 @@ msgstr "" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27873,7 +27957,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28519,7 +28603,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "" @@ -28597,7 +28681,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28619,7 +28703,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28677,7 +28761,7 @@ msgstr "" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29643,9 +29727,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29740,7 +29824,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -29928,7 +30012,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -29988,7 +30072,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30097,7 +30181,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30271,7 +30355,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "" @@ -30314,7 +30398,7 @@ msgstr "" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "" @@ -30601,7 +30685,7 @@ msgstr "" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30939,7 +31023,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31148,7 +31232,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "" @@ -31173,7 +31257,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31486,7 +31570,7 @@ msgstr "" msgid "{0} months ago" msgstr "" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31543,12 +31627,12 @@ msgstr "" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "" @@ -31593,7 +31677,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "" @@ -31872,11 +31956,11 @@ msgstr "" msgid "{} Complete" msgstr "" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/da.po b/frappe/locale/da.po index e935153497..d913012ad3 100644 --- a/frappe/locale/da.po +++ b/frappe/locale/da.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:36\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Danish\n" "MIME-Version: 1.0\n" @@ -46,7 +46,7 @@ msgstr "" #: frappe/utils/csvutils.py:246 msgid "\"{0}\" is not a valid Google Sheets URL" -msgstr "" +msgstr "\"{0}\" er ikke en gyldig Google Sheets URL" #: frappe/public/js/frappe/ui/toolbar/tag_utils.js:21 #: frappe/public/js/frappe/ui/toolbar/tag_utils.js:22 @@ -55,16 +55,16 @@ msgstr "#{0}" #: frappe/core/report/database_storage_usage_by_tables/database_storage_usage_by_tables.js:36 msgid "${values.doctype_name} has been added to queue for optimization" -msgstr "" +msgstr "${values.doctype_name} er blevet tilføjet til køen for optimering" #: frappe/public/js/frappe/ui/toolbar/about.js:11 msgid "© Frappe Technologies Pvt. Ltd. and contributors" -msgstr "" +msgstr "© Frappe Technologies Pvt. Ltd. og bidragsydere" #. Label of the head_html (Code) field in DocType 'Website Settings' #: frappe/website/doctype/website_settings/website_settings.json msgid "<head> HTML" -msgstr "" +msgstr "<head> HTML" #: frappe/public/js/form_builder/store.js:206 msgid "'In Global Search' is not allowed for field {0} of type {1}" @@ -84,11 +84,11 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.py:164 msgid "'Recipients' not specified" -msgstr "" +msgstr "'Modtagere' ikke specificeret" #: frappe/utils/__init__.py:271 msgid "'{0}' is not a valid IBAN" -msgstr "" +msgstr "'{0}' er ikke et gyldigt IBAN nummer" #: frappe/utils/__init__.py:261 msgid "'{0}' is not a valid URL" @@ -145,7 +145,7 @@ msgstr "1 Google Kalender Begivenhed synkroniseret." msgid "1 Report" msgstr "1 Rapport" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "1 dag siden" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 time" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "1 time siden" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "1 minut siden" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "1 måned siden" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "1 række til {0}" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "1 sekund siden" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "1 uge siden" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "1 år siden" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "2 timer siden" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "2 måneder siden" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "2 uger siden" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "2 år siden" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "3 minutter siden" @@ -232,7 +232,7 @@ msgstr "4 timer" msgid "5 Records" msgstr "5 Poster" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "5 dage siden" @@ -505,7 +505,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -905,7 +905,7 @@ msgstr "Handling / Rute" msgid "Action Complete" msgstr "Handling Fuldført" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Handling Mislykkedes" @@ -1042,7 +1042,7 @@ msgstr "Tilføj / Opdater" msgid "Add A New Rule" msgstr "Tilføj Ny Regel" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Tilføj Vedhæftning" @@ -1147,7 +1147,7 @@ msgstr "Tilføj Række" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Tilføj Signatur" @@ -1175,7 +1175,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "Tilføj Tags" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "Tilføj Skabelon" @@ -1582,6 +1582,7 @@ msgstr "Juster Værdi" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1596,7 +1597,9 @@ msgstr "Juster Værdi" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2198,7 +2201,7 @@ msgstr "App Navn" msgid "App Name (Client Name)" msgstr "Appens Navn (Klient Navn)" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2360,7 +2363,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "" @@ -2396,7 +2399,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "" @@ -2642,10 +2645,15 @@ msgstr "" msgid "Attach" msgstr "" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2728,6 +2736,11 @@ msgstr "" msgid "Attachment Removed" msgstr "" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2905,7 +2918,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3139,7 +3152,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3157,7 +3170,7 @@ msgstr "" msgid "Back to Home" msgstr "" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3597,7 +3610,7 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3720,7 +3733,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "" @@ -3915,6 +3928,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3952,11 +3973,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4059,7 +4080,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4084,7 +4105,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4104,7 +4125,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4132,7 +4153,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4477,11 +4498,11 @@ msgstr "" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4515,7 +4536,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4568,7 +4589,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4579,7 +4600,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4756,7 +4777,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "" @@ -4880,7 +4901,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5123,7 +5144,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5460,7 +5481,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6071,13 +6092,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "" @@ -6730,7 +6751,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7083,7 +7104,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7239,7 +7260,7 @@ msgstr "Deaktiveret" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7328,7 +7349,7 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7490,7 +7511,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7511,11 +7532,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7626,7 +7647,7 @@ msgstr "" msgid "Document Name" msgstr "" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7802,7 +7823,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7830,11 +7851,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7850,7 +7871,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8077,7 +8098,7 @@ msgid "Due Date Based On" msgstr "" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "" @@ -8192,7 +8213,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8241,7 +8262,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "" @@ -8426,7 +8447,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8485,7 +8506,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8635,7 +8656,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8667,7 +8688,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -8864,7 +8885,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9037,7 +9058,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9175,9 +9196,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9197,7 +9218,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9379,7 +9400,7 @@ msgstr "" msgid "Expand" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "" @@ -9476,7 +9497,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9486,7 +9507,7 @@ msgstr "" msgid "Export From" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9662,7 +9683,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9699,11 +9720,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9733,7 +9754,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9793,6 +9814,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9897,7 +9922,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10130,7 +10155,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10390,7 +10415,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10398,7 +10423,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10862,11 +10887,16 @@ msgstr "" msgid "From" msgstr "" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10882,6 +10912,11 @@ msgstr "" msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11043,7 +11078,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11135,7 +11170,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11183,7 +11218,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11880,7 +11915,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12563,11 +12598,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13070,7 +13105,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13164,6 +13199,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13178,7 +13215,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13300,7 +13337,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13835,6 +13872,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13843,16 +13881,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -14904,7 +14948,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15039,7 +15083,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15076,7 +15120,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15546,7 +15590,7 @@ msgstr "" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15582,7 +15626,7 @@ msgstr "" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "" @@ -15607,16 +15651,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15653,7 +15697,7 @@ msgstr "" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15661,7 +15705,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15847,7 +15891,7 @@ msgstr "" msgid "Missing Fields" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -15982,7 +16026,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -15990,7 +16034,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16504,7 +16548,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "" @@ -16606,10 +16650,10 @@ msgid "New value to be set" msgstr "" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16694,6 +16738,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16761,8 +16809,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16798,7 +16846,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16938,7 +16986,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -16978,6 +17026,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -16998,7 +17050,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17061,7 +17113,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17098,7 +17150,7 @@ msgstr "" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17239,8 +17291,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17293,7 +17345,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17325,7 +17377,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17448,15 +17500,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17570,7 +17622,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17679,14 +17731,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17802,7 +17870,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17862,7 +17930,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" @@ -17900,7 +17968,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18080,7 +18148,7 @@ msgstr "" msgid "Operation" msgstr "" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18582,7 +18650,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18754,6 +18822,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19078,7 +19150,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19130,7 +19202,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19170,7 +19242,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19286,6 +19358,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19302,7 +19378,7 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" @@ -19368,7 +19444,7 @@ msgstr "" msgid "Please set filters" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19384,11 +19460,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19408,23 +19484,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19611,7 +19691,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19632,7 +19712,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19686,6 +19766,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19735,8 +19819,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19849,7 +19933,7 @@ msgstr "" msgid "Print Hide If No Value" msgstr "" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19864,10 +19948,8 @@ msgid "Print Server" msgstr "" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20489,7 +20571,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20500,7 +20582,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20739,12 +20821,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21057,7 +21139,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "" @@ -21088,7 +21170,7 @@ msgstr "" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21168,9 +21250,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21198,7 +21280,7 @@ msgstr "" msgid "Reopen" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21448,7 +21530,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21642,7 +21724,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21798,7 +21880,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22120,7 +22202,7 @@ msgstr "" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22128,7 +22210,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22353,7 +22435,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22409,13 +22491,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22457,7 +22539,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22521,7 +22603,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22534,7 +22616,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22835,8 +22917,8 @@ msgstr "" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22902,7 +22984,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -22976,7 +23058,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "" @@ -23190,7 +23272,7 @@ msgstr "" msgid "Send Print as PDF" msgstr "" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "" @@ -23249,11 +23331,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "" @@ -23477,7 +23559,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23522,7 +23604,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -23894,7 +23976,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23946,7 +24028,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24021,7 +24103,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "" @@ -24047,7 +24129,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24127,8 +24209,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24316,7 +24398,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24712,7 +24794,7 @@ msgstr "" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24846,7 +24928,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25013,9 +25095,9 @@ msgstr "" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "" @@ -25159,12 +25241,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25224,11 +25306,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25244,11 +25326,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25383,7 +25465,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25694,7 +25776,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25909,7 +25991,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -25920,7 +26002,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26167,7 +26249,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26219,7 +26301,7 @@ msgstr "" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26296,7 +26378,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26525,6 +26607,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -27593,15 +27677,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27610,7 +27694,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27648,7 +27732,7 @@ msgstr "" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27876,7 +27960,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28522,7 +28606,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "" @@ -28600,7 +28684,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28622,7 +28706,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28680,7 +28764,7 @@ msgstr "" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29646,9 +29730,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29743,7 +29827,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -29931,7 +30015,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -29991,7 +30075,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30100,7 +30184,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30274,7 +30358,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "" @@ -30317,7 +30401,7 @@ msgstr "" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "" @@ -30604,7 +30688,7 @@ msgstr "" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30942,7 +31026,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31151,7 +31235,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "" @@ -31176,7 +31260,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31489,7 +31573,7 @@ msgstr "" msgid "{0} months ago" msgstr "" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31546,12 +31630,12 @@ msgstr "" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "" @@ -31596,7 +31680,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "" @@ -31875,11 +31959,11 @@ msgstr "" msgid "{} Complete" msgstr "" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/de.po b/frappe/locale/de.po index e34099ffe4..e70501e688 100644 --- a/frappe/locale/de.po +++ b/frappe/locale/de.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: German\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "1 Google Kalender-Ereignis synchronisiert" msgid "1 Report" msgstr "1 Bericht" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "vor 1 Tag" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 Stunde" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "vor einer Stunde" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "vor einer Minute" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "vor 1 Monat" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "1 Zeile zu {0}" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "vor 1 Sekunde" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "vor einer Woche" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "vor einem Jahr" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "vor 2 Stunden" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "vor 2 Monaten" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "vor 2 Wochen" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "vor 2 Jahren" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "vor 3 Minuten" @@ -232,7 +232,7 @@ msgstr "4 Stunden" msgid "5 Records" msgstr "5 Datensätze" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "vor 5 Tagen" @@ -663,7 +663,7 @@ msgstr "

Um mit dem oben genannten HTML zu interagieren, müssen Sie „root_e "some_class_element.textContent = \"Neuer Inhalt\";\n" "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "

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.

" @@ -1088,7 +1088,7 @@ msgstr "Aktion / Route" msgid "Action Complete" msgstr "Aktion abgeschlossen" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Aktion fehlgeschlagen" @@ -1225,7 +1225,7 @@ msgstr "Hinzufügen / Aktualisieren" msgid "Add A New Rule" msgstr "Neue Regel hinzufügen" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Anhang hinzufügen" @@ -1330,7 +1330,7 @@ msgstr "Zeile hinzufügen" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Signatur hinzufügen" @@ -1358,7 +1358,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "Schlagworte hinzufügen" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "Vorlage hinzufügen" @@ -1765,6 +1765,7 @@ msgstr "Wert anordnen" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1779,7 +1780,9 @@ msgstr "Wert anordnen" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2382,7 +2385,7 @@ msgstr "App-Name" msgid "App Name (Client Name)" msgstr "App-Name (Client-Name)" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "App nicht gefunden für Modul: {0}" @@ -2544,7 +2547,7 @@ msgstr "Möchten Sie wirklich die Einladung abbrechen?" msgid "Are you sure you want to clear the assignments?" msgstr "Sind Sie sicher, dass Sie die Zuweisungen löschen möchten?" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "Möchten Sie wirklich alle Zeilen löschen?" @@ -2580,7 +2583,7 @@ msgstr "Sind Sie sicher, dass Sie die Änderungen verwerfen möchten?" msgid "Are you sure you want to generate a new report?" msgstr "Sind Sie sicher, dass Sie einen neuen Bericht erstellen möchten?" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "Möchten Sie {0} wirklich mit {1} zusammenführen?" @@ -2826,10 +2829,15 @@ msgstr "Mindestens ein Feld des übergeordneten Dokumenttyps ist obligatorisch" msgid "Attach" msgstr "Anhängen" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Dokumentendruck anhängen" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2912,6 +2920,11 @@ msgstr "Anhang Link" msgid "Attachment Removed" msgstr "Anlage entfernt" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -3089,7 +3102,7 @@ msgstr "Auto-Wiederholung Tag{0} {1} wurde wiederholt." msgid "Auto Repeat Document Creation Failed" msgstr "Automatische Wiederholung der Dokumentenerstellung fehlgeschlagen" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "Zeitplan automatisch wiederholen" @@ -3323,7 +3336,7 @@ msgstr "B9" msgid "BCC" msgstr "BCC" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "BCC" @@ -3341,7 +3354,7 @@ msgstr "Zurück zum Schreibtisch" msgid "Back to Home" msgstr "Zurück zur Startseite" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "Zurück zum Login" @@ -3782,7 +3795,7 @@ msgstr "Stapel löschen" msgid "Bulk Edit" msgstr "Stapel bearbeiten" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "Stapel-Bearbeitung {0}" @@ -3905,7 +3918,7 @@ msgstr "Abgebrochen" msgid "CC" msgstr "CC" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "CC" @@ -4100,6 +4113,14 @@ msgstr "Alle stornieren" msgid "Cancel All Documents" msgstr "Alle Dokumente abbrechen" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4137,11 +4158,11 @@ msgstr "Dokumente stornieren" msgid "Cancelling {0}" msgstr "{0} wird storniert" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "Bericht kann wegen unzureichender Berechtigungen nicht heruntergeladen werden" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "Werte können nicht abgerufen werden" @@ -4244,7 +4265,7 @@ msgstr "{0} kann nicht gelöscht werden, da es Unterknoten gibt" msgid "Cannot edit Standard Dashboards" msgstr "Standard-Dashboards können nicht bearbeitet werden" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "Standardbenachrichtigung kann nicht bearbeitet werden. Um es zu bearbeiten, deaktivieren Sie das bitte und duplizieren Sie es" @@ -4269,7 +4290,7 @@ msgstr "Filter für Standarddiagramme können nicht bearbeitet werden" msgid "Cannot edit filters for standard number cards" msgstr "Filter für Standardnummernkarten können nicht bearbeitet werden" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "Standardfelder können nicht bearbeitet werden" @@ -4289,7 +4310,7 @@ msgstr "Dateiinhalt eines Ordners kann nicht abgerufen werden" msgid "Cannot have multiple printers mapped to a single print format." msgstr "Es können nicht mehrere Drucker einem Druckformat zugeordnet werden." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "Tabelle mit mehr als 5000 Zeilen kann nicht importiert werden." @@ -4317,7 +4338,7 @@ msgstr "ID-Feld kann nicht entfernt werden" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "Das Recht 'Bericht' kann nicht gesetzt werden, wenn das Recht 'Nur wenn Ersteller' gesetzt ist" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "Benachrichtigung mit Ereignis {0} im Dokumententyp {1} nicht möglich" @@ -4663,11 +4684,11 @@ msgstr "Ort/Stadt" msgid "Clear" msgstr "Löschen" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "Leeren und Vorlage einfügen" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "Leeren und Vorlage einfügen" @@ -4701,7 +4722,7 @@ msgstr "Protokolle löschen nach (in Tagen)" msgid "Clear User Permissions" msgstr "Benutzerrechte löschen" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "Email-Feld leeren und Vorlage einfügen" @@ -4754,7 +4775,7 @@ msgstr "Klicken Sie auf {0}, um das Refresh Token zu generieren." #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "Klicken Sie auf Tabelle bearbeiten" @@ -4765,7 +4786,7 @@ msgstr "Klicken Sie hier, um dynamische Filter einzustellen" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "Klicken Sie, um Filter einzustellen" @@ -4942,7 +4963,7 @@ msgstr "Code-Challenge-Methode" msgid "Collapse" msgstr "Zuklappen" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Zuklappen" @@ -5066,7 +5087,7 @@ msgstr "Spaltenbreite" msgid "Column width cannot be zero." msgstr "Spaltenbreite darf nicht null sein." -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "Spalte {0}" @@ -5309,7 +5330,7 @@ msgstr "Komprimiert" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "Bedingung" @@ -5648,7 +5669,7 @@ msgstr "Einbettungscode kopieren" msgid "Copy error to clipboard" msgstr "Fehler in die Zwischenablage kopieren" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "In die Zwischenablage kopieren" @@ -6259,13 +6280,13 @@ msgstr "Anpassungen verworfen" msgid "Customizations Reset" msgstr "Anpassungen Zurücksetzen" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "Anpassungen für {0} exportiert nach:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Anpassen" @@ -6918,7 +6939,7 @@ msgstr "Verzögert" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7271,7 +7292,7 @@ msgstr "Verknüpfung ist bereits auf dem Schreibtisch platziert" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "Details" @@ -7427,7 +7448,7 @@ msgstr "Deaktiviert" msgid "Disabled Auto Reply" msgstr "Automatische Antwort deaktiviert" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7516,7 +7537,7 @@ msgstr "Keinen neuen Benutzer anlegen" msgid "Do not create new user if user with email does not exist in the system" msgstr "Keinen neuen Benutzer anlegen, wenn der Benutzer mit E-Mail nicht im System vorhanden ist" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "Bearbeiten Sie keine Header, die in der Vorlage voreingestellt sind" @@ -7680,7 +7701,7 @@ msgstr "DocType ist eine Tabelle / ein Formular in der Anwendung." msgid "DocType must be Submittable for the selected Doc Event" msgstr "DocType muss für das ausgewählte Doc-Ereignis übermittelt werden" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "DocType muss eine Zeichenfolge sein" @@ -7701,11 +7722,11 @@ msgstr "DocType, auf den dieser Workflow anzuwenden ist." msgid "DocType required" msgstr "DocType erforderlich" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "DocType {0} existiert nicht." -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "DocType {} nicht gefunden" @@ -7816,7 +7837,7 @@ msgstr "Dokumentverknüpfungen Zeile #{0}: Tabellenfeldname ist obligatorisch f msgid "Document Name" msgstr "Dokumentenname" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "Dokumentname muss eine Zeichenkette sein" @@ -7992,7 +8013,7 @@ msgid "Document Types and Permissions" msgstr "Dokumenttypen und Berechtigungen" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "Dokument entsperrt" @@ -8020,11 +8041,11 @@ msgstr "Das Dokument kann nur von Benutzern mit der folgenden Rolle bearbeitet w msgid "Document not Relinked" msgstr "Dokument nicht erneut verknüpft" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "Dokument von {0} in {1} umbenannt" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "Die Umbenennung des Dokuments von {0} in {1} wurde in die Warteschlange gestellt" @@ -8040,7 +8061,7 @@ msgstr "Dokument {0} bereits wiederhergestellt" msgid "Document {0} has been set to state {1} by {2}" msgstr "Das Dokument {0} wurde mit {2} auf den Status {1} festgelegt." -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "Dokument {0} {1} existiert nicht" @@ -8267,7 +8288,7 @@ msgid "Due Date Based On" msgstr "Fälligkeitsdatum basiert auf" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Duplizieren" @@ -8382,7 +8403,7 @@ msgstr "ESC" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8431,7 +8452,7 @@ msgstr "Benutzerdefinierten Block bearbeiten" msgid "Edit Custom HTML" msgstr "Benutzerdefiniertes HTML bearbeiten" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "DocType bearbeiten" @@ -8616,7 +8637,7 @@ msgstr "Element Selektor" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8675,7 +8696,7 @@ msgstr "E-Mail-Konto {0} Deaktiviert" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "E-Mail-Adresse" @@ -8825,7 +8846,7 @@ msgstr "E-Mail-Synchronisierungsoption" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "E-Mail-Vorlage" @@ -8857,7 +8878,7 @@ msgstr "E-Mail wurde in den Papierkorb geworfen" msgid "Email is mandatory to create User Email" msgstr "E-Mail ist obligatorisch, um Benutzer-E-Mails zu erstellen" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "E-Mail wurde nicht an {0} gesendet (abbestellt / deaktiviert)" @@ -9054,7 +9075,7 @@ msgstr "Protokollierung von Seitenaufrufen aktivieren" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "Aktivieren Sie zwei Faktor Auth" @@ -9228,7 +9249,7 @@ msgstr "Geben Sie in den Google-Einstellungen die Client ID und das Client Secre msgid "Enter Code displayed in OTP App." msgstr "Geben Sie den in der OTP-App angezeigten Code ein." -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "Geben Sie den/die E-Mail-Empfänger an" @@ -9366,9 +9387,9 @@ msgstr "Fehler im Client-Skript." msgid "Error in Header/Footer Script" msgstr "Fehler im Kopf-/Fußzeilenskript" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "Fehler in der Benachrichtigung" @@ -9388,7 +9409,7 @@ msgstr "Fehler beim Parsen verschachtelter Filter: {0}" msgid "Error while connecting to email account {0}" msgstr "Fehler beim Verbinden mit dem E-Mail-Konto {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "Fehler beim Auswerten der Benachrichtigung {0}. Bitte reparieren Sie Ihre Vorlage." @@ -9570,7 +9591,7 @@ msgstr "Bestehende Rolle" msgid "Expand" msgstr "Erweitern" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Erweitern" @@ -9667,7 +9688,7 @@ msgstr "Anpassungen exportieren" msgid "Export Data" msgstr "Daten exportieren" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "Fehlerhafte Zeilen exportieren" @@ -9677,7 +9698,7 @@ msgstr "Fehlerhafte Zeilen exportieren" msgid "Export From" msgstr "Export von" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "Import-Log exportieren" @@ -9853,7 +9874,7 @@ msgstr "Löschen von {0} Dokumenten fehlgeschlagen: {1}" msgid "Failed to enable scheduler: {0}" msgstr "Konnte Zeitplaner nicht aktivieren: {0}" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "Die Bedingungen konnten nicht ausgewertet werden: {}" @@ -9890,11 +9911,11 @@ msgstr "Fehler beim Importieren des virtuellen Doctype {}, ist die Controller-Da msgid "Failed to optimize image: {0}" msgstr "Fehler beim Optimieren des Bilds: {0}" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "Nachricht konnte nicht dargestellt werden: {}" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "Betreff konnte nicht dargestellt werden: {}" @@ -9924,7 +9945,7 @@ msgstr "Fehler beim Aufruf der API {0}" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "Fehlgeschlagene geplante Aufträge (letzte 7 Tage)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "Fehler" @@ -9984,6 +10005,10 @@ msgstr "Beim Speichern abrufen, falls leer" msgid "Fetching default Global Search documents." msgstr "Abrufen von Standarddokumenten der globalen Suche." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -10088,7 +10113,7 @@ msgstr "" msgid "Field {0} not found." msgstr "Feld {0} nicht gefunden" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "Feld {0} im Dokument {1} ist weder ein Feld für eine Handynummer noch ein Kunden- oder Benutzerverknüpfung" @@ -10321,7 +10346,7 @@ msgstr "Dateien" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "Filter" @@ -10581,7 +10606,7 @@ msgid "Folio" msgstr "Folio" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "Folgen" @@ -10589,7 +10614,7 @@ msgstr "Folgen" msgid "Followed by" msgstr "Gefolgt von" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "Die folgenden Berichtsfilter haben fehlende Werte:" @@ -11054,11 +11079,16 @@ msgstr "Freitag" msgid "From" msgstr "Von" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "Von" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -11074,6 +11104,11 @@ msgstr "Von-Datum-Feld" msgid "From Document Type" msgstr "Vom Dokumenttyp" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11235,7 +11270,7 @@ msgstr "Geolokalisierung" msgid "Geolocation Settings" msgstr "Geolokalisierungseinstellungen" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "Alarme für heute" @@ -11327,7 +11362,7 @@ msgstr "Globale Verknüpfungen" msgid "Global Unsubscribe" msgstr "Global abbestellen" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "Gehen" @@ -11375,7 +11410,7 @@ msgstr "Nach dem Ausfüllen des Formulars diese URL aufrufen" msgid "Go to {0}" msgstr "Gehe zu {0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -12072,7 +12107,7 @@ msgstr "Wochenenden ausblenden" msgid "Hide descendant records of For Value." msgstr "Untergeordnete Datensätze von Für Wert ausblenden." -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "Details ausblenden" @@ -12755,11 +12790,11 @@ msgstr "Die Importvorlage sollte vom Typ .csv, .xlsx oder .xls sein" msgid "Import template should contain a Header and atleast one row." msgstr "Die Importvorlage sollte eine Kopfzeile und mindestens eine Zeile enthalten." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "Zeitüberschreitung beim Importieren, bitte erneut versuchen." -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "Importieren von {0} ist nicht erlaubt." @@ -13262,7 +13297,7 @@ msgstr "Ungültig" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "Ungültiger \"depends_on\" Ausdruck" @@ -13356,6 +13391,8 @@ msgstr "Ungültiger E-Mail-Server. Bitte Angaben korrigieren und erneut versuche msgid "Invalid Naming Series: {}" msgstr "Ungültiger Nummernkreis: {}" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13370,7 +13407,7 @@ msgstr "Ungültige Option" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "Ungültiger Postausgang Server oder Port: {0}" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "Ungültige Ausgabeformat" @@ -13492,7 +13529,7 @@ msgstr "Ungültiges Feldformat in {0}: {1}. Verwenden Sie 'field', 'link_field.f msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "Ungültiger Feldname in Funktion: {0}. Nur einfache Feldnamen sind erlaubt." -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "Ungültiger Feldname {0}" @@ -14027,6 +14064,7 @@ msgstr "Jobname" msgid "Job Status" msgstr "Jobstatus" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "Job erfolgreich beendet" @@ -14035,16 +14073,22 @@ msgstr "Job erfolgreich beendet" msgid "Job is in {0} state and can't be cancelled" msgstr "Job ist im Status {0} und kann nicht storniert werden" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "Job läuft nicht." +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "Videokonferenz mit {0} beitreten" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "Zum Feld springen" @@ -15096,7 +15140,7 @@ msgstr "Laden" msgid "Loading Filters..." msgstr "Lade Filter..." -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "Importdatei wird geladen ..." @@ -15231,7 +15275,7 @@ msgstr "Login-Bestätigungscode von {}" msgid "Login and view in Browser" msgstr "Anmelden und im Browser anzeigen" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "Um die Listenansicht des Webformulars zu sehen, ist eine Anmeldung erforderlich. Aktivieren Sie {0}, um die Listeneinstellungen zu sehen" @@ -15268,7 +15312,7 @@ msgstr "Anmelden bei {0}" msgid "Login token required" msgstr "Anmeldetoken erforderlich" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "Mit E-Mail-Link anmelden" @@ -15738,7 +15782,7 @@ msgstr "Mittel" msgid "Meeting" msgstr "Treffen" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "Bedingung erfüllt?" @@ -15774,7 +15818,7 @@ msgstr "Erwähnungen" msgid "Menu" msgstr "Menü" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Mit Existierenden zusammenführen" @@ -15799,16 +15843,16 @@ msgstr "Zusammenführung ist nur möglich zwischen Gruppen oder Knoten" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15845,7 +15889,7 @@ msgstr "Nachricht gesendet" msgid "Message Type" msgstr "Nachrichtentyp" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "Nachricht abgeschnitten" @@ -15853,7 +15897,7 @@ msgstr "Nachricht abgeschnitten" msgid "Message from server: {0}" msgstr "Nachricht vom Server: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "Nachricht nicht eingerichtet" @@ -16039,7 +16083,7 @@ msgstr "Fehlendes Feld" msgid "Missing Fields" msgstr "Nicht ausgefüllte Felder" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "Fehlende Filter erforderlich" @@ -16174,7 +16218,7 @@ msgstr " Modulprofil" msgid "Module Profile Name" msgstr "Modulprofil Name" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "Modul Onboarding-Fortschritt zurücksetzen" @@ -16182,7 +16226,7 @@ msgstr "Modul Onboarding-Fortschritt zurücksetzen" msgid "Module to Export" msgstr "In dieses Modul exportieren" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "Modul {} nicht gefunden" @@ -16698,7 +16742,7 @@ msgstr "Neue Nachricht von der Webseite Kontaktseite" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "Neuer Name" @@ -16802,10 +16846,10 @@ msgid "New value to be set" msgstr "Neuer Wert muss gesetzt werden" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16890,6 +16934,10 @@ msgstr "Nächste Aktion E-Mail-Vorlage" msgid "Next Actions HTML" msgstr "Nächste Aktionen HTML" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "Nächstes Dokument" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16957,8 +17005,8 @@ msgstr "Weiter bei Klick" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16994,7 +17042,7 @@ msgid "No Copy" msgstr "Keine Kopie" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17134,7 +17182,7 @@ msgstr "Keine anstehenden Termine" msgid "No address added yet." msgstr "Noch keine Adresse hinzugefügt." -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "Keine Warnungen für heute" @@ -17174,6 +17222,10 @@ msgstr "Noch keine Kontakte hinzugefügt." msgid "No contacts linked to document" msgstr "Keine Kontakte mit dem Dokument verknüpft" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "Keine zu exportierenden Daten" @@ -17194,7 +17246,7 @@ msgstr "Dem Benutzer ist kein E-Mail-Konto zugeordnet. Bitte fügen Sie unter Be msgid "No email addresses to invite" msgstr "Keine E-Mail-Adressen zum Einladen" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "Keine fehlgeschlagenen Protokolle" @@ -17257,7 +17309,7 @@ msgstr "Keine der Zeilen (Max 500)" msgid "No of Sent SMS" msgstr "Anzahl der gesendeten SMS" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "Keine Berechtigung für {0}" @@ -17294,7 +17346,7 @@ msgstr "Es werden keine Datensätze exportiert" msgid "No rows" msgstr "Keine Zeilen" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "Kein Betreff" @@ -17435,8 +17487,8 @@ msgstr "Keine Berechtigung zum Lesen von {0}" msgid "Not Published" msgstr "Nicht veröffentlicht" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17489,7 +17541,7 @@ msgstr "Nicht aktiv" msgid "Not allowed for {0}: {1}" msgstr "Nicht zulässig für {0}: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "Das {0} -Dokument darf nicht angehängt werden. Aktivieren Sie in den Druckeinstellungen die Option "Druck für {0} zulassen"" @@ -17521,7 +17573,7 @@ msgstr "Nicht im Entwicklungsmodus" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "Nicht im Entwicklungsmodus! In site_config.json erstellen oder \"Benutzerdefiniertes\" DocType erstellen." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17644,15 +17696,15 @@ msgstr "Benachrichtigungsdokument abonniert" msgid "Notification sent to" msgstr "Benachrichtigung gesendet an" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "Benachrichtigung: Kunde {0} hat keine Mobiltelefonnummer festgelegt" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "Benachrichtigung: Dokument {0} hat keine {1} Nummer gesetzt (Feld: {2})" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "Benachrichtigung: Benutzer {0} hat keine Mobiltelefonnummer festgelegt" @@ -17766,7 +17818,7 @@ msgstr "Anzahl der Abfragen" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "Anzahl der Anhangsfelder ist größer als {}, Limit auf {} aktualisiert." -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "Anzahl der Backups muss größer als Null sein." @@ -17875,14 +17927,30 @@ msgstr "OTP-App" msgid "OTP Issuer Name" msgstr "Name des OTP-Ausstellers" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "OTP Geheimnis zurücksetzen - {0}" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "OTP Secret wurde zurückgesetzt. Bei der Anmeldung ist eine erneute Anmeldung erforderlich." +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "Die OTP-Einrichtung mit der OTP-App wurde nicht abgeschlossen. Bitte kontaktieren Sie den Administrator." @@ -17998,7 +18066,7 @@ msgstr "Am oder nach" msgid "On or Before" msgstr "Am oder vor" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "Am {0}, schrieb {1}:" @@ -18058,7 +18126,7 @@ msgstr "Einmal-Passwort (OTP) Registrierungscode von {}" msgid "One of" msgstr "Einer von" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "Nur 200 Einsätze in einem Anfrage erlaubt" @@ -18096,7 +18164,7 @@ msgstr "Nur Datensätze senden, die in den letzten X Stunden aktualisiert wurden msgid "Only Workspace Manager can edit public workspaces" msgstr "Nur der Workspace Manager kann öffentliche Arbeitsbereiche bearbeiten" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "Anpassungen können nur im Entwicklermodus exportiert werden" @@ -18276,7 +18344,7 @@ msgstr "Geöffnet" msgid "Operation" msgstr "Arbeitsgang" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "Betreiber muss einer von {0}" @@ -18778,7 +18846,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "Das übergeordnete Feld wurde in {0}: {1} nicht angegeben" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "Übergeordneter Typ, übergeordnetes Element und übergeordnetes Feld sind erforderlich, um einen untergeordneten Datensatz einzufügen" @@ -18950,6 +19018,10 @@ msgstr "Pfad zum Server-Zertifikat" msgid "Path to private Key File" msgstr "Pfad zur privaten Schlüsseldatei" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "{0} ist kein gültiger Pfad" @@ -19274,7 +19346,7 @@ msgstr "Bitte Diagramm einstellen" msgid "Please Update SMS Settings" msgstr "Bitte SMS-Einstellungen aktualisieren" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "Bitte füge einen Betreff zu deiner E-Mail hinzu" @@ -19326,7 +19398,7 @@ msgstr "Bitte überprüfen Sie Ihren Posteingang auf weitere Instruktionen.\\nLa msgid "Please click Edit on the Workspace for best results" msgstr "Für optimale Ergebnisse klicken Sie bitte im Arbeitsbereich auf „Bearbeiten“" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "Bitte klicken Sie auf 'Fehlerhafte Zeilen exportieren', beheben Sie die Fehler und importieren Sie erneut." @@ -19366,7 +19438,7 @@ msgstr "Bitte nicht die Vorlagenköpfe ändern." msgid "Please duplicate this to make changes" msgstr "Bitte kopieren um Änderungen vorzunehmen" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." 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." @@ -19482,6 +19554,10 @@ msgstr "Bitte das Dokument vor der Zuweisung abspeichern" msgid "Please save the document before removing assignment" msgstr "Bitte das Dokument vor dem Entfernen einer Zuordnung abspeichern" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "Bitte speichern Sie den Bericht zuerst" @@ -19498,7 +19574,7 @@ msgstr "Bitte zuerst DocType auswählen" msgid "Please select Entity Type first" msgstr "Bitte wählen Sie zunächst Entitätstyp" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "Bitte wählen Sie Minimum Password Score" @@ -19564,7 +19640,7 @@ msgstr "Bitte legen Sie in den Druckereinstellungen eine Druckerzuordnung für d msgid "Please set filters" msgstr "Bitte Filter einstellen" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "Bitte setzen Sie Filter Wert in Berichtsfiltertabelle." @@ -19580,11 +19656,11 @@ msgstr "Bitte legen Sie zuerst die folgenden Dokumente in diesem Dashboard als S msgid "Please set the series to be used." msgstr "Bitte legen Sie die zu verwendende Serie fest." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "Bitte richten Sie SMS ein, bevor Sie es als Authentifizierungsmethode über SMS-Einstellungen festlegen" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "Bitte richten Sie zuerst eine Nachricht ein" @@ -19604,23 +19680,27 @@ msgstr "Bitte angeben" msgid "Please specify a valid parent DocType for {0}" msgstr "Bitte geben Sie einen gültigen übergeordneten DocType für {0} an" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "Bitte geben Sie den Minutenversatz an" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "Bitte angeben welches Datumsfeld überprüft werden muss" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "Bitte geben Sie an, welches Datumsfeld überprüft werden muss" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "Bitte angeben, welches Wertefeld überprüft werden muss" @@ -19807,7 +19887,7 @@ msgstr "Das Rendern des vorbereiteten Berichts ist fehlgeschlagen" msgid "Preparing Report" msgstr "Bericht vorbereiten" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "Vorlage oberhalb der Email-Nachricht einfügen" @@ -19828,7 +19908,7 @@ msgstr "Drücken Sie zum Speichern die Eingabetaste" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19882,6 +19962,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Vorhergehende" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "Vorheriges Dokument" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "Vorherige Buchungen" @@ -19931,8 +20015,8 @@ msgstr "Der Primärschlüssel von doctype {0} kann nicht geändert werden, da es #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -20045,7 +20129,7 @@ msgstr "Drucken ausblenden" msgid "Print Hide If No Value" msgstr "Drucken ausblenden wenn kein Wert" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "Drucksprache" @@ -20060,10 +20144,8 @@ msgid "Print Server" msgstr "Druck Server" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20685,7 +20767,7 @@ msgstr "AW:" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "AW: {0}" @@ -20696,7 +20778,7 @@ msgstr "AW: {0}" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20935,12 +21017,12 @@ msgstr "Weiterleitungen" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "Redis Cache-Server läuft nicht. Bitte Administrator/Technischen Support kontaktieren" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "Wiederholen" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "Letzte Aktion wiederholen" @@ -21253,7 +21335,7 @@ msgstr "Neu verknüpft" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Neu laden" @@ -21284,7 +21366,7 @@ msgstr "Zuletzt gewählten Wert merken" msgid "Remind At" msgstr "Erinnern am" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "Erinnere mich" @@ -21364,9 +21446,9 @@ msgid "Removed" msgstr "Entfernt" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21394,7 +21476,7 @@ msgstr "Beschriftungen nach links und Werte nach rechts in diesem Abschnitt anor msgid "Reopen" msgstr "Wieder öffnen" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "Wiederholen" @@ -21644,7 +21726,7 @@ msgstr "Bericht initiiert. Klicken Sie hier, um den Status anzuzeigen" msgid "Report limit reached" msgstr "Berichtsgrenze erreicht" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "Zeitüberschreitung des Berichts." @@ -21838,7 +21920,7 @@ msgstr "Layout zurücksetzen" msgid "Reset OTP Secret" msgstr "OTP-Geheimnis zurücksetzen" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21994,7 +22076,7 @@ msgid "Resume Sending" msgstr "Senden fortsetzen" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22316,7 +22398,7 @@ msgstr "Zeilen-Indizes" msgid "Row Name" msgstr "Zeilenname" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "Zeilennummer" @@ -22324,7 +22406,7 @@ msgstr "Zeilennummer" msgid "Row Values Changed" msgstr "Zeilenwerte geändert" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "Zeile {0}" @@ -22549,7 +22631,7 @@ msgid "Saturday" msgstr "Samstag" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22605,13 +22687,13 @@ msgstr "Dokument speichern." #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "Gespeichert" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "Gespeicherte Filter" @@ -22653,7 +22735,7 @@ msgstr "Scannen Sie den QR-Code und geben Sie den dargestellten Code ein." msgid "Schedule" msgstr "Planen" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "Senden planen am" @@ -22717,7 +22799,7 @@ msgstr "Planer" msgid "Scheduler Event" msgstr "Scheduler-Ereignis" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "Scheduler Inaktiv" @@ -22730,7 +22812,7 @@ msgstr "Planer-Status" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "Scheduler kann nicht wieder aktiviert werden, wenn der Wartungsmodus aktiv ist." -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "Scheduler ist inaktiv. Daten können nicht importiert werden." @@ -23031,8 +23113,8 @@ msgstr "Auswählen" msgid "Select All" msgstr "Alle auswählen" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -23098,7 +23180,7 @@ msgstr "Wählen Sie Dokumenttypen, um festzulegen, welche Benutzerberechtigungen #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "Feld auswählen" @@ -23172,7 +23254,7 @@ msgid "Select Page" msgstr "Seite auswählen" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Druckformat auswählen" @@ -23386,7 +23468,7 @@ msgstr "Jetzt senden" msgid "Send Print as PDF" msgstr "Ausdruck als PDF senden" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "Lesebestätigung senden" @@ -23445,11 +23527,11 @@ msgstr "E-Mail senden, wenn ein Dokument in den Status wechselt." msgid "Send enquiries to this email address" msgstr "Anfragen an diese E-Mail-Adresse senden" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "Anmelde-Link senden" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "Kopie an mich senden" @@ -23673,7 +23755,7 @@ msgstr "Sitzung abgelaufen" msgid "Session Expiry (idle timeout)" msgstr "Ablauf der Sitzung (Leerlaufzeit)" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "Sitzungsablauf muss im Format {0} sein" @@ -23718,7 +23800,7 @@ msgstr "Dynamische Filter einstellen" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "Filter setzen" @@ -24114,7 +24196,7 @@ msgstr "Fehler anzeigen" msgid "Show External Link Warning" msgstr "Warnung bei externen Links anzeigen" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "Feldname anzeigen (klicken um in Zwischenablage zu kopieren)" @@ -24166,7 +24248,7 @@ msgstr "Sprachauswahl anzeigen" msgid "Show Line Breaks after Sections" msgstr "Zeilenumbrüche nach Abschnitten anzeigen" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "Verknüpfungen anzeigen" @@ -24241,7 +24323,7 @@ msgstr "Seitenleiste anzeigen" msgid "Show Social Login Key as Authorization Server" msgstr "Social Login Key als Autorisierungsserver anzeigen" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "Schlagworte anzeigen" @@ -24267,7 +24349,7 @@ msgstr "Summen anzeigen" msgid "Show Tour" msgstr "Tour anzeigen" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "Traceback anzeigen" @@ -24347,8 +24429,8 @@ msgstr "Link zum Dokument anzeigen" msgid "Show list" msgstr "Liste anzeigen" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "Weiteres" @@ -24536,7 +24618,7 @@ msgstr "Spalte ohne Titel überspringen" msgid "Skipping column {0}" msgstr "Spalte {0} wird übersprungen" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "Überspringe Synchronisierung von Fixtures für den Doctype {0} aus der Datei {1}" @@ -24932,7 +25014,7 @@ msgstr "Startdatum" msgid "Start Date Field" msgstr "Startdatum Feld" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "Starten Sie den Import" @@ -25066,7 +25148,7 @@ msgstr "Statistik Zeitintervall" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25233,9 +25315,9 @@ msgstr "Unterdomäne" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Betreff" @@ -25379,12 +25461,12 @@ msgstr "Untertitel" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25444,11 +25526,11 @@ msgstr "Erfolgreich: {0} um {1}" msgid "Successfully Updated" msgstr "Erfolgreich aktualisiert" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "{0} erfolgreich importiert" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "{0} von {1} Datensätzen erfolgreich importiert." @@ -25464,11 +25546,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "Erfolgreich aktualisierte Übersetzungen" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "{0} erfolgreich aktualisiert" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "{0} von {1} Datensätzen erfolgreich aktualisiert." @@ -25603,7 +25685,7 @@ msgstr "Synchronisiert" msgid "Syncing {0} of {1}" msgstr "{0} von {1} synchronisieren" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "Syntaxfehler" @@ -25914,7 +25996,7 @@ msgstr "Tabelle MultiSelect" msgid "Table Trimmed" msgstr "Tabelle gekürzt" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "Tabelle aktualisiert" @@ -26131,7 +26213,7 @@ msgstr "Danke" msgid "The Auto Repeat for this document has been disabled." msgstr "Die automatische Wiederholung für dieses Dokument wurde deaktiviert." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "Das CSV-Format unterscheidet zwischen Groß- und Kleinschreibung" @@ -26144,7 +26226,7 @@ msgstr "Die Client-ID, die Sie in der Google Cloud Console unter
erhalten" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "Die Bedingung '{0}' ist ungültig" @@ -26395,7 +26477,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "Es gibt bereits {0} mit denselben Filtern in der Warteschlange:" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "Es dürfen höchstens 9 Seitenumbrüche in einem Webformular vorkommen" @@ -26447,7 +26529,7 @@ msgstr "Es gab Fehler" msgid "There were errors while creating the document. Please try again." msgstr "Beim Erstellen des Dokuments sind Fehler aufgetreten. Bitte versuche es erneut." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "Beim Versand der E-Mail ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut." @@ -26524,7 +26606,7 @@ msgstr "Diese Aktion ist unumkehrbar. Möchten Sie fortfahren?" msgid "This action is only allowed for {}" msgstr "Diese Aktion ist nur für {} zulässig" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "Das kann nicht rückgängig gemacht werden" @@ -26757,6 +26839,8 @@ msgstr "Dadurch werden Ihre Daten dauerhaft entfernt." msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "Dadurch wird diese Tour zurückgesetzt und für alle Benutzer sichtbar. Sind Sie sicher?" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Das wird den Auftrag sofort beenden und könnte gefährlich sein, sind Sie sicher?" @@ -27833,15 +27917,15 @@ msgstr "Bedingung für das Aufheben der Zuweisung" msgid "Uncaught Exception" msgstr "Nicht abgefangene Ausnahme" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "Unverändert" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "Rückgängig machen" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "Letzte Aktion rückgängig machen" @@ -27850,7 +27934,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "Nicht mehr folgen" @@ -27890,7 +27974,7 @@ msgstr "Unbekannt" msgid "Unknown Column: {0}" msgstr "Unbekannte Spalte: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "Unbekannte Rundungsmethode: {}" @@ -28118,7 +28202,7 @@ msgstr "Globale Einstellungen aktualisieren" msgid "Updating naming series options" msgstr "Optionen für Nummernkreise werden aktualisiert" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "Aktualisiere zugehörige Felder..." @@ -28764,7 +28848,7 @@ msgstr "Gültigkeit" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Wert" @@ -28842,7 +28926,7 @@ msgstr "Wert zu groß" msgid "Value {0} missing for {1}" msgstr "Wert {0} fehlt für {1}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "Der Wert {0} muss das gültige Dauerformat haben: dhms" @@ -28864,7 +28948,7 @@ msgstr "Verdana" msgid "Verification" msgstr "Verifizierung" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "Verifizierungscode" @@ -28922,7 +29006,7 @@ msgstr "Ansicht" msgid "View All" msgstr "Alle ansehen" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "Prüfprotokoll anzeigen" @@ -29888,9 +29972,9 @@ msgstr "Gelb" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29985,7 +30069,7 @@ msgstr "Sie dürfen keinen {} Doctype exportieren" msgid "You are not allowed to print this report" msgstr "Sie sind nicht berechtigt diesen Bericht zu drucken" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "Sie sind nicht berechtigt E-Mails, die sich auf dieses Dokument beziehen, zu versenden" @@ -30173,7 +30257,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "Sie haben dieses Dokument {0} erstellt" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "Sie haben keine Lese- oder Auswahlberechtigung für {}" @@ -30233,7 +30317,7 @@ msgstr "Sie haben das Limit für die Zeilengröße in der Datenbanktabelle errei msgid "You have not entered a value. The field will be set to empty." msgstr "Sie haben keinen Wert eingegeben. Das Feld wird auf leer gesetzt." -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "Sie müssen die Zwei-Faktor-Authentifizierung in den Systemeinstellungen aktivieren." @@ -30342,7 +30426,7 @@ msgstr "Sie benötigen Schreibberechtigung für {0} {1} zum Zusammenführen" msgid "You need write permission on {0} {1} to rename" msgstr "Sie benötigen Schreibberechtigung für {0} {1} zum Umbenennen" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "Sie benötigen eine {0}-Berechtigung, um die Werte von {1} {2} abzurufen" @@ -30516,7 +30600,7 @@ msgstr "Ihre Website wird gerade gewartet oder aktualisiert." msgid "Your verification code is {0}" msgstr "Ihr Bestätigungscode ist {0}" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "Null" @@ -30559,7 +30643,7 @@ msgstr "nach_einfügen" msgid "amend" msgstr "berichtigen" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "und" @@ -30846,7 +30930,7 @@ msgstr "Liste" msgid "logged in" msgstr "Angemeldet" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "login_required" @@ -31184,7 +31268,7 @@ msgstr "über Datenimport" msgid "via Google Meet" msgstr "über Google Meet" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "über Benachrichtigung" @@ -31393,7 +31477,7 @@ msgstr "{0} bereits abgemeldet" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} bereits abgemeldet für {1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} und {1}" @@ -31418,7 +31502,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "{0} hat {1} angehängt" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "{0} darf nicht größer als {1} sein" @@ -31731,7 +31815,7 @@ msgstr "vor {0} Minuten" msgid "{0} months ago" msgstr "vor {0} Monaten" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} muss nach {1} liegen" @@ -31788,12 +31872,12 @@ msgstr "{0} von {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} von {1} ({2} Zeilen mit untergeordneten Elementen)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "{0}." -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} oder {1}" @@ -31838,7 +31922,7 @@ msgstr "{0} hat {1} Zeilen von {2} entfernt" msgid "{0} role does not have permission on any doctype" msgstr "{0} Die Rolle hat keine Berechtigung für einen Doctype" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} Zeile #{1}:" @@ -32117,11 +32201,11 @@ msgstr "{{{0}}} ist kein gültiges Format für Feldnamen. Es sollte sein {{field msgid "{} Complete" msgstr "{} Komplett" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "{} Ungültiger Python-Code in Zeile {}" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "{} Possibly invalid python code.
{}" diff --git a/frappe/locale/eo.po b/frappe/locale/eo.po index f07941d506..8f026168fd 100644 --- a/frappe/locale/eo.po +++ b/frappe/locale/eo.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:49\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Esperanto\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "crwdns90548:0crwdne90548:0" msgid "1 Report" msgstr "crwdns110780:0crwdne110780:0" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "crwdns90552:0crwdne90552:0" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "crwdns90554:0crwdne90554:0" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "crwdns90556:0crwdne90556:0" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "crwdns90558:0crwdne90558:0" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "crwdns90560:0crwdne90560:0" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "crwdns158970:0{0}crwdne158970:0" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "crwdns90564:0crwdne90564:0" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "crwdns90566:0crwdne90566:0" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "crwdns90568:0crwdne90568:0" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "crwdns90570:0crwdne90570:0" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "crwdns90572:0crwdne90572:0" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "crwdns90574:0crwdne90574:0" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "crwdns90576:0crwdne90576:0" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "crwdns90578:0crwdne90578:0" @@ -231,7 +231,7 @@ msgstr "crwdns90582:0crwdne90582:0" msgid "5 Records" msgstr "crwdns90584:0crwdne90584:0" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "crwdns90586:0crwdne90586:0" @@ -504,7 +504,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "crwdns127946:0crwdne127946:0" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "crwdns90622:0{0}crwdne90622:0" @@ -904,7 +904,7 @@ msgstr "crwdns128016:0crwdne128016:0" msgid "Action Complete" msgstr "crwdns90762:0crwdne90762:0" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "crwdns90764:0crwdne90764:0" @@ -1041,7 +1041,7 @@ msgstr "crwdns90810:0crwdne90810:0" msgid "Add A New Rule" msgstr "crwdns90812:0crwdne90812:0" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "crwdns90814:0crwdne90814:0" @@ -1146,7 +1146,7 @@ msgstr "crwdns110790:0crwdne110790:0" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "crwdns90854:0crwdne90854:0" @@ -1174,7 +1174,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "crwdns90866:0crwdne90866:0" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "crwdns90868:0crwdne90868:0" @@ -1581,6 +1581,7 @@ msgstr "crwdns90998:0crwdne90998:0" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1595,7 +1596,9 @@ msgstr "crwdns90998:0crwdne90998:0" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2197,7 +2200,7 @@ msgstr "crwdns91230:0crwdne91230:0" msgid "App Name (Client Name)" msgstr "crwdns155952:0crwdne155952:0" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "crwdns91240:0{0}crwdne91240:0" @@ -2359,7 +2362,7 @@ msgstr "crwdns157294:0crwdne157294:0" msgid "Are you sure you want to clear the assignments?" msgstr "crwdns104470:0crwdne104470:0" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "crwdns91308:0crwdne91308:0" @@ -2395,7 +2398,7 @@ msgstr "crwdns91314:0crwdne91314:0" msgid "Are you sure you want to generate a new report?" msgstr "crwdns110808:0crwdne110808:0" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "crwdns91316:0{0}crwdnd91316:0{1}crwdne91316:0" @@ -2641,10 +2644,15 @@ msgstr "crwdns104474:0crwdne104474:0" msgid "Attach" msgstr "crwdns91420:0crwdne91420:0" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "crwdns91430:0crwdne91430:0" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "crwdns160698:0crwdne160698:0" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2727,6 +2735,11 @@ msgstr "crwdns128312:0crwdne128312:0" msgid "Attachment Removed" msgstr "crwdns128314:0crwdne128314:0" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "crwdns160700:0crwdne160700:0" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2904,7 +2917,7 @@ msgstr "crwdns91552:0{0}crwdnd91552:0{1}crwdne91552:0" msgid "Auto Repeat Document Creation Failed" msgstr "crwdns91554:0crwdne91554:0" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "crwdns91556:0crwdne91556:0" @@ -3138,7 +3151,7 @@ msgstr "crwdns128392:0crwdne128392:0" msgid "BCC" msgstr "crwdns91650:0crwdne91650:0" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "crwdns154395:0crwdne154395:0" @@ -3156,7 +3169,7 @@ msgstr "crwdns91656:0crwdne91656:0" msgid "Back to Home" msgstr "crwdns91658:0crwdne91658:0" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "crwdns91660:0crwdne91660:0" @@ -3596,7 +3609,7 @@ msgstr "crwdns91880:0crwdne91880:0" msgid "Bulk Edit" msgstr "crwdns91882:0crwdne91882:0" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "crwdns91884:0{0}crwdne91884:0" @@ -3719,7 +3732,7 @@ msgstr "crwdns91934:0crwdne91934:0" msgid "CC" msgstr "crwdns91936:0crwdne91936:0" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "crwdns154397:0crwdne154397:0" @@ -3914,6 +3927,14 @@ msgstr "crwdns92026:0crwdne92026:0" msgid "Cancel All Documents" msgstr "crwdns92028:0crwdne92028:0" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "crwdns160626:0crwdne160626:0" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "crwdns160628:0crwdne160628:0" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3951,11 +3972,11 @@ msgstr "crwdns92050:0crwdne92050:0" msgid "Cancelling {0}" msgstr "crwdns92052:0{0}crwdne92052:0" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "crwdns92054:0crwdne92054:0" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "crwdns92056:0crwdne92056:0" @@ -4058,7 +4079,7 @@ msgstr "crwdns92104:0{0}crwdne92104:0" msgid "Cannot edit Standard Dashboards" msgstr "crwdns92106:0crwdne92106:0" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "crwdns92108:0crwdne92108:0" @@ -4083,7 +4104,7 @@ msgstr "crwdns92116:0crwdne92116:0" msgid "Cannot edit filters for standard number cards" msgstr "crwdns127894:0crwdne127894:0" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "crwdns92118:0crwdne92118:0" @@ -4103,7 +4124,7 @@ msgstr "crwdns92124:0crwdne92124:0" msgid "Cannot have multiple printers mapped to a single print format." msgstr "crwdns92126:0crwdne92126:0" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "crwdns154588:0crwdne154588:0" @@ -4131,7 +4152,7 @@ msgstr "crwdns92136:0crwdne92136:0" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "crwdns110830:0crwdne110830:0" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "crwdns142876:0{0}crwdnd142876:0{1}crwdne142876:0" @@ -4476,11 +4497,11 @@ msgstr "crwdns128636:0crwdne128636:0" msgid "Clear" msgstr "crwdns92294:0crwdne92294:0" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "crwdns92296:0crwdne92296:0" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "crwdns92298:0crwdne92298:0" @@ -4514,7 +4535,7 @@ msgstr "crwdns128638:0crwdne128638:0" msgid "Clear User Permissions" msgstr "crwdns92306:0crwdne92306:0" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "crwdns92308:0crwdne92308:0" @@ -4567,7 +4588,7 @@ msgstr "crwdns92328:0{0}crwdne92328:0" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "crwdns92330:0crwdne92330:0" @@ -4578,7 +4599,7 @@ msgstr "crwdns110842:0crwdne110842:0" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "crwdns110844:0crwdne110844:0" @@ -4755,7 +4776,7 @@ msgstr "crwdns128668:0crwdne128668:0" msgid "Collapse" msgstr "crwdns92400:0crwdne92400:0" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "crwdns92402:0crwdne92402:0" @@ -4879,7 +4900,7 @@ msgstr "crwdns110850:0crwdne110850:0" msgid "Column width cannot be zero." msgstr "crwdns92470:0crwdne92470:0" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "crwdns110852:0{0}crwdne110852:0" @@ -5122,7 +5143,7 @@ msgstr "crwdns152535:0crwdne152535:0" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "crwdns110856:0crwdne110856:0" @@ -5459,7 +5480,7 @@ msgstr "crwdns148980:0crwdne148980:0" msgid "Copy error to clipboard" msgstr "crwdns92732:0crwdne92732:0" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "crwdns148722:0crwdne148722:0" @@ -6070,13 +6091,13 @@ msgstr "crwdns93010:0crwdne93010:0" msgid "Customizations Reset" msgstr "crwdns93012:0crwdne93012:0" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "crwdns93014:0{0}crwdnd93014:0{1}crwdne93014:0" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "crwdns93016:0crwdne93016:0" @@ -6729,7 +6750,7 @@ msgstr "crwdns128908:0crwdne128908:0" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7082,7 +7103,7 @@ msgstr "crwdns93458:0crwdne93458:0" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "crwdns93460:0crwdne93460:0" @@ -7238,7 +7259,7 @@ msgstr "crwdns93510:0crwdne93510:0" msgid "Disabled Auto Reply" msgstr "crwdns93536:0crwdne93536:0" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7327,7 +7348,7 @@ msgstr "crwdns158720:0crwdne158720:0" msgid "Do not create new user if user with email does not exist in the system" msgstr "crwdns128982:0crwdne128982:0" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "crwdns93560:0crwdne93560:0" @@ -7489,7 +7510,7 @@ msgstr "crwdns111506:0crwdne111506:0" msgid "DocType must be Submittable for the selected Doc Event" msgstr "crwdns93642:0crwdne93642:0" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "crwdns93644:0crwdne93644:0" @@ -7510,11 +7531,11 @@ msgstr "crwdns128994:0crwdne128994:0" msgid "DocType required" msgstr "crwdns93652:0crwdne93652:0" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "crwdns93654:0{0}crwdne93654:0" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "crwdns93656:0crwdne93656:0" @@ -7625,7 +7646,7 @@ msgstr "crwdns93702:0#{0}crwdne93702:0" msgid "Document Name" msgstr "crwdns93704:0crwdne93704:0" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "crwdns93718:0crwdne93718:0" @@ -7801,7 +7822,7 @@ msgid "Document Types and Permissions" msgstr "crwdns129022:0crwdne129022:0" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "crwdns93812:0crwdne93812:0" @@ -7829,11 +7850,11 @@ msgstr "crwdns110888:0crwdne110888:0" msgid "Document not Relinked" msgstr "crwdns93820:0crwdne93820:0" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "crwdns93822:0{0}crwdnd93822:0{1}crwdne93822:0" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "crwdns93824:0{0}crwdnd93824:0{1}crwdne93824:0" @@ -7849,7 +7870,7 @@ msgstr "crwdns93828:0{0}crwdne93828:0" msgid "Document {0} has been set to state {1} by {2}" msgstr "crwdns93830:0{0}crwdnd93830:0{1}crwdnd93830:0{2}crwdne93830:0" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "crwdns93832:0{0}crwdnd93832:0{1}crwdne93832:0" @@ -8076,7 +8097,7 @@ msgid "Due Date Based On" msgstr "crwdns129052:0crwdne129052:0" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "crwdns93918:0crwdne93918:0" @@ -8191,7 +8212,7 @@ msgstr "crwdns110894:0crwdne110894:0" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8240,7 +8261,7 @@ msgstr "crwdns110900:0crwdne110900:0" msgid "Edit Custom HTML" msgstr "crwdns93982:0crwdne93982:0" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "crwdns93984:0crwdne93984:0" @@ -8425,7 +8446,7 @@ msgstr "crwdns129070:0crwdne129070:0" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8484,7 +8505,7 @@ msgstr "crwdns155328:0{0}crwdne155328:0" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "crwdns94080:0crwdne94080:0" @@ -8634,7 +8655,7 @@ msgstr "crwdns129100:0crwdne129100:0" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "crwdns94160:0crwdne94160:0" @@ -8666,7 +8687,7 @@ msgstr "crwdns94174:0crwdne94174:0" msgid "Email is mandatory to create User Email" msgstr "crwdns151610:0crwdne151610:0" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "crwdns94176:0{0}crwdne94176:0" @@ -8863,7 +8884,7 @@ msgstr "crwdns94244:0crwdne94244:0" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "crwdns94246:0crwdne94246:0" @@ -9036,7 +9057,7 @@ msgstr "crwdns94356:0crwdne94356:0" msgid "Enter Code displayed in OTP App." msgstr "crwdns110922:0crwdne110922:0" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "crwdns94358:0crwdne94358:0" @@ -9174,9 +9195,9 @@ msgstr "crwdns94422:0crwdne94422:0" msgid "Error in Header/Footer Script" msgstr "crwdns110924:0crwdne110924:0" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "crwdns94424:0crwdne94424:0" @@ -9196,7 +9217,7 @@ msgstr "crwdns155528:0{0}crwdne155528:0" msgid "Error while connecting to email account {0}" msgstr "crwdns94428:0{0}crwdne94428:0" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "crwdns94430:0{0}crwdne94430:0" @@ -9378,7 +9399,7 @@ msgstr "crwdns148650:0crwdne148650:0" msgid "Expand" msgstr "crwdns94502:0crwdne94502:0" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "crwdns94504:0crwdne94504:0" @@ -9475,7 +9496,7 @@ msgstr "crwdns94540:0crwdne94540:0" msgid "Export Data" msgstr "crwdns94542:0crwdne94542:0" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "crwdns94546:0crwdne94546:0" @@ -9485,7 +9506,7 @@ msgstr "crwdns94546:0crwdne94546:0" msgid "Export From" msgstr "crwdns129234:0crwdne129234:0" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "crwdns94550:0crwdne94550:0" @@ -9661,7 +9682,7 @@ msgstr "crwdns127646:0{0}crwdnd127646:0{1}crwdne127646:0" msgid "Failed to enable scheduler: {0}" msgstr "crwdns94606:0{0}crwdne94606:0" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "crwdns94608:0crwdne94608:0" @@ -9698,11 +9719,11 @@ msgstr "crwdns94620:0crwdne94620:0" msgid "Failed to optimize image: {0}" msgstr "crwdns94622:0{0}crwdne94622:0" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "crwdns143068:0crwdne143068:0" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "crwdns143070:0crwdne143070:0" @@ -9732,7 +9753,7 @@ msgstr "crwdns151616:0{0}crwdne151616:0" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "crwdns129264:0crwdne129264:0" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "crwdns94630:0crwdne94630:0" @@ -9792,6 +9813,10 @@ msgstr "crwdns129276:0crwdne129276:0" msgid "Fetching default Global Search documents." msgstr "crwdns94660:0crwdne94660:0" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "crwdns160630:0{0}crwdne160630:0" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9896,7 +9921,7 @@ msgstr "crwdns160494:0{0}crwdne160494:0" msgid "Field {0} not found." msgstr "crwdns94708:0{0}crwdne94708:0" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "crwdns142910:0{0}crwdnd142910:0{1}crwdne142910:0" @@ -10129,7 +10154,7 @@ msgstr "crwdns129306:0crwdne129306:0" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "crwdns94828:0crwdne94828:0" @@ -10389,7 +10414,7 @@ msgid "Folio" msgstr "crwdns129350:0crwdne129350:0" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "crwdns94950:0crwdne94950:0" @@ -10397,7 +10422,7 @@ msgstr "crwdns94950:0crwdne94950:0" msgid "Followed by" msgstr "crwdns110944:0crwdne110944:0" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "crwdns94952:0crwdne94952:0" @@ -10861,11 +10886,16 @@ msgstr "crwdns129428:0crwdne129428:0" msgid "From" msgstr "crwdns95150:0crwdne95150:0" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "crwdns154401:0crwdne154401:0" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "crwdns160702:0crwdne160702:0" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10881,6 +10911,11 @@ msgstr "crwdns129430:0crwdne129430:0" msgid "From Document Type" msgstr "crwdns95162:0crwdne95162:0" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "crwdns160704:0crwdne160704:0" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11042,7 +11077,7 @@ msgstr "crwdns129450:0crwdne129450:0" msgid "Geolocation Settings" msgstr "crwdns148734:0crwdne148734:0" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "crwdns95236:0crwdne95236:0" @@ -11134,7 +11169,7 @@ msgstr "crwdns95268:0crwdne95268:0" msgid "Global Unsubscribe" msgstr "crwdns129464:0crwdne129464:0" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "crwdns95272:0crwdne95272:0" @@ -11182,7 +11217,7 @@ msgstr "crwdns129468:0crwdne129468:0" msgid "Go to {0}" msgstr "crwdns95292:0{0}crwdne95292:0" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11879,7 +11914,7 @@ msgstr "crwdns95622:0crwdne95622:0" msgid "Hide descendant records of For Value." msgstr "crwdns129582:0crwdne129582:0" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "crwdns95628:0crwdne95628:0" @@ -12562,11 +12597,11 @@ msgstr "crwdns95900:0crwdne95900:0" msgid "Import template should contain a Header and atleast one row." msgstr "crwdns95902:0crwdne95902:0" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "crwdns95904:0crwdne95904:0" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "crwdns95906:0{0}crwdne95906:0" @@ -13069,7 +13104,7 @@ msgstr "crwdns129784:0crwdne129784:0" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "crwdns96130:0crwdne96130:0" @@ -13163,6 +13198,8 @@ msgstr "crwdns96164:0crwdne96164:0" msgid "Invalid Naming Series: {}" msgstr "crwdns96166:0crwdne96166:0" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13177,7 +13214,7 @@ msgstr "crwdns96170:0crwdne96170:0" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "crwdns96172:0{0}crwdne96172:0" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "crwdns96174:0crwdne96174:0" @@ -13299,7 +13336,7 @@ msgstr "crwdns155562:0{0}crwdnd155562:0{1}crwdne155562:0" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "crwdns155564:0{0}crwdne155564:0" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "crwdns96206:0{0}crwdne96206:0" @@ -13834,6 +13871,7 @@ msgstr "crwdns129876:0crwdne129876:0" msgid "Job Status" msgstr "crwdns129878:0crwdne129878:0" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "crwdns96418:0crwdne96418:0" @@ -13842,16 +13880,22 @@ msgstr "crwdns96418:0crwdne96418:0" msgid "Job is in {0} state and can't be cancelled" msgstr "crwdns155506:0{0}crwdne155506:0" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "crwdns96420:0crwdne96420:0" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "crwdns160632:0crwdne160632:0" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "crwdns96422:0{0}crwdne96422:0" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "crwdns96424:0crwdne96424:0" @@ -14903,7 +14947,7 @@ msgstr "crwdns96892:0crwdne96892:0" msgid "Loading Filters..." msgstr "crwdns110994:0crwdne110994:0" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "crwdns96894:0crwdne96894:0" @@ -15038,7 +15082,7 @@ msgstr "crwdns96944:0crwdne96944:0" msgid "Login and view in Browser" msgstr "crwdns96948:0crwdne96948:0" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "crwdns96950:0{0}crwdne96950:0" @@ -15075,7 +15119,7 @@ msgstr "crwdns96960:0{0}crwdne96960:0" msgid "Login token required" msgstr "crwdns148306:0crwdne148306:0" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "crwdns96962:0crwdne96962:0" @@ -15545,7 +15589,7 @@ msgstr "crwdns97150:0crwdne97150:0" msgid "Meeting" msgstr "crwdns130166:0crwdne130166:0" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "crwdns130168:0crwdne130168:0" @@ -15581,7 +15625,7 @@ msgstr "crwdns130176:0crwdne130176:0" msgid "Menu" msgstr "crwdns97168:0crwdne97168:0" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "crwdns97170:0crwdne97170:0" @@ -15606,16 +15650,16 @@ msgstr "crwdns97172:0crwdne97172:0" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15652,7 +15696,7 @@ msgstr "crwdns148312:0crwdne148312:0" msgid "Message Type" msgstr "crwdns130188:0crwdne130188:0" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "crwdns97214:0crwdne97214:0" @@ -15660,7 +15704,7 @@ msgstr "crwdns97214:0crwdne97214:0" msgid "Message from server: {0}" msgstr "crwdns97216:0{0}crwdne97216:0" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "crwdns97218:0crwdne97218:0" @@ -15846,7 +15890,7 @@ msgstr "crwdns97292:0crwdne97292:0" msgid "Missing Fields" msgstr "crwdns97294:0crwdne97294:0" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "crwdns97296:0crwdne97296:0" @@ -15981,7 +16025,7 @@ msgstr "crwdns97382:0crwdne97382:0" msgid "Module Profile Name" msgstr "crwdns130220:0crwdne130220:0" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "crwdns97390:0crwdne97390:0" @@ -15989,7 +16033,7 @@ msgstr "crwdns97390:0crwdne97390:0" msgid "Module to Export" msgstr "crwdns97392:0crwdne97392:0" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "crwdns97394:0crwdne97394:0" @@ -16503,7 +16547,7 @@ msgstr "crwdns97612:0crwdne97612:0" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "crwdns97614:0crwdne97614:0" @@ -16605,10 +16649,10 @@ msgid "New value to be set" msgstr "crwdns130276:0crwdne130276:0" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16693,6 +16737,10 @@ msgstr "crwdns130278:0crwdne130278:0" msgid "Next Actions HTML" msgstr "crwdns130280:0crwdne130280:0" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "crwdns160706:0crwdne160706:0" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16760,8 +16808,8 @@ msgstr "crwdns130294:0crwdne130294:0" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16797,7 +16845,7 @@ msgid "No Copy" msgstr "crwdns130296:0crwdne130296:0" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16937,7 +16985,7 @@ msgstr "crwdns111054:0crwdne111054:0" msgid "No address added yet." msgstr "crwdns111058:0crwdne111058:0" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "crwdns97760:0crwdne97760:0" @@ -16977,6 +17025,10 @@ msgstr "crwdns111060:0crwdne111060:0" msgid "No contacts linked to document" msgstr "crwdns97778:0crwdne97778:0" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "crwdns160634:0{0}crwdne160634:0" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "crwdns97780:0crwdne97780:0" @@ -16997,7 +17049,7 @@ msgstr "crwdns97786:0crwdne97786:0" msgid "No email addresses to invite" msgstr "crwdns157354:0crwdne157354:0" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "crwdns111062:0crwdne111062:0" @@ -17060,7 +17112,7 @@ msgstr "crwdns130300:0crwdne130300:0" msgid "No of Sent SMS" msgstr "crwdns130302:0crwdne130302:0" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "crwdns97808:0{0}crwdne97808:0" @@ -17097,7 +17149,7 @@ msgstr "crwdns97820:0crwdne97820:0" msgid "No rows" msgstr "crwdns148314:0crwdne148314:0" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "crwdns143098:0crwdne143098:0" @@ -17238,8 +17290,8 @@ msgstr "crwdns97868:0{0}crwdne97868:0" msgid "Not Published" msgstr "crwdns97870:0crwdne97870:0" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17292,7 +17344,7 @@ msgstr "crwdns97892:0crwdne97892:0" msgid "Not allowed for {0}: {1}" msgstr "crwdns97894:0{0}crwdnd97894:0{1}crwdne97894:0" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "crwdns97896:0{0}crwdnd97896:0{0}crwdne97896:0" @@ -17324,7 +17376,7 @@ msgstr "crwdns97908:0crwdne97908:0" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "crwdns97910:0crwdne97910:0" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17447,15 +17499,15 @@ msgstr "crwdns97970:0crwdne97970:0" msgid "Notification sent to" msgstr "crwdns111084:0crwdne111084:0" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "crwdns142914:0{0}crwdne142914:0" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "crwdns142916:0{0}crwdnd142916:0{1}crwdnd142916:0{2}crwdne142916:0" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "crwdns142918:0{0}crwdne142918:0" @@ -17569,7 +17621,7 @@ msgstr "crwdns130348:0crwdne130348:0" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "crwdns98018:0crwdne98018:0" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "crwdns98020:0crwdne98020:0" @@ -17678,14 +17730,30 @@ msgstr "crwdns130366:0crwdne130366:0" msgid "OTP Issuer Name" msgstr "crwdns130368:0crwdne130368:0" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "crwdns160708:0crwdne160708:0" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "crwdns160710:0{0}crwdne160710:0" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "crwdns98060:0{0}crwdne98060:0" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "crwdns98062:0crwdne98062:0" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "crwdns160712:0{{ otp }}crwdne160712:0" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "crwdns111088:0crwdne111088:0" @@ -17801,7 +17869,7 @@ msgstr "crwdns149004:0crwdne149004:0" msgid "On or Before" msgstr "crwdns149006:0crwdne149006:0" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "crwdns111096:0{0}crwdnd111096:0{1}crwdne111096:0" @@ -17861,7 +17929,7 @@ msgstr "crwdns98106:0crwdne98106:0" msgid "One of" msgstr "crwdns98108:0crwdne98108:0" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "crwdns98112:0crwdne98112:0" @@ -17899,7 +17967,7 @@ msgstr "crwdns130408:0crwdne130408:0" msgid "Only Workspace Manager can edit public workspaces" msgstr "crwdns98128:0crwdne98128:0" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "crwdns98132:0crwdne98132:0" @@ -18079,7 +18147,7 @@ msgstr "crwdns130426:0crwdne130426:0" msgid "Operation" msgstr "crwdns130428:0crwdne130428:0" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "crwdns98200:0{0}crwdne98200:0" @@ -18581,7 +18649,7 @@ msgstr "crwdns155990:0crwdne155990:0" msgid "Parentfield not specified in {0}: {1}" msgstr "crwdns98418:0{0}crwdnd98418:0{1}crwdne98418:0" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "crwdns98420:0crwdne98420:0" @@ -18753,6 +18821,10 @@ msgstr "crwdns130526:0crwdne130526:0" msgid "Path to private Key File" msgstr "crwdns130528:0crwdne130528:0" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "crwdns160714:0{0}crwdnd160714:0{1}crwdne160714:0" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "crwdns111460:0{0}crwdne111460:0" @@ -19077,7 +19149,7 @@ msgstr "crwdns98628:0crwdne98628:0" msgid "Please Update SMS Settings" msgstr "crwdns98630:0crwdne98630:0" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "crwdns98632:0crwdne98632:0" @@ -19129,7 +19201,7 @@ msgstr "crwdns98656:0crwdne98656:0" msgid "Please click Edit on the Workspace for best results" msgstr "crwdns148686:0crwdne148686:0" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "crwdns111126:0crwdne111126:0" @@ -19169,7 +19241,7 @@ msgstr "crwdns98674:0crwdne98674:0" msgid "Please duplicate this to make changes" msgstr "crwdns98676:0crwdne98676:0" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "crwdns98678:0crwdne98678:0" @@ -19285,6 +19357,10 @@ msgstr "crwdns98730:0crwdne98730:0" msgid "Please save the document before removing assignment" msgstr "crwdns98732:0crwdne98732:0" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "crwdns160716:0crwdne160716:0" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "crwdns98734:0crwdne98734:0" @@ -19301,7 +19377,7 @@ msgstr "crwdns98740:0crwdne98740:0" msgid "Please select Entity Type first" msgstr "crwdns98742:0crwdne98742:0" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "crwdns98744:0crwdne98744:0" @@ -19367,7 +19443,7 @@ msgstr "crwdns98770:0crwdne98770:0" msgid "Please set filters" msgstr "crwdns98772:0crwdne98772:0" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "crwdns98774:0crwdne98774:0" @@ -19383,11 +19459,11 @@ msgstr "crwdns98778:0crwdne98778:0" msgid "Please set the series to be used." msgstr "crwdns98780:0crwdne98780:0" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "crwdns98782:0crwdne98782:0" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "crwdns98784:0crwdne98784:0" @@ -19407,23 +19483,27 @@ msgstr "crwdns98790:0crwdne98790:0" msgid "Please specify a valid parent DocType for {0}" msgstr "crwdns98792:0{0}crwdne98792:0" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "crwdns148938:0crwdne148938:0" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "crwdns160718:0crwdne160718:0" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "crwdns148940:0crwdne148940:0" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "crwdns98794:0crwdne98794:0" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "crwdns148942:0crwdne148942:0" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "crwdns98796:0crwdne98796:0" @@ -19610,7 +19690,7 @@ msgstr "crwdns98880:0crwdne98880:0" msgid "Preparing Report" msgstr "crwdns98882:0crwdne98882:0" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "crwdns98884:0crwdne98884:0" @@ -19631,7 +19711,7 @@ msgstr "crwdns98886:0crwdne98886:0" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19685,6 +19765,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "crwdns111134:0crwdne111134:0" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "crwdns160720:0crwdne160720:0" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "crwdns98918:0crwdne98918:0" @@ -19734,8 +19818,8 @@ msgstr "crwdns112704:0{0}crwdne112704:0" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19848,7 +19932,7 @@ msgstr "crwdns130628:0crwdne130628:0" msgid "Print Hide If No Value" msgstr "crwdns130630:0crwdne130630:0" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "crwdns111422:0crwdne111422:0" @@ -19863,10 +19947,8 @@ msgid "Print Server" msgstr "crwdns130632:0crwdne130632:0" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20488,7 +20570,7 @@ msgstr "crwdns99270:0crwdne99270:0" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "crwdns99272:0{0}crwdne99272:0" @@ -20499,7 +20581,7 @@ msgstr "crwdns99272:0{0}crwdne99272:0" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20738,12 +20820,12 @@ msgstr "crwdns130772:0crwdne130772:0" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "crwdns99384:0crwdne99384:0" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "crwdns99386:0crwdne99386:0" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "crwdns99388:0crwdne99388:0" @@ -21056,7 +21138,7 @@ msgstr "crwdns130808:0crwdne130808:0" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "crwdns99566:0crwdne99566:0" @@ -21087,7 +21169,7 @@ msgstr "crwdns130810:0crwdne130810:0" msgid "Remind At" msgstr "crwdns99576:0crwdne99576:0" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "crwdns99580:0crwdne99580:0" @@ -21167,9 +21249,9 @@ msgid "Removed" msgstr "crwdns149130:0crwdne149130:0" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21197,7 +21279,7 @@ msgstr "crwdns143124:0crwdne143124:0" msgid "Reopen" msgstr "crwdns99610:0crwdne99610:0" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "crwdns99612:0crwdne99612:0" @@ -21447,7 +21529,7 @@ msgstr "crwdns99724:0crwdne99724:0" msgid "Report limit reached" msgstr "crwdns99726:0crwdne99726:0" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "crwdns99728:0crwdne99728:0" @@ -21641,7 +21723,7 @@ msgstr "crwdns99806:0crwdne99806:0" msgid "Reset OTP Secret" msgstr "crwdns99808:0crwdne99808:0" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21797,7 +21879,7 @@ msgid "Resume Sending" msgstr "crwdns99872:0crwdne99872:0" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22119,7 +22201,7 @@ msgstr "crwdns130936:0crwdne130936:0" msgid "Row Name" msgstr "crwdns130938:0crwdne130938:0" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "crwdns111180:0crwdne111180:0" @@ -22127,7 +22209,7 @@ msgstr "crwdns111180:0crwdne111180:0" msgid "Row Values Changed" msgstr "crwdns111182:0crwdne111182:0" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "crwdns111184:0{0}crwdne111184:0" @@ -22352,7 +22434,7 @@ msgid "Saturday" msgstr "crwdns130978:0crwdne130978:0" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22408,13 +22490,13 @@ msgstr "crwdns100188:0crwdne100188:0" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "crwdns100190:0crwdne100190:0" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "crwdns148326:0crwdne148326:0" @@ -22456,7 +22538,7 @@ msgstr "crwdns100204:0crwdne100204:0" msgid "Schedule" msgstr "crwdns100206:0crwdne100206:0" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "crwdns100210:0crwdne100210:0" @@ -22520,7 +22602,7 @@ msgstr "crwdns130990:0crwdne130990:0" msgid "Scheduler Event" msgstr "crwdns130992:0crwdne130992:0" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "crwdns100246:0crwdne100246:0" @@ -22533,7 +22615,7 @@ msgstr "crwdns130994:0crwdne130994:0" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "crwdns100248:0crwdne100248:0" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "crwdns100250:0crwdne100250:0" @@ -22834,8 +22916,8 @@ msgstr "crwdns100362:0crwdne100362:0" msgid "Select All" msgstr "crwdns111204:0crwdne111204:0" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22901,7 +22983,7 @@ msgstr "crwdns111206:0crwdne111206:0" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "crwdns100412:0crwdne100412:0" @@ -22975,7 +23057,7 @@ msgid "Select Page" msgstr "crwdns131036:0crwdne131036:0" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "crwdns100440:0crwdne100440:0" @@ -23189,7 +23271,7 @@ msgstr "crwdns100528:0crwdne100528:0" msgid "Send Print as PDF" msgstr "crwdns131074:0crwdne131074:0" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "crwdns100532:0crwdne100532:0" @@ -23248,11 +23330,11 @@ msgstr "crwdns154594:0crwdne154594:0" msgid "Send enquiries to this email address" msgstr "crwdns131094:0crwdne131094:0" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "crwdns100562:0crwdne100562:0" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "crwdns100564:0crwdne100564:0" @@ -23476,7 +23558,7 @@ msgstr "crwdns100680:0crwdne100680:0" msgid "Session Expiry (idle timeout)" msgstr "crwdns131134:0crwdne131134:0" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "crwdns100684:0{0}crwdne100684:0" @@ -23521,7 +23603,7 @@ msgstr "crwdns100694:0crwdne100694:0" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "crwdns100696:0crwdne100696:0" @@ -23893,7 +23975,7 @@ msgstr "crwdns100834:0crwdne100834:0" msgid "Show External Link Warning" msgstr "crwdns159980:0crwdne159980:0" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "crwdns100838:0crwdne100838:0" @@ -23945,7 +24027,7 @@ msgstr "crwdns131190:0crwdne131190:0" msgid "Show Line Breaks after Sections" msgstr "crwdns131192:0crwdne131192:0" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "crwdns148334:0crwdne148334:0" @@ -24020,7 +24102,7 @@ msgstr "crwdns131206:0crwdne131206:0" msgid "Show Social Login Key as Authorization Server" msgstr "crwdns156020:0crwdne156020:0" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "crwdns100886:0crwdne100886:0" @@ -24046,7 +24128,7 @@ msgstr "crwdns100894:0crwdne100894:0" msgid "Show Tour" msgstr "crwdns100896:0crwdne100896:0" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "crwdns111234:0crwdne111234:0" @@ -24126,8 +24208,8 @@ msgstr "crwdns131224:0crwdne131224:0" msgid "Show list" msgstr "crwdns149010:0crwdne149010:0" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "crwdns100920:0crwdne100920:0" @@ -24315,7 +24397,7 @@ msgstr "crwdns100986:0crwdne100986:0" msgid "Skipping column {0}" msgstr "crwdns100988:0{0}crwdne100988:0" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "crwdns100990:0{0}crwdnd100990:0{1}crwdne100990:0" @@ -24711,7 +24793,7 @@ msgstr "crwdns101134:0crwdne101134:0" msgid "Start Date Field" msgstr "crwdns131304:0crwdne131304:0" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "crwdns101144:0crwdne101144:0" @@ -24845,7 +24927,7 @@ msgstr "crwdns131324:0crwdne131324:0" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25012,9 +25094,9 @@ msgstr "crwdns131356:0crwdne131356:0" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "crwdns101284:0crwdne101284:0" @@ -25158,12 +25240,12 @@ msgstr "crwdns131368:0crwdne131368:0" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25223,11 +25305,11 @@ msgstr "crwdns101398:0{0}crwdnd101398:0{1}crwdne101398:0" msgid "Successfully Updated" msgstr "crwdns101402:0crwdne101402:0" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "crwdns101404:0{0}crwdne101404:0" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "crwdns111264:0{0}crwdnd111264:0{1}crwdne111264:0" @@ -25243,11 +25325,11 @@ msgstr "crwdns160510:0crwdne160510:0" msgid "Successfully updated translations" msgstr "crwdns101408:0crwdne101408:0" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "crwdns101410:0{0}crwdne101410:0" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "crwdns111266:0{0}crwdnd111266:0{1}crwdne111266:0" @@ -25382,7 +25464,7 @@ msgstr "crwdns101474:0crwdne101474:0" msgid "Syncing {0} of {1}" msgstr "crwdns101476:0{0}crwdnd101476:0{1}crwdne101476:0" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "crwdns101478:0crwdne101478:0" @@ -25693,7 +25775,7 @@ msgstr "crwdns131410:0crwdne131410:0" msgid "Table Trimmed" msgstr "crwdns112742:0crwdne112742:0" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "crwdns101536:0crwdne101536:0" @@ -25908,7 +25990,7 @@ msgstr "crwdns101628:0crwdne101628:0" msgid "The Auto Repeat for this document has been disabled." msgstr "crwdns101630:0crwdne101630:0" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "crwdns101632:0crwdne101632:0" @@ -25919,7 +26001,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "crwdns131442:0crwdne131442:0" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "crwdns101636:0{0}crwdne101636:0" @@ -26166,7 +26248,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "crwdns111278:0{0}crwdne111278:0" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "crwdns101732:0crwdne101732:0" @@ -26218,7 +26300,7 @@ msgstr "crwdns101750:0crwdne101750:0" msgid "There were errors while creating the document. Please try again." msgstr "crwdns101752:0crwdne101752:0" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "crwdns101754:0crwdne101754:0" @@ -26295,7 +26377,7 @@ msgstr "crwdns112746:0crwdne112746:0" msgid "This action is only allowed for {}" msgstr "crwdns101776:0crwdne101776:0" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "crwdns101778:0crwdne101778:0" @@ -26524,6 +26606,8 @@ msgstr "crwdns101864:0crwdne101864:0" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "crwdns101866:0crwdne101866:0" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "crwdns158736:0crwdne158736:0" @@ -27592,15 +27676,15 @@ msgstr "crwdns131662:0crwdne131662:0" msgid "Uncaught Exception" msgstr "crwdns151458:0crwdne151458:0" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "crwdns102348:0crwdne102348:0" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "crwdns102350:0crwdne102350:0" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "crwdns102352:0crwdne102352:0" @@ -27609,7 +27693,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "crwdns155596:0{0}crwdne155596:0" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "crwdns102354:0crwdne102354:0" @@ -27647,7 +27731,7 @@ msgstr "crwdns111298:0crwdne111298:0" msgid "Unknown Column: {0}" msgstr "crwdns102366:0{0}crwdne102366:0" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "crwdns102368:0crwdne102368:0" @@ -27875,7 +27959,7 @@ msgstr "crwdns102464:0crwdne102464:0" msgid "Updating naming series options" msgstr "crwdns102466:0crwdne102466:0" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "crwdns102468:0crwdne102468:0" @@ -28521,7 +28605,7 @@ msgstr "crwdns131778:0crwdne131778:0" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "crwdns102724:0crwdne102724:0" @@ -28599,7 +28683,7 @@ msgstr "crwdns102770:0crwdne102770:0" msgid "Value {0} missing for {1}" msgstr "crwdns102772:0{0}crwdnd102772:0{1}crwdne102772:0" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "crwdns102774:0{0}crwdne102774:0" @@ -28621,7 +28705,7 @@ msgstr "crwdns131792:0crwdne131792:0" msgid "Verification" msgstr "crwdns148342:0crwdne148342:0" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "crwdns143162:0crwdne143162:0" @@ -28679,7 +28763,7 @@ msgstr "crwdns131798:0crwdne131798:0" msgid "View All" msgstr "crwdns102800:0crwdne102800:0" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "crwdns102802:0crwdne102802:0" @@ -29645,9 +29729,9 @@ msgstr "crwdns131908:0crwdne131908:0" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29742,7 +29826,7 @@ msgstr "crwdns103270:0crwdne103270:0" msgid "You are not allowed to print this report" msgstr "crwdns103272:0crwdne103272:0" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "crwdns103274:0crwdne103274:0" @@ -29930,7 +30014,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "crwdns155352:0{0}crwdne155352:0" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "crwdns103348:0crwdne103348:0" @@ -29990,7 +30074,7 @@ msgstr "crwdns103380:0{0}crwdne103380:0" msgid "You have not entered a value. The field will be set to empty." msgstr "crwdns103382:0crwdne103382:0" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "crwdns103386:0crwdne103386:0" @@ -30099,7 +30183,7 @@ msgstr "crwdns151844:0{0}crwdnd151844:0{1}crwdne151844:0" msgid "You need write permission on {0} {1} to rename" msgstr "crwdns151846:0{0}crwdnd151846:0{1}crwdne151846:0" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "crwdns103424:0{0}crwdnd103424:0{1}crwdnd103424:0{2}crwdne103424:0" @@ -30273,7 +30357,7 @@ msgstr "crwdns111354:0crwdne111354:0" msgid "Your verification code is {0}" msgstr "crwdns103472:0{0}crwdne103472:0" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "crwdns103476:0crwdne103476:0" @@ -30316,7 +30400,7 @@ msgstr "crwdns131918:0crwdne131918:0" msgid "amend" msgstr "crwdns131920:0crwdne131920:0" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "crwdns103502:0crwdne103502:0" @@ -30603,7 +30687,7 @@ msgstr "crwdns131988:0crwdne131988:0" msgid "logged in" msgstr "crwdns103752:0crwdne103752:0" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "crwdns111362:0crwdne111362:0" @@ -30941,7 +31025,7 @@ msgstr "crwdns104008:0crwdne104008:0" msgid "via Google Meet" msgstr "crwdns132068:0crwdne132068:0" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "crwdns104012:0crwdne104012:0" @@ -31150,7 +31234,7 @@ msgstr "crwdns104100:0{0}crwdne104100:0" msgid "{0} already unsubscribed for {1} {2}" msgstr "crwdns104102:0{0}crwdnd104102:0{1}crwdnd104102:0{2}crwdne104102:0" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "crwdns104104:0{0}crwdnd104104:0{1}crwdne104104:0" @@ -31175,7 +31259,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "crwdns104126:0{0}crwdnd104126:0{1}crwdne104126:0" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "crwdns104508:0{0}crwdnd104508:0{1}crwdne104508:0" @@ -31488,7 +31572,7 @@ msgstr "crwdns104280:0{0}crwdne104280:0" msgid "{0} months ago" msgstr "crwdns104282:0{0}crwdne104282:0" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "crwdns104284:0{0}crwdnd104284:0{1}crwdne104284:0" @@ -31545,12 +31629,12 @@ msgstr "crwdns104300:0{0}crwdnd104300:0{1}crwdne104300:0" msgid "{0} of {1} ({2} rows with children)" msgstr "crwdns104302:0{0}crwdnd104302:0{1}crwdnd104302:0{2}crwdne104302:0" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "crwdns104510:0{0}crwdne104510:0" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "crwdns104306:0{0}crwdnd104306:0{1}crwdne104306:0" @@ -31595,7 +31679,7 @@ msgstr "crwdns159006:0{0}crwdnd159006:0{1}crwdnd159006:0{2}crwdne159006:0" msgid "{0} role does not have permission on any doctype" msgstr "crwdns111370:0{0}crwdne111370:0" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "crwdns158750:0{0}crwdnd158750:0#{1}crwdne158750:0" @@ -31874,11 +31958,11 @@ msgstr "crwdns104448:0{{{0}}}crwdnd104448:0{{field_name}}crwdne104448:0" msgid "{} Complete" msgstr "crwdns104450:0crwdne104450:0" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "crwdns104452:0crwdne104452:0" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "crwdns104454:0crwdne104454:0" diff --git a/frappe/locale/es.po b/frappe/locale/es.po index a706f33d2c..a3fa778abc 100644 --- a/frappe/locale/es.po +++ b/frappe/locale/es.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:36\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Spanish\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "1 evento de Google Calendar sincronizado." msgid "1 Report" msgstr "1 Informe" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "Hace 1 día" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 hora" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "Hace una hora" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "Hace un minuto" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "Hace 1 mes" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "Hace 1 segundo" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "Hace 1 semana" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "Hace 1 año" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "Hace 2 horas" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "Hace 2 meses" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "Hace 2 semanas" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "Hace 2 años" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "Hace 3 minutos" @@ -232,7 +232,7 @@ msgstr "4 horas" msgid "5 Records" msgstr "5 registros" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "Hace 5 días" @@ -613,7 +613,7 @@ msgstr "

Para interactuar con el HTML anterior, deberá utilizar `root_element "some_class_element.textContent = \"Nuevo contenido\";\n" "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "

Se ha restablecido su clave OTP en {0}. Si no realizó este restablecimiento ni lo solicitó, comuníquese con su administrador del sistema de inmediato.

" @@ -1036,7 +1036,7 @@ msgstr "Acción / Ruta" msgid "Action Complete" msgstr "Acción completada" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Acción Fallida" @@ -1173,7 +1173,7 @@ msgstr "Agregar / Actualizar" msgid "Add A New Rule" msgstr "Añadir una nueva regla" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Añadir un adjunto" @@ -1278,7 +1278,7 @@ msgstr "Añadir Fila" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Agregar Firma" @@ -1306,7 +1306,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "Añadir etiquetas" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "Añadir plantilla" @@ -1713,6 +1713,7 @@ msgstr "Alinear Valor" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1727,7 +1728,9 @@ msgstr "Alinear Valor" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2330,7 +2333,7 @@ msgstr "Nombre de la Aplicación" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "App no encontrada para el módulo: {0}" @@ -2492,7 +2495,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "¿Está seguro de que desea borrar las asignaciones?" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "¿Seguro que quieres eliminar todas las filas?" @@ -2528,7 +2531,7 @@ msgstr "¿Realmente quieres descartar los cambios?" msgid "Are you sure you want to generate a new report?" msgstr "¿Está seguro de que desea generar un nuevo informe?" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "¿Seguro que quieres fusionar {0} con {1}?" @@ -2774,10 +2777,15 @@ msgstr "Al menos un campo de Tipo de Documento Principal es obligatorio" msgid "Attach" msgstr "Adjuntar" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Adjuntar Documento para Imprimir" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2860,6 +2868,11 @@ msgstr "Enlace adjunto" msgid "Attachment Removed" msgstr "Adjunto Eliminado" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -3037,7 +3050,7 @@ msgstr "Repetición automática del día {0} {1} ha sido repetida." msgid "Auto Repeat Document Creation Failed" msgstr "Repetición automática de creación de documento fallida" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "Programación de repetición automática" @@ -3271,7 +3284,7 @@ msgstr "B9" msgid "BCC" msgstr "CCO" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "CCO" @@ -3289,7 +3302,7 @@ msgstr "Volver al Escritorio" msgid "Back to Home" msgstr "De vuelta a casa" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "Regresar para iniciar sesión" @@ -3730,7 +3743,7 @@ msgstr "Eliminar a granel" msgid "Bulk Edit" msgstr "Edición masiva" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "Editar en masa {0}" @@ -3853,7 +3866,7 @@ msgstr "CANCELADO" msgid "CC" msgstr "CC" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "CC" @@ -4048,6 +4061,14 @@ msgstr "Cancelar todo" msgid "Cancel All Documents" msgstr "Cancelar todos los documentos" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4085,11 +4106,11 @@ msgstr "Cancelar documentos" msgid "Cancelling {0}" msgstr "Cancelando {0}" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "No se puede Descargar el Informe debido a permisos insuficientes" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "No se pueden recuperar valores" @@ -4192,7 +4213,7 @@ msgstr "No se puede eliminar {0}, ya que contiene sub-grupos" msgid "Cannot edit Standard Dashboards" msgstr "No se pueden editar los Tableros estándar" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "No se puede editar la notificación estándar. Para editar, deshabilítelo y duplíquelo" @@ -4217,7 +4238,7 @@ msgstr "No se pueden editar filtros para gráficos estándar" msgid "Cannot edit filters for standard number cards" msgstr "No se pueden editar los filtros de los Widget numéricos estándar" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "No se pueden editar los campos estándar" @@ -4237,7 +4258,7 @@ msgstr "No se pueden obtener los contenidos de archivo de una carpeta" msgid "Cannot have multiple printers mapped to a single print format." msgstr "No se pueden asignar varias impresoras a un único formato de impresión." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4265,7 +4286,7 @@ msgstr "No se puede eliminar el campo ID" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "No se puede establecer el permiso 'Informar' si está configurado el permiso 'Solo si es creador'" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "No se puede establecer la notificación en el tipo de documento {0}" @@ -4611,11 +4632,11 @@ msgstr "Ciudad" msgid "Clear" msgstr "Quitar" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "Borrar y Agregar Plantilla" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "Borrar y Agregar plantilla" @@ -4649,7 +4670,7 @@ msgstr "Borrar registros después (días)" msgid "Clear User Permissions" msgstr "Borrar permisos de usuario" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "Borre el mensaje de correo electrónico y añada la plantilla" @@ -4702,7 +4723,7 @@ msgstr "Haga clic en {0} para generar el token de actualización." #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "Haga clic en la tabla para editar" @@ -4713,7 +4734,7 @@ msgstr "Haga clic para establecer Filtros Dinámicos" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "Clic para establecer filtros" @@ -4890,7 +4911,7 @@ msgstr "Método de desafío de código" msgid "Collapse" msgstr "Colapso" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Colapso" @@ -5014,7 +5035,7 @@ msgstr "Ancho de Columna" msgid "Column width cannot be zero." msgstr "El ancho de la columna no puede ser cero." -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "Columna {0}" @@ -5257,7 +5278,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "Condición" @@ -5596,7 +5617,7 @@ msgstr "Copiar código incrustado" msgid "Copy error to clipboard" msgstr "Copiar error al Portapapeles" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "Copiar al Portapapeles" @@ -6207,13 +6228,13 @@ msgstr "Personalizaciones descartadas" msgid "Customizations Reset" msgstr "Restablecimiento de Personalizaciones" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "Personalizaciones para {0} exportadas a:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Personalización" @@ -6866,7 +6887,7 @@ msgstr "Retrasado" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7219,7 +7240,7 @@ msgstr "Ícono de Escritorio ya existe" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "Detalles" @@ -7375,7 +7396,7 @@ msgstr "Deshabilitado" msgid "Disabled Auto Reply" msgstr "Respuesta automática deshabilitada" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7464,7 +7485,7 @@ msgstr "No crear nuevo usuario" msgid "Do not create new user if user with email does not exist in the system" msgstr "No crear nuevo usuario si el usuario con correo electrónico no existe en el sistema" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "No edite los encabezados que están preestablecidos en la plantilla" @@ -7629,7 +7650,7 @@ msgstr "DocType es una Tabla/ Formulario en la aplicación." msgid "DocType must be Submittable for the selected Doc Event" msgstr "El tipo de documento se debe poder Validar para el evento de Documento Seleccionado" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "DocType debe ser una cadena" @@ -7650,11 +7671,11 @@ msgstr "El flujo de trabajo será aplicable en el documento seleccionado." msgid "DocType required" msgstr "Doctype Requerido" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "DocType {0} no existe." -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "DocType {} no encontrado" @@ -7765,7 +7786,7 @@ msgstr "Documento Links Row #{0}: El nombre del campo de tabla es obligatorio p msgid "Document Name" msgstr "Nombre de Documento" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "Nombre del documento debe ser una cadena" @@ -7941,7 +7962,7 @@ msgid "Document Types and Permissions" msgstr "Tipos de documentos y permisos" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "Documento desbloqueado" @@ -7969,11 +7990,11 @@ msgstr "Este documento es solo editable por usuarios de ese rol" msgid "Document not Relinked" msgstr "Documento no re-vinculado" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "Documento renombrado de {0} a {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "El cambio de nombre del documento de {0} a {1} está en cola" @@ -7989,7 +8010,7 @@ msgstr "Documento {0} ya restaurado" msgid "Document {0} has been set to state {1} by {2}" msgstr "El documento {0} se ha configurado en estado {1} por {2}" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "El documento {0} {1} no existe" @@ -8216,7 +8237,7 @@ msgid "Due Date Based On" msgstr "Fecha de Vencimiento basada en" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Duplicar" @@ -8331,7 +8352,7 @@ msgstr "ESC" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8380,7 +8401,7 @@ msgstr "Editar bloque personalizado" msgid "Edit Custom HTML" msgstr "Editar HTML personalizado" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "Editar DocType" @@ -8565,7 +8586,7 @@ msgstr "Selector de elementos" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8624,7 +8645,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "Dirección de correo electrónico" @@ -8774,7 +8795,7 @@ msgstr "Opción de Sincronizar Correo Electrónico" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "Plantilla de Correo Electrónico" @@ -8806,7 +8827,7 @@ msgstr "El correo electrónico se ha movido a la papelera" msgid "Email is mandatory to create User Email" msgstr "El correo electrónico es obligatorio para crear el correo electrónico del usuario." -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "Correo electrónico no enviado a {0} (dado de baja / desactivado)" @@ -9003,7 +9024,7 @@ msgstr "Habilitar vistas de página de seguimiento" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "Habilitar Autenticación de dos Factores" @@ -9177,7 +9198,7 @@ msgstr "Ingrese el ID del cliente y el secreto del cliente en la configuración msgid "Enter Code displayed in OTP App." msgstr "Ingrese el código que se muestra en la aplicación OTP." -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "Ingrese Destinatario(s) de Correo Electrónico" @@ -9315,9 +9336,9 @@ msgstr "Error en el script del cliente." msgid "Error in Header/Footer Script" msgstr "Error en el script de encabezado/pie de página" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "Error en la Notificación" @@ -9337,7 +9358,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "Error al conectarte a la cuenta de correo electrónico {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "Error al evaluar Notificación {0}. Por favor arregla tu plantilla." @@ -9519,7 +9540,7 @@ msgstr "Rol existente" msgid "Expand" msgstr "Expandir" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Expandir" @@ -9616,7 +9637,7 @@ msgstr "Exportar Personalizaciones" msgid "Export Data" msgstr "Exportar Datos" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "Exportar filas con errores" @@ -9626,7 +9647,7 @@ msgstr "Exportar filas con errores" msgid "Export From" msgstr "Exportar desde" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "Exportar registro de importación" @@ -9802,7 +9823,7 @@ msgstr "Error al eliminar documentos {0} : {1}" msgid "Failed to enable scheduler: {0}" msgstr "No se pudo habilitar el Programador: {0}" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "Fallo al evaluar las condiciones: {}" @@ -9839,11 +9860,11 @@ msgstr "Fallo al importar doctype virtual {}, ¿está presente el archivo contro msgid "Failed to optimize image: {0}" msgstr "Fallo en la optimización de la imagen: {0}" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "Fallo al renderizar el mensaje: {}" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "Fallo al procesar el asunto: {}" @@ -9873,7 +9894,7 @@ msgstr "Fallo al llamar a la API {0}" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "Trabajos programados fallidos (últimos 7 días)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "Fracaso" @@ -9933,6 +9954,10 @@ msgstr "Obtener en Guardar si está vacío" msgid "Fetching default Global Search documents." msgstr "Obteniendo documentos predeterminados de Global Search." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -10037,7 +10062,7 @@ msgstr "" msgid "Field {0} not found." msgstr "Campo {0} no encontrado." -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "El campo {0} del documento {1} no es ni un campo de número de móvil ni un enlace de cliente o usuario" @@ -10270,7 +10295,7 @@ msgstr "Archivos" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "Filtrar" @@ -10530,7 +10555,7 @@ msgid "Folio" msgstr "Folio" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "Seguir" @@ -10538,7 +10563,7 @@ msgstr "Seguir" msgid "Followed by" msgstr "Seguido por" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "Los siguientes filtros de informe tienen valores faltantes:" @@ -11003,11 +11028,16 @@ msgstr "Viernes" msgid "From" msgstr "Desde" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "Desde" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -11023,6 +11053,11 @@ msgstr "Desde campo de fecha" msgid "From Document Type" msgstr "Desde tipo de documento" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11184,7 +11219,7 @@ msgstr "Geolocalización" msgid "Geolocation Settings" msgstr "Ajustes de geolocalización" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "Recibe alertas para Hoy" @@ -11276,7 +11311,7 @@ msgstr "Atajos globales" msgid "Global Unsubscribe" msgstr "Darse de baja globalmente" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "Buscar" @@ -11324,7 +11359,7 @@ msgstr "Ir a esta dirección después de completar el formulario." msgid "Go to {0}" msgstr "Ir a {0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -12021,7 +12056,7 @@ msgstr "Ocultar Fines de Semana" msgid "Hide descendant records of For Value." msgstr "Ocultar registros descendientes de Por valor." -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "Ocultar detalles" @@ -12704,11 +12739,11 @@ msgstr "La plantilla de importación debe ser de tipo .csv, .xlsx o .xls" msgid "Import template should contain a Header and atleast one row." msgstr "La plantilla de importación debe contener un encabezado y al menos una fila." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "Se ha agotado el tiempo de importación, por favor vuelva a intentarlo." -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "La importación de {0} no está permitida." @@ -13211,7 +13246,7 @@ msgstr "Inválido" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "Expresión \"depende_on\" no válida" @@ -13305,6 +13340,8 @@ msgstr "Servidor de correo no válido. Por favor verifique la configuración y v msgid "Invalid Naming Series: {}" msgstr "Serie de nombres no válida: {}" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13319,7 +13356,7 @@ msgstr "Opción inválida" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "Servidor o puerto de correo saliente no válido: {0}" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "Formato de salida no válido" @@ -13441,7 +13478,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "Nombre de campo inválido {0}" @@ -13976,6 +14013,7 @@ msgstr "Nombre del Trabajo" msgid "Job Status" msgstr "Estado del Trabajo" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "Trabajo detenido exitosamente" @@ -13984,16 +14022,22 @@ msgstr "Trabajo detenido exitosamente" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "El trabajo no se está ejecutando." +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "Únase a la videoconferencia con {0}" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "Saltar al campo" @@ -15045,7 +15089,7 @@ msgstr "Cargando" msgid "Loading Filters..." msgstr "Cargando filtros..." -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "Cargando archivo de importación..." @@ -15180,7 +15224,7 @@ msgstr "Código de verificación de inicio de sesión de {}" msgid "Login and view in Browser" msgstr "Iniciar Sesión y ver en el Navegador" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "Es necesario iniciar sesión para ver la vista de lista del formulario web. Habilite {0} para ver la configuración de la lista" @@ -15217,7 +15261,7 @@ msgstr "Iniciar sesión en {0}" msgid "Login token required" msgstr "Se requiere token de inicio de sesión" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "Iniciar sesión con enlace de correo" @@ -15687,7 +15731,7 @@ msgstr "Medio" msgid "Meeting" msgstr "Reunión" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "¿Cumple las condiciones?" @@ -15723,7 +15767,7 @@ msgstr "Menciones" msgid "Menu" msgstr "Menú" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Combinar con existente" @@ -15748,16 +15792,16 @@ msgstr "La fusión sólo es posible de Grupo -a- Grupo o de Nodo -a- Nodo en la #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15794,7 +15838,7 @@ msgstr "Mensaje enviado" msgid "Message Type" msgstr "Tipo de mensaje" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "Mensaje marcado" @@ -15802,7 +15846,7 @@ msgstr "Mensaje marcado" msgid "Message from server: {0}" msgstr "Mensaje del servidor: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "Mensaje no Configurado" @@ -15988,7 +16032,7 @@ msgstr "Campo faltante" msgid "Missing Fields" msgstr "Campos Faltantes" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "Faltan filtros requeridos" @@ -16123,7 +16167,7 @@ msgstr "Perfil del Módulo" msgid "Module Profile Name" msgstr "Nombre de Perfil del Módulo" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "Restablecimiento del progreso de módulo de incorporación" @@ -16131,7 +16175,7 @@ msgstr "Restablecimiento del progreso de módulo de incorporación" msgid "Module to Export" msgstr "Módulo para Exportar" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "Módulo {} no encontrado" @@ -16647,7 +16691,7 @@ msgstr "Nuevo mensaje desde la página de contacto del sitio web" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "Nuevo Nombre" @@ -16749,10 +16793,10 @@ msgid "New value to be set" msgstr "Nuevo valor a establecer" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16837,6 +16881,10 @@ msgstr "Plantilla de Correo Electrónico de próxima acción" msgid "Next Actions HTML" msgstr "Acciones Siguientes HTML" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "Siguiente Documento" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16904,8 +16952,8 @@ msgstr "Siguiente al hacer clic" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16941,7 +16989,7 @@ msgid "No Copy" msgstr "No copiar" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17081,7 +17129,7 @@ msgstr "No hay próximos eventos" msgid "No address added yet." msgstr "Ninguna dirección añadida aún." -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "No hay alertas para hoy" @@ -17121,6 +17169,10 @@ msgstr "Ningún contacto agregado todavía." msgid "No contacts linked to document" msgstr "No hay contactos vinculados al documento" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "No hay datos para exportar" @@ -17141,7 +17193,7 @@ msgstr "No hay una cuenta de correo electrónico asociada con el usuario. Por fa msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "No hay registros fallidos" @@ -17204,7 +17256,7 @@ msgstr "No se de filas (máx 500)" msgid "No of Sent SMS" msgstr "Nº de SMS enviados" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "Sin permiso para {0}" @@ -17241,7 +17293,7 @@ msgstr "No se exportarán registros" msgid "No rows" msgstr "Sin filas" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "Sin asunto" @@ -17382,8 +17434,8 @@ msgstr "No permitido leer {0}" msgid "Not Published" msgstr "No publicado" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17436,7 +17488,7 @@ msgstr "No activo" msgid "Not allowed for {0}: {1}" msgstr "No permitido para {0}: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "No se permite adjuntar {0} documento, habilite Permitir impresión para {0} en Configuración de impresión." @@ -17468,7 +17520,7 @@ msgstr "No se encuentra en modo desarrollador" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "No se encuentra en modo desarrollador! Debe establecerlo en el archivo site_config.json o crear un 'DocType' personalizado." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17591,15 +17643,15 @@ msgstr "Notificación de documento suscrito" msgid "Notification sent to" msgstr "Notificación enviada a" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "Notificación: el cliente {0} no tiene establecido un número de móvil" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "Notificación: el documento {0} no tiene establecido el número {1} (campo: {2})" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "Notificación: el usuario {0} no tiene número de móvil establecido" @@ -17713,7 +17765,7 @@ msgstr "Número de consultas" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "El número de campos adjuntos es superior a {}, límite actualizado a {}." -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "El número de copias de seguridad debe ser superior a cero." @@ -17822,14 +17874,30 @@ msgstr "Aplicación OTP" msgid "OTP Issuer Name" msgstr "Nombre del Emisor de OTP" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "Restablecer secreto OTP - {0}" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "OTP Secret ha sido restablecido. Re-registro será necesario en el próximo inicio de sesión." +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "La configuración de OTP mediante la aplicación OTP no se completó. Por favor contacte al Administrador." @@ -17945,7 +18013,7 @@ msgstr "Con fecha de o después del" msgid "On or Before" msgstr "Con fecha de o antes del" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "El {0}, {1} escribió:" @@ -18005,7 +18073,7 @@ msgstr "Código de registro de contraseña de un solo uso (OTP) de {}" msgid "One of" msgstr "Uno de" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "Sólo 200 inserciones se permiten en una petición" @@ -18043,7 +18111,7 @@ msgstr "Sólo enviar registros actualizados en las últimas X horas" msgid "Only Workspace Manager can edit public workspaces" msgstr "Solo el Administrador del Área de Trabajo puede editar Áreas de Trabajo públicas" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "Solo se permite exportar personalizaciones en modo desarrollador" @@ -18223,7 +18291,7 @@ msgstr "Abierto" msgid "Operation" msgstr "Operación" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "El Operador debe ser uno de {0}" @@ -18725,7 +18793,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "Campo padre no especificado en {0}: {1}" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "Parenttype, Parent y Parentfield son necesarios para insertar un registro hijo" @@ -18897,6 +18965,10 @@ msgstr "Ruta al certificado del servidor" msgid "Path to private Key File" msgstr "Ruta al archivo de clave privada" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "Ruta {0} no es una ruta válida" @@ -19221,7 +19293,7 @@ msgstr "Por favor, establezca el gráfico" msgid "Please Update SMS Settings" msgstr "Por favor, actualizar la configuración SMS" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "Por favor agregue un asunto a su correo electrónico" @@ -19273,7 +19345,7 @@ msgstr "Compruebe su dirección de correo electrónico registrada para obtener i msgid "Please click Edit on the Workspace for best results" msgstr "Haga clic en Editar en el espacio de trabajo para obtener mejores resultados" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "Haga clic en \"Exportar filas con errores\", corrija los errores y vuelva a importar." @@ -19313,7 +19385,7 @@ msgstr "Por favor, no cambie los encabezados de la plantilla." msgid "Please duplicate this to make changes" msgstr "Por favor, duplicar esto para realizar los cambios" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "Por favor, habilite al menos una Clave de Inicio de Sesión Social o LDAP o Inicio de Sesión con Enlace de Correo Electrónico antes de deshabilitar el inicio de sesión basado en nombre de usuario/contraseña." @@ -19429,6 +19501,10 @@ msgstr "Por favor, guarde el documento antes de la asignación" msgid "Please save the document before removing assignment" msgstr "Por favor, guarde el documento antes de remover la asignación" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "Por favor, guarde el informe primero" @@ -19445,7 +19521,7 @@ msgstr "Por favor, seleccione 'DocType' primero" msgid "Please select Entity Type first" msgstr "Por favor, seleccione Tipo de entidad primero" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "Seleccione el valor mínimo de la contraseña" @@ -19511,7 +19587,7 @@ msgstr "Configure una asignación de impresora para este formato de impresión e msgid "Please set filters" msgstr "Por favor, defina los filtros" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "Defina el valor de los filtros en la tabla Filtro de informes." @@ -19527,11 +19603,11 @@ msgstr "Primero configure los siguientes documentos en este Panel como estándar msgid "Please set the series to be used." msgstr "Por favor, configure la serie que se utilizará." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "Configure SMS antes de configurarlo como un método de autenticación, a través de Configuración de SMS" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "Configura un mensaje primero" @@ -19551,23 +19627,27 @@ msgstr "Por favor, especifique" msgid "Please specify a valid parent DocType for {0}" msgstr "Por favor, especifique un DocType padre válido para {0}" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "Especifique al menos 10 minutos debido a la cadencia de activación del programador." -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "Especifique el desfase de minutos" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "Por favor especifique la fecha que debe ser verificada" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "Por favor especifique la fecha que debe ser verificada" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "Por favor, especifique qué campo debe ser revisado" @@ -19754,7 +19834,7 @@ msgstr "Error en la representación del informe preparado" msgid "Preparing Report" msgstr "Preparando Informe" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "Anexar la plantilla al mensaje de correo electrónico" @@ -19775,7 +19855,7 @@ msgstr "Presione Enter para guardar" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19829,6 +19909,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Anterior" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "Documento anterior" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "Envío anterior" @@ -19878,8 +19962,8 @@ msgstr "La clave primaria del doctype {0} no puede modificarse, ya que existen v #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19992,7 +20076,7 @@ msgstr "Ocultar en impresión" msgid "Print Hide If No Value" msgstr "Impresión Oculta si no hay Valor" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "Lenguaje de impresión" @@ -20007,10 +20091,8 @@ msgid "Print Server" msgstr "Servidor de Impresión" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20632,7 +20714,7 @@ msgstr "Re:" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "Re: {0}" @@ -20643,7 +20725,7 @@ msgstr "Re: {0}" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20882,12 +20964,12 @@ msgstr "Redirección" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "El servidor de caché Redis no esta funcionando. Por favor, póngase en contacto con el administrador / soporte técnico" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "Rehacer" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "Rehacer última acción" @@ -21200,7 +21282,7 @@ msgstr "Re-enlazado" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Recargar" @@ -21231,7 +21313,7 @@ msgstr "Recordar el último valor seleccionado" msgid "Remind At" msgstr "Recordar el" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "Recuérdemelo" @@ -21311,9 +21393,9 @@ msgid "Removed" msgstr "Eliminado" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21341,7 +21423,7 @@ msgstr "Renderice las etiquetas a la izquierda y los valores a la derecha en est msgid "Reopen" msgstr "Reabrir" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "Repetir" @@ -21591,7 +21673,7 @@ msgstr "Informe iniciado, haga clic para ver el estado" msgid "Report limit reached" msgstr "Límite de reportes alcanzado" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "Se agotó el tiempo de espera para reportar." @@ -21785,7 +21867,7 @@ msgstr "Restablecer Disposición" msgid "Reset OTP Secret" msgstr "Restablecer OTP Secret" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21941,7 +22023,7 @@ msgid "Resume Sending" msgstr "Reanudar el Envío" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22263,7 +22345,7 @@ msgstr "Índice de Fila" msgid "Row Name" msgstr "Nombre de fila" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "Número de fila" @@ -22271,7 +22353,7 @@ msgstr "Número de fila" msgid "Row Values Changed" msgstr "Valores de la Fila Cambiaron" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "Fila {0}" @@ -22496,7 +22578,7 @@ msgid "Saturday" msgstr "Sábado" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22552,13 +22634,13 @@ msgstr "Guarde el documento." #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "Guardado" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "Filtros Guardados" @@ -22600,7 +22682,7 @@ msgstr "Escanee el código QR e ingrese el código resultante que se muestra." msgid "Schedule" msgstr "Calendario" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "Programar envío el" @@ -22664,7 +22746,7 @@ msgstr "Programador" msgid "Scheduler Event" msgstr "Evento del programador" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "Programador inactivo" @@ -22677,7 +22759,7 @@ msgstr "Estado del planificador" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "El programador no puede ser reactivado cuando el modo de mantenimiento está activo." -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "El programador está inactivo. No se pueden importar datos." @@ -22978,8 +23060,8 @@ msgstr "Seleccionar" msgid "Select All" msgstr "Seleccionar Todo" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -23045,7 +23127,7 @@ msgstr "Seleccione Tipos de documentos para establecer qué Permisos de usuario #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "Seleccionar campo" @@ -23119,7 +23201,7 @@ msgid "Select Page" msgstr "Seleccionar Página" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Seleccionar formato de impresión" @@ -23333,7 +23415,7 @@ msgstr "Enviar ahora" msgid "Send Print as PDF" msgstr "Enviar Impresión como 'PDF'" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "Enviar confirmación de lectura" @@ -23392,11 +23474,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "Enviar solicitudes a esta dirección de correo electrónico" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "Enviar enlace de inicio de sesión" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "Enviarme una copia" @@ -23620,7 +23702,7 @@ msgstr "Sesión expirada" msgid "Session Expiry (idle timeout)" msgstr "Expiración de la sesión (tiempo de inactivad)" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "El vencimiento de sesión debe estar en formato {0}" @@ -23665,7 +23747,7 @@ msgstr "Establecer filtros dinámicos" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "Establecer filtros" @@ -24061,7 +24143,7 @@ msgstr "Mostrar error" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "Mostrar nombre de campo (clic para copiar en el portapapeles)" @@ -24113,7 +24195,7 @@ msgstr "Mostrar selector de idioma" msgid "Show Line Breaks after Sections" msgstr "Mostrar saltos de línea después de las Secciones" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "Mostrar enlaces" @@ -24188,7 +24270,7 @@ msgstr "Mostrar barra lateral" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "Mostrar etiquetas" @@ -24214,7 +24296,7 @@ msgstr "Mostrar totales" msgid "Show Tour" msgstr "Mostrar Tours" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "Mostrar Traceback" @@ -24294,8 +24376,8 @@ msgstr "Mostrar enlace al documento" msgid "Show list" msgstr "Mostrar lista" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "Mostrar más detalles" @@ -24483,7 +24565,7 @@ msgstr "Saltar columna sin título" msgid "Skipping column {0}" msgstr "Saltar columna {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "Omitiendo sincronización de fixtures para doctype {0} del archivo {1}" @@ -24879,7 +24961,7 @@ msgstr "Fecha de inicio" msgid "Start Date Field" msgstr "Campo de Fecha de Inicio" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "Comience a Importar" @@ -25013,7 +25095,7 @@ msgstr "Intervalo de tiempo de estadísticas" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25180,9 +25262,9 @@ msgstr "Sub-dominio" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Asunto" @@ -25326,12 +25408,12 @@ msgstr "Subtitular" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25391,11 +25473,11 @@ msgstr "Terminado: {0} a {1}" msgid "Successfully Updated" msgstr "Actualizado exitosamente" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr " {0} Importado con éxito" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "Importado con éxito {0} de {1} registros." @@ -25411,11 +25493,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "Traducciones actualizadas con éxito" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "Actualizado exitosamente {0}" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "Actualizado con éxito {0} de {1} registros." @@ -25550,7 +25632,7 @@ msgstr "Sincronización" msgid "Syncing {0} of {1}" msgstr "Sincronizando {0} de {1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "Error de sintaxis" @@ -25861,7 +25943,7 @@ msgstr "Tabla Multi-selección" msgid "Table Trimmed" msgstr "Tabla recortada" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "Tabla actualiza" @@ -26078,7 +26160,7 @@ msgstr "Gracias" msgid "The Auto Repeat for this document has been disabled." msgstr "La repetición automática para este documento ha sido deshabilitada." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "El formato CSV es sensible a mayúsculas y minúsculas" @@ -26091,7 +26173,7 @@ msgstr "El ID de cliente obtenido de la Consola de Google Cloud en
" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "La Condición '{0}' no es válida" @@ -26342,7 +26424,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "Ya hay {0} con los mismos filtros en la cola:" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "Sólo puede haber 9 campos de salto de página en un formulario web" @@ -26394,7 +26476,7 @@ msgstr "Hubo errores" msgid "There were errors while creating the document. Please try again." msgstr "Hubo errores al crear el documento. Inténtalo de nuevo." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "Ha ocurrido un error al enviar el correo electrónico. Por favor, inténtelo de nuevo." @@ -26471,7 +26553,7 @@ msgstr "Esta acción es irreversible. ¿Desea continuar?" msgid "This action is only allowed for {}" msgstr "Esta acción solo está permitida para {}" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "Esto no se puede deshacer" @@ -26704,6 +26786,8 @@ msgstr "Esto eliminará permanentemente sus datos." msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "Esto restablecerá este tour y lo mostrará a todos los usuarios. ¿Está seguro?" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Esto terminará el trabajo inmediatamente y podría ser peligroso, ¿está seguro?" @@ -27780,15 +27864,15 @@ msgstr "Desasignar condición" msgid "Uncaught Exception" msgstr "Excepción no controlada" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "Sin alterar" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "Deshacer" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "Deshacer última acción" @@ -27797,7 +27881,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "Dejar de seguir" @@ -27835,7 +27919,7 @@ msgstr "Desconocido" msgid "Unknown Column: {0}" msgstr "Columna desconocida: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "Método de Redondeo desconocido: {}" @@ -28063,7 +28147,7 @@ msgstr "Actualizando configuración global" msgid "Updating naming series options" msgstr "Actualizando opciones de la serie de nombres" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "Actualizando campos relacionados..." @@ -28709,7 +28793,7 @@ msgstr "Validez" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Valor" @@ -28787,7 +28871,7 @@ msgstr "Valor demasiado grande" msgid "Value {0} missing for {1}" msgstr "Falta el valor {0} para {1}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "El valor {0} debe tener un formato de duración válido: dhms" @@ -28809,7 +28893,7 @@ msgstr "Verdana" msgid "Verification" msgstr "Verificación" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "Código de Verificación" @@ -28867,7 +28951,7 @@ msgstr "Ver" msgid "View All" msgstr "Ver Todo" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "Ver registros de auditoría" @@ -29833,9 +29917,9 @@ msgstr "Amarillo" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29930,7 +30014,7 @@ msgstr "No está permitido exportar {} doctype" msgid "You are not allowed to print this report" msgstr "Usted no está autorizado a imprimir este informe" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "No tiene permisos para enviar correos electrónicos relacionados con este documento" @@ -30118,7 +30202,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "No tienes permisos de lectura o selección para {}" @@ -30178,7 +30262,7 @@ msgstr "Ha alcanzado el límite de tamaño de fila en la tabla de la base de dat msgid "You have not entered a value. The field will be set to empty." msgstr "No has introducido ningún valor. El campo quedará vacío." -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "Tienes que habilitar Auth de Dos Factores en Configuración del Sistema." @@ -30287,7 +30371,7 @@ msgstr "Necesita permiso de escritura en {0} {1} para fusionar" msgid "You need write permission on {0} {1} to rename" msgstr "Necesita permiso de escritura en {0} {1} para renombrar" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "Necesita {0} permiso para recuperar valores de {1} {2}" @@ -30461,7 +30545,7 @@ msgstr "Su sitio está en mantenimiento o se está actualizando." msgid "Your verification code is {0}" msgstr "Su código de verificación es {0}" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "Cero" @@ -30504,7 +30588,7 @@ msgstr "after_insert" msgid "amend" msgstr "modificar" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "y" @@ -30791,7 +30875,7 @@ msgstr "lista" msgid "logged in" msgstr "conectado" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "login_required" @@ -31129,7 +31213,7 @@ msgstr "a través de la importación de datos" msgid "via Google Meet" msgstr "vía Google Meet" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "vía notificación" @@ -31338,7 +31422,7 @@ msgstr "{0} ya ha sido dado de baja" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} ya ha sido dado de baja para {1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} y {1}" @@ -31363,7 +31447,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "{0} adjunto {1}" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "{0} no puede ser más de {1}" @@ -31676,7 +31760,7 @@ msgstr "Hace {0} minutos" msgid "{0} months ago" msgstr "Hace {0} meses" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} debe ser después de {1}" @@ -31733,12 +31817,12 @@ msgstr "{0} de {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} de {1} ({2} filas con hijos)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "{0} solamente." -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} o {1}" @@ -31783,7 +31867,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "{0} el rol no tiene permiso sobre ningún doctype" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} fila #{1}:" @@ -32062,11 +32146,11 @@ msgstr "{{{0}}} no es un formato válido de nombre de campo. Debe ser {{field_na msgid "{} Complete" msgstr "{} Completo" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "{} Código python inválido en la línea {}" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "{} Código python posiblemente inválido.
{}" diff --git a/frappe/locale/fa.po b/frappe/locale/fa.po index 6345b2d148..8c70d89697 100644 --- a/frappe/locale/fa.po +++ b/frappe/locale/fa.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:49\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "1 رویداد تقویم Google همگام‌سازی شد." msgid "1 Report" msgstr "1 گزارش" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "1 روز پیش" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 ساعت" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "1 ساعت پیش" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "1 دقیقه پیش" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "1 ماه پیش" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "1 ثانیه پیش" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "1 هفته قبل" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "1 سال پیش" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "2 ساعت پیش" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "2 ماه پیش" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "2 هفته پیش" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "2 سال پیش" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "3 دقیقه پیش" @@ -232,7 +232,7 @@ msgstr "4 ساعت" msgid "5 Records" msgstr "5 رکورد" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "5 روز پیش" @@ -503,7 +503,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "

OTP secret شما در {0} بازنشانی شده است. اگر این بازنشانی را انجام ندادید و آن را درخواست نکردید، لطفاً فوراً با ادمین سیستم خود تماس بگیرید.

" @@ -903,7 +903,7 @@ msgstr "اقدام / مسیر" msgid "Action Complete" msgstr "اقدام کامل شد" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "اقدام ناموفق بود" @@ -1040,7 +1040,7 @@ msgstr "افزودن / به‌روزرسانی" msgid "Add A New Rule" msgstr "افزودن یک قانون جدید" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "افزودن پیوست" @@ -1145,7 +1145,7 @@ msgstr "افزودن ردیف" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "افزودن امضا" @@ -1173,7 +1173,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "افزودن تگ" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "افزودن الگو" @@ -1580,6 +1580,7 @@ msgstr "تراز کردن مقدار" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1594,7 +1595,9 @@ msgstr "تراز کردن مقدار" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2197,7 +2200,7 @@ msgstr "نام برنامه" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "برنامه برای ماژول یافت نشد: {0}" @@ -2359,7 +2362,7 @@ msgstr "آیا مطمئن هستید که می‌خواهید دعوت را لغ msgid "Are you sure you want to clear the assignments?" msgstr "آیا مطمئن هستید که می‌خواهید واگذاری ها را پاک کنید؟" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "آیا مطمئن هستید که می‌خواهید همه ردیف ها را حذف کنید؟" @@ -2395,7 +2398,7 @@ msgstr "آیا مطمئن هستید که می‌خواهید تغییرات ر msgid "Are you sure you want to generate a new report?" msgstr "آیا مطمئن هستید که می‌خواهید یک گزارش جدید ایجاد کنید؟" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "آیا مطمئنید که می‌خواهید {0} را با {1} ادغام کنید؟" @@ -2641,10 +2644,15 @@ msgstr "حداقل یک فیلد از نوع سند والد اجباری است msgid "Attach" msgstr "پیوست" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "پیوست چاپ سند" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2727,6 +2735,11 @@ msgstr "لینک پیوست" msgid "Attachment Removed" msgstr "پیوست حذف شد" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2904,7 +2917,7 @@ msgstr "روز تکرار خودکار{0} {1} تکرار شده است." msgid "Auto Repeat Document Creation Failed" msgstr "تکرار خودکار ایجاد سند انجام نشد" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "زمان‌بندی تکرار خودکار" @@ -3138,7 +3151,7 @@ msgstr "B9" msgid "BCC" msgstr "BCC" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "BCC" @@ -3156,7 +3169,7 @@ msgstr "بازگشت به پیشخوان" msgid "Back to Home" msgstr "بازگشت به خانه" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "بازگشت به صفحه ورود" @@ -3597,7 +3610,7 @@ msgstr "حذف انبوه" msgid "Bulk Edit" msgstr "ویرایش انبوه" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "ویرایش انبوه {0}" @@ -3720,7 +3733,7 @@ msgstr "لغو شده" msgid "CC" msgstr "CC" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "CC" @@ -3915,6 +3928,14 @@ msgstr "لغو همه" msgid "Cancel All Documents" msgstr "لغو تمام اسناد" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3952,11 +3973,11 @@ msgstr "لغو اسناد" msgid "Cancelling {0}" msgstr "در حال لغو {0}" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "به دلیل مجوزهای ناکافی، نمی‌توان گزارش را دانلود کرد" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "نمی‌توان مقادیر را واکشی کرد" @@ -4059,7 +4080,7 @@ msgstr "نمی‌توان {0} را حذف کرد زیرا دارای گره‌ه msgid "Cannot edit Standard Dashboards" msgstr "نمی‌توان داشبوردهای استاندارد را ویرایش کرد" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "نمی‌توان اعلان استاندارد را ویرایش کرد. برای ویرایش، لطفاً این را غیرفعال کنید و آن را کپی کنید" @@ -4084,7 +4105,7 @@ msgstr "نمی‌توان فیلترها را برای نمودارهای است msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "نمی‌توان فیلدهای استاندارد را ویرایش کرد" @@ -4104,9 +4125,9 @@ msgstr "محتویات فایل یک پوشه را نمی‌توان دریاف msgid "Cannot have multiple printers mapped to a single print format." msgstr "نمی‌توان چندین چاپگر را به یک قالب چاپ واحد نگاشت کرد." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." -msgstr "" +msgstr "نمی‌توان جدولی با بیش از ۵۰۰۰ ردیف را درون‌بُرد کرد." #: frappe/model/document.py:1130 msgid "Cannot link cancelled document: {0}" @@ -4132,7 +4153,7 @@ msgstr "نمی‌توان فیلد ID را حذف کرد" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "اگر مجوز «فقط در صورتی که سازنده» تنظیم شده باشد، نمی‌توان مجوز «گزارش» را تنظیم کرد" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4460,7 +4481,7 @@ msgstr "روش احراز هویت را برای استفاده توسط همه #: frappe/utils/pdf_generator/chrome_pdf_generator.py:94 msgid "Chromium is not downloaded. Please run the setup first." -msgstr "" +msgstr "کرومیوم دانلود نشده است. لطفاً ابتدا راه‌انداز را اجرا کنید." #. Label of the city (Data) field in DocType 'Contact Us Settings' #: frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py:39 @@ -4478,11 +4499,11 @@ msgstr "شهر/شهرک" msgid "Clear" msgstr "پاک کردن" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "پاک کردن و افزودن الگو" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "پاک کردن و افزودن الگو" @@ -4516,7 +4537,7 @@ msgstr "پاک کردن لاگ ها پس از (بر حسب روز)" msgid "Clear User Permissions" msgstr "مجوزهای کاربر را پاک کنید" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "پیام ایمیل را پاک کنید و الگو را اضافه کنید" @@ -4569,7 +4590,7 @@ msgstr "برای ایجاد Refresh Token روی {0} کلیک کنید." #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "برای ویرایش روی جدول کلیک کنید" @@ -4580,7 +4601,7 @@ msgstr "برای تنظیم فیلترهای پویا کلیک کنید" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "برای تنظیم فیلترها کلیک کنید" @@ -4757,7 +4778,7 @@ msgstr "روش چالش کد" msgid "Collapse" msgstr "جمع شدن" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "جمع شدن" @@ -4881,7 +4902,7 @@ msgstr "عرض ستون" msgid "Column width cannot be zero." msgstr "عرض ستون نمی‌تواند صفر باشد." -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "ستون {0}" @@ -5124,7 +5145,7 @@ msgstr "فشرده شده" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "شرط" @@ -5463,7 +5484,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "کپی خطا در کلیپ بورد" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "کپی به کلیپ بورد" @@ -5506,7 +5527,7 @@ msgstr "" #: frappe/utils/pdf_generator/chrome_pdf_generator.py:199 msgid "Could not start Chromium. Check logs for details." -msgstr "" +msgstr "نتوانست کرومیوم را راه‌اندازی کند. برای جزئیات بیشتر، لاگ‌ها را بررسی کنید." #: frappe/desk/page/setup_wizard/setup_wizard.js:234 msgid "Could not start up:" @@ -6074,13 +6095,13 @@ msgstr "سفارشی‌سازی‌ها حذف شدند" msgid "Customizations Reset" msgstr "بازنشانی سفارشی‌سازی‌ها" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "سفارشی سازی برای {0} صادر شده به:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "شخصی سازی" @@ -6733,7 +6754,7 @@ msgstr "با تاخیر" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7086,7 +7107,7 @@ msgstr "نماد دسکتاپ از قبل وجود دارد" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "جزئیات" @@ -7242,7 +7263,7 @@ msgstr "غیرفعال" msgid "Disabled Auto Reply" msgstr "پاسخ خودکار غیرفعال است" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7331,7 +7352,7 @@ msgstr "کاربر جدید ایجاد نکنید" msgid "Do not create new user if user with email does not exist in the system" msgstr "اگر کاربر با ایمیل در سیستم وجود ندارد، کاربر جدیدی ایجاد نکنید" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "سربرگ‌هایی را که در قالب از پیش تنظیم شده اند ویرایش نکنید" @@ -7493,7 +7514,7 @@ msgstr "DocType یک جدول / فرم در برنامه است." msgid "DocType must be Submittable for the selected Doc Event" msgstr "DocType باید برای رویداد Doc انتخابی قابل ارسال باشد" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "DocType باید یک رشته باشد" @@ -7514,11 +7535,11 @@ msgstr "DocType که این گردش کار روی آن قابل اجرا است msgid "DocType required" msgstr "DocType مورد نیاز است" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "DocType {0} وجود ندارد." -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "DocType {} یافت نشد" @@ -7629,7 +7650,7 @@ msgstr "پیوندهای سند ردیف #{0}: نام فیلد جدول برای msgid "Document Name" msgstr "نام سند" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "نام سند باید یک رشته باشد" @@ -7805,7 +7826,7 @@ msgid "Document Types and Permissions" msgstr "انواع اسناد و مجوزها" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "قفل سند باز شد" @@ -7833,11 +7854,11 @@ msgstr "سند فقط توسط کاربران دارای نقش قابل ویر msgid "Document not Relinked" msgstr "سند دوباره پیوند داده نشد" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "تغییر نام سند از {0} به {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "تغییر نام سند از {0} به {1} در صف قرار گرفته است" @@ -7853,7 +7874,7 @@ msgstr "سند {0} قبلاً بازیابی شده است" msgid "Document {0} has been set to state {1} by {2}" msgstr "سند {0} توسط {2} روی {1} تنظیم شده است" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "سند {0} {1} وجود ندارد" @@ -8080,7 +8101,7 @@ msgid "Due Date Based On" msgstr "تاریخ سررسید بر اساس" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "تکرار کردن" @@ -8195,7 +8216,7 @@ msgstr "خروج" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8244,7 +8265,7 @@ msgstr "ویرایش بلوک سفارشی" msgid "Edit Custom HTML" msgstr "ویرایش HTML سفارشی" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "ویرایش DocType" @@ -8429,7 +8450,7 @@ msgstr "انتخابگر عنصر" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8488,7 +8509,7 @@ msgstr "حساب ایمیل {0} غیرفعال شد" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "آدرس ایمیل" @@ -8638,7 +8659,7 @@ msgstr "گزینه همگام سازی ایمیل" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "الگوی ایمیل" @@ -8670,7 +8691,7 @@ msgstr "ایمیل به سطل زباله منتقل شد" msgid "Email is mandatory to create User Email" msgstr "ایمیل برای ایجاد ایمیل کاربر الزامی است" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "ایمیل به {0} ارسال نشد (لغو اشتراک / غیرفعال)" @@ -8867,7 +8888,7 @@ msgstr "ردیابی بازدیدهای صفحه را فعال کنید" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "احراز هویت دو عاملی را فعال کنید" @@ -9040,7 +9061,7 @@ msgstr "شناسه مشتری و Client Secret را در تنظیمات Google msgid "Enter Code displayed in OTP App." msgstr "کد نمایش داده شده در OTP App را وارد کنید." -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "گیرنده(های) ایمیل را وارد کنید" @@ -9178,9 +9199,9 @@ msgstr "خطا در اسکریپت کلاینت." msgid "Error in Header/Footer Script" msgstr "خطا در اسکریپت سربرگ/پانویس" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "خطا در اعلان" @@ -9200,7 +9221,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "خطا هنگام اتصال به حساب ایمیل {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "خطا هنگام ارزیابی اعلان {0}. لطفا قالب خود را اصلاح کنید." @@ -9382,7 +9403,7 @@ msgstr "نقش موجود" msgid "Expand" msgstr "بسط دادن" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "بسط دادن" @@ -9479,7 +9500,7 @@ msgstr "برون‌بُرد سفارشی سازی ها" msgid "Export Data" msgstr "برون‌بُرد داده ها" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "صادر کردن ردیف های خطا" @@ -9489,7 +9510,7 @@ msgstr "صادر کردن ردیف های خطا" msgid "Export From" msgstr "برون‌بُرد از" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "لاگ درون‌بُرد برون‌بُرد" @@ -9665,7 +9686,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "زمان‌بندی فعال نشد: {0}" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "شرایط ارزیابی نشد: {}" @@ -9702,11 +9723,11 @@ msgstr "درون‌بُرد doctype مجازی {} انجام نشد، آیا ف msgid "Failed to optimize image: {0}" msgstr "تصویر بهینه نشد: {0}" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9736,7 +9757,7 @@ msgstr "هنگام فراخوان API {0} ناموفق بود" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "کارهای زمان‌بندی شده ناموفق (7 روز گذشته)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "شکست" @@ -9796,6 +9817,10 @@ msgstr "در صورت خالی بودن، هنگام ذخیره واکشی کن msgid "Fetching default Global Search documents." msgstr "در حال واکشی اسناد جستجوی سراسری پیش‌فرض." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9894,13 +9919,13 @@ msgstr "فیلد {0} به نوع سند موجود {1} اشاره دارد." #: frappe/core/doctype/doctype/doctype.py:1655 msgid "Field {0} must be a virtual field to support virtual doctype." -msgstr "" +msgstr "فیلد {0} باید یک فیلد مجازی باشد تا از نوع سند مجازی پشتیبانی کند." #: frappe/public/js/frappe/form/form.js:1768 msgid "Field {0} not found." msgstr "فیلد {0} یافت نشد." -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10133,7 +10158,7 @@ msgstr "فایل ها" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "فیلتر" @@ -10393,7 +10418,7 @@ msgid "Folio" msgstr "برگ برگ" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "دنبال کردن" @@ -10401,7 +10426,7 @@ msgstr "دنبال کردن" msgid "Followed by" msgstr "به دنبال" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "فیلترهای گزارش زیر دارای مقادیر گمشده هستند:" @@ -10865,11 +10890,16 @@ msgstr "جمعه" msgid "From" msgstr "از" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "از" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10885,6 +10915,11 @@ msgstr "از فیلد تاریخ" msgid "From Document Type" msgstr "از نوع سند" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11046,7 +11081,7 @@ msgstr "موقعیت جغرافیایی" msgid "Geolocation Settings" msgstr "تنظیمات مکان جغرافیایی" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "دریافت هشدار برای امروز" @@ -11138,7 +11173,7 @@ msgstr "میانبرهای سراسری" msgid "Global Unsubscribe" msgstr "لغو اشتراک سراسری" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "برو" @@ -11186,7 +11221,7 @@ msgstr "پس از تکمیل فرم به این آدرس بروید" msgid "Go to {0}" msgstr "رفتن به {0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11883,7 +11918,7 @@ msgstr "پنهان کردن تعطیلات آخر هفته" msgid "Hide descendant records of For Value." msgstr "پنهان کردن رکوردهای فرزند برای مقدار." -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "پنهان کردن جزئیات" @@ -12566,11 +12601,11 @@ msgstr "الگوی درون‌بُرد باید از نوع csv.، xlsx. یا xl msgid "Import template should contain a Header and atleast one row." msgstr "الگوی درون‌بُرد باید حاوی سربرگ و حداقل یک ردیف باشد." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "زمان درون‌بُرد تمام شد، لطفاً دوباره امتحان کنید." -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "درون‌بُرد {0} مجاز نیست." @@ -13073,7 +13108,7 @@ msgstr "نامعتبر" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "عبارت \"depends_on\" نامعتبر است" @@ -13167,6 +13202,8 @@ msgstr "سرور ایمیل نامعتبر است. لطفاً اصلاح کنی msgid "Invalid Naming Series: {}" msgstr "سری نام‌گذاری نامعتبر: {}" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13181,7 +13218,7 @@ msgstr "گزینه نامعتبر" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "سرور یا درگاه ایمیل خروجی نامعتبر: {0}" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "فرمت خروجی نامعتبر است" @@ -13303,7 +13340,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "نام فیلد نامعتبر {0}" @@ -13838,6 +13875,7 @@ msgstr "نام شغل" msgid "Job Status" msgstr "وضعیت شغلی" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "کار با موفقیت متوقف شد" @@ -13846,16 +13884,22 @@ msgstr "کار با موفقیت متوقف شد" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "کار در حال اجرا نیست" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "پیوستن به کنفرانس ویدیویی با {0}" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "پرش به فیلد" @@ -14907,7 +14951,7 @@ msgstr "بارگذاری" msgid "Loading Filters..." msgstr "در حال بارگیری فیلترها..." -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "در حال بارگیری فایل درون‌بُرد..." @@ -15042,7 +15086,7 @@ msgstr "کد تأیید ورود از {}" msgid "Login and view in Browser" msgstr "وارد شوید و در مرورگر مشاهده کنید" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "ورود به سیستم برای مشاهده لیست فرم وب مورد نیاز است. برای مشاهده تنظیمات لیست، {0} را فعال کنید" @@ -15079,7 +15123,7 @@ msgstr "ورود به {0}" msgid "Login token required" msgstr "توکن ورود لازم است" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "با لینک ایمیل وارد شوید" @@ -15549,7 +15593,7 @@ msgstr "متوسط" msgid "Meeting" msgstr "جلسه" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "شرایط را برآورده می‌کند؟" @@ -15585,7 +15629,7 @@ msgstr "اشاره می‌کند" msgid "Menu" msgstr "منو" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "ادغام با موجود" @@ -15610,16 +15654,16 @@ msgstr "ادغام فقط بین گره گروه به گروه یا گره بر #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15656,7 +15700,7 @@ msgstr "پیام فرستاده شد" msgid "Message Type" msgstr "نوع پیام" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "پیام بریده شد" @@ -15664,7 +15708,7 @@ msgstr "پیام بریده شد" msgid "Message from server: {0}" msgstr "پیام از سرور: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "پیام تنظیم نشده است" @@ -15850,7 +15894,7 @@ msgstr "فیلد جا افتاده" msgid "Missing Fields" msgstr "فیلدهای گمشده" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "فیلترهای از دست رفته مورد نیاز است" @@ -15985,7 +16029,7 @@ msgstr "نمایه ماژول" msgid "Module Profile Name" msgstr "نام نمایه ماژول" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "بازنشانی پیشرفت آشناسازی ماژول" @@ -15993,7 +16037,7 @@ msgstr "بازنشانی پیشرفت آشناسازی ماژول" msgid "Module to Export" msgstr "ماژول برای برون‌بُرد" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "ماژول {} یافت نشد" @@ -16507,7 +16551,7 @@ msgstr "پیام جدید از صفحه تماس وب سایت" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "نام جدید" @@ -16609,10 +16653,10 @@ msgid "New value to be set" msgstr "مقدار جدیدی که باید تنظیم شود" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16697,6 +16741,10 @@ msgstr "اقدام بعدی الگوی ایمیل" msgid "Next Actions HTML" msgstr "اقدامات بعدی HTML" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "سند بعدی" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16764,8 +16812,8 @@ msgstr "بعد روی کلیک کنید" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16801,7 +16849,7 @@ msgid "No Copy" msgstr "بدون کپی" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16941,7 +16989,7 @@ msgstr "رویدادهای آینده وجود ندارد" msgid "No address added yet." msgstr "هنوز آدرسی اضافه نشده است." -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "هیچ هشداری برای امروز وجود ندارد" @@ -16981,6 +17029,10 @@ msgstr "هنوز مخاطبی اضافه نشده است." msgid "No contacts linked to document" msgstr "هیچ مخاطبی به سند پیوند داده نشده است" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "داده ای برای برون‌بُرد نیست" @@ -17001,7 +17053,7 @@ msgstr "هیچ حساب ایمیلی با کاربر مرتبط نیست. لطف msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "هیچ لاگ ناموفقی نیست" @@ -17064,7 +17116,7 @@ msgstr "تعداد ردیف‌ها (حداکثر ۵۰۰)" msgid "No of Sent SMS" msgstr "شماره پیامک ارسالی" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "بدون مجوز برای {0}" @@ -17101,7 +17153,7 @@ msgstr "هیچ رکوردی برون‌بُرد نخواهد شد" msgid "No rows" msgstr "بدون ردیف" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17242,8 +17294,8 @@ msgstr "خواندن {0} مجاز نیست" msgid "Not Published" msgstr "منتشر نشده" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17296,7 +17348,7 @@ msgstr "غیر فعال" msgid "Not allowed for {0}: {1}" msgstr "برای {0} مجاز نیست: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "مجاز به پیوست کردن سند {0} نیست، لطفاً Allow Print For {0} را در تنظیمات چاپ فعال کنید" @@ -17328,7 +17380,7 @@ msgstr "در حالت توسعه دهنده نیست" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "در حالت توسعه دهنده نیست! در site_config.json تنظیم کنید یا DocType را «Custom» بسازید." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17451,15 +17503,15 @@ msgstr "سند ثبت شده اعلان" msgid "Notification sent to" msgstr "اعلان ارسال شد به" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17573,7 +17625,7 @@ msgstr "تعداد پرسمان‌ها" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "تعداد فیلدهای پیوست بیش از {} است، محدودیت به {} به روز شده است." -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "تعداد نسخه‌های پشتیبان باید بیشتر از صفر باشد." @@ -17682,14 +17734,30 @@ msgstr "برنامه OTP" msgid "OTP Issuer Name" msgstr "نام صادرکننده OTP" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "بازنشانی مخفی OTP - {0}" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "OTP Secret بازنشانی شده است. ثبت نام مجدد در ورود بعدی الزامی است." +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "راه‌اندازی OTP با استفاده از برنامه OTP تکمیل نشد. لطفا با ادمین تماس بگیرید." @@ -17805,7 +17873,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "در {0}، {1} نوشت:" @@ -17865,7 +17933,7 @@ msgstr "رمز ثبت یکبار مصرف (OTP) از {}" msgid "One of" msgstr "یکی از" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "فقط 200 درج در یک درخواست مجاز است" @@ -17903,7 +17971,7 @@ msgstr "فقط رکوردهای به روز شده در آخرین X ساعت ر msgid "Only Workspace Manager can edit public workspaces" msgstr "فقط Workspace Manager می‌تواند فضاهای کاری عمومی را ویرایش کند" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "فقط مجاز به صدور سفارشی سازی در حالت برنامه نویس است" @@ -18083,7 +18151,7 @@ msgstr "باز شد" msgid "Operation" msgstr "عملیات" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "اپراتور باید یکی از {0} باشد" @@ -18585,7 +18653,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "فیلد والد در {0} مشخص نشده است: {1}" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "نوع والد، والد و فیلد والد برای درج سابقه فرزند مورد نیاز هستند" @@ -18757,6 +18825,10 @@ msgstr "مسیر رسیدن به گواهی سرور" msgid "Path to private Key File" msgstr "مسیر فایل کلید خصوصی" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "مسیر {0} یک مسیر معتبر نیست" @@ -19081,7 +19153,7 @@ msgstr "لطفا نمودار را تنظیم کنید" msgid "Please Update SMS Settings" msgstr "لطفا تنظیمات پیامک را به روز کنید" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "لطفا یک موضوع به ایمیل خود اضافه کنید" @@ -19133,7 +19205,7 @@ msgstr "لطفا آدرس ایمیل ثبت شده خود را برای دستو msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19173,7 +19245,7 @@ msgstr "لطفا عناوین قالب را تغییر ندهید." msgid "Please duplicate this to make changes" msgstr "لطفاً برای ایجاد تغییرات این را کپی کنید" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "لطفاً حداقل یک کلید ورود به سیستم اجتماعی یا LDAP یا ورود با پیوند ایمیل را قبل از غیرفعال کردن ورود مبتنی بر نام کاربری/گذرواژه فعال کنید." @@ -19289,6 +19361,10 @@ msgstr "لطفاً سند را قبل از تخصیص ذخیره کنید" msgid "Please save the document before removing assignment" msgstr "لطفاً سند را قبل از حذف تخصیص ذخیره کنید" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "لطفا ابتدا گزارش را ذخیره کنید" @@ -19305,7 +19381,7 @@ msgstr "لطفا ابتدا DocType را انتخاب کنید" msgid "Please select Entity Type first" msgstr "لطفا ابتدا Entity Type را انتخاب کنید" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "لطفا حداقل امتیاز گذرواژه را انتخاب کنید" @@ -19371,7 +19447,7 @@ msgstr "لطفاً یک نگاشت چاپگر برای این قالب چاپی msgid "Please set filters" msgstr "لطفا فیلترها را تنظیم کنید" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "لطفاً مقدار فیلترها را در جدول گزارش فیلتر تنظیم کنید." @@ -19387,11 +19463,11 @@ msgstr "لطفاً ابتدا اسناد زیر را در این داشبورد msgid "Please set the series to be used." msgstr "لطفاً سریال مورد استفاده را تنظیم کنید." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "لطفاً SMS را قبل از تنظیم آن به عنوان یک روش احراز هویت، از طریق تنظیمات پیامک تنظیم کنید" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "لطفا ابتدا یک پیام تنظیم کنید" @@ -19411,23 +19487,27 @@ msgstr "لطفا مشخص کنید" msgid "Please specify a valid parent DocType for {0}" msgstr "لطفاً یک DocType والد معتبر برای {0} مشخص کنید" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "لطفاً مشخص کنید کدام قسمت تاریخ باید بررسی شود" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "لطفاً مشخص کنید که کدام قسمت مقدار باید بررسی شود" @@ -19614,7 +19694,7 @@ msgstr "ارائه گزارش آماده انجام نشد" msgid "Preparing Report" msgstr "تهیه گزارش" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "الگو را برای پیام ایمیل آماده کنید" @@ -19635,7 +19715,7 @@ msgstr "برای ذخیره Enter را فشار دهید" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19689,6 +19769,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "قبلی" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "سند قبلی" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "ارسال قبلی" @@ -19738,8 +19822,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19852,7 +19936,7 @@ msgstr "چاپ پنهان" msgid "Print Hide If No Value" msgstr "اگر مقدار نداشت در پرینت نمایش داده نشود" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "زبان چاپ" @@ -19867,10 +19951,8 @@ msgid "Print Server" msgstr "سرور چاپ" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20492,7 +20574,7 @@ msgstr "پاسخ:" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "پاسخ: {0}" @@ -20503,7 +20585,7 @@ msgstr "پاسخ: {0}" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20742,12 +20824,12 @@ msgstr "تغییر مسیرها" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "سرور کش Redis اجرا نمی‌شود. لطفا با ادمین / پشتیبانی فنی تماس بگیرید" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "انجام دوباره" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "انجام دوباره آخرین کنش" @@ -21060,7 +21142,7 @@ msgstr "دوباره پیوند داده شد" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "بارگذاری مجدد" @@ -21091,7 +21173,7 @@ msgstr "به خاطر سپردن آخرین مقدار انتخاب شده" msgid "Remind At" msgstr "یادآوری در" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "به من یادآوری کن" @@ -21171,9 +21253,9 @@ msgid "Removed" msgstr "حذف شد" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21201,7 +21283,7 @@ msgstr "" msgid "Reopen" msgstr "باز کردن دوباره" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "تکرار" @@ -21451,7 +21533,7 @@ msgstr "گزارش شروع شد، برای مشاهده وضعیت کلیک ک msgid "Report limit reached" msgstr "به حد مجاز گزارش رسیده است" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "زمان گزارش تمام شد." @@ -21645,7 +21727,7 @@ msgstr "بازنشانی چیدمان" msgid "Reset OTP Secret" msgstr "بازنشانی OTP Secret" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21801,7 +21883,7 @@ msgid "Resume Sending" msgstr "از سرگیری ارسال" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22123,7 +22205,7 @@ msgstr "شاخص‌های ردیف" msgid "Row Name" msgstr "نام ردیف" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "شماره ردیف" @@ -22131,7 +22213,7 @@ msgstr "شماره ردیف" msgid "Row Values Changed" msgstr "مقادیر ردیف تغییر کرد" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "ردیف {0}" @@ -22356,7 +22438,7 @@ msgid "Saturday" msgstr "شنبه" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22412,13 +22494,13 @@ msgstr "سند را ذخیره کنید." #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "ذخیره" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "فیلترهای ذخیره شده" @@ -22460,7 +22542,7 @@ msgstr "کد QR را اسکن کرده و کد نمایش داده شده را msgid "Schedule" msgstr "زمان‌بندی" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "زمان‌بندی ارسال در" @@ -22524,7 +22606,7 @@ msgstr "زمان‌بند" msgid "Scheduler Event" msgstr "رویداد زمان‌بندی" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "زمانبند غیرفعال" @@ -22537,7 +22619,7 @@ msgstr "وضعیت زمانبند" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "وقتی حالت تعمیر و نگهداری فعال است، زمان‌بند را نمی‌توان دوباره فعال کرد." -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "زمانبند غیرفعال است. نمی‌توان داده ها را وارد کرد." @@ -22838,8 +22920,8 @@ msgstr "انتخاب کردن" msgid "Select All" msgstr "انتخاب همه" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22905,7 +22987,7 @@ msgstr "برای تعیین اینکه کدام مجوزهای کاربر برا #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "فیلد را انتخاب کنید" @@ -22979,7 +23061,7 @@ msgid "Select Page" msgstr "Page را انتخاب کنید" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Print Format را انتخاب کنید" @@ -23193,7 +23275,7 @@ msgstr "در حال حاضر ارسال" msgid "Send Print as PDF" msgstr "ارسال چاپ به صورت PDF" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "ارسال رسید خواندن" @@ -23252,11 +23334,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "سوالات خود را به این آدرس ایمیل ارسال کنید" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "ارسال لینک ورود" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "یک کپی برای من بفرست" @@ -23480,7 +23562,7 @@ msgstr "نشست منقضی شده" msgid "Session Expiry (idle timeout)" msgstr "انقضای نشست (تایم بیکار)" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "انقضای نشست باید در قالب {0} باشد" @@ -23525,7 +23607,7 @@ msgstr "فیلترهای پویا را تنظیم کنید" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "فیلترها را تنظیم کنید" @@ -23897,7 +23979,7 @@ msgstr "نمایش خطا" msgid "Show External Link Warning" msgstr "نمایش هشدار لینک خارجی" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "نمایش نام فیلد (برای کپی در کلیپ بورد کلیک کنید)" @@ -23949,7 +24031,7 @@ msgstr "نمایش انتخابگر زبان" msgid "Show Line Breaks after Sections" msgstr "نمایش خطوط شکسته بعد از بخش ها" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24024,7 +24106,7 @@ msgstr "نمایش نوار کناری" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "نمایش برچسب ها" @@ -24050,7 +24132,7 @@ msgstr "نمایش مجموع" msgid "Show Tour" msgstr "نمایش تور" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "نمایش ردیابی" @@ -24130,8 +24212,8 @@ msgstr "نمایش پیوند به سند" msgid "Show list" msgstr "نمایش لیست" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "نمایش جزئیات بیشتر" @@ -24319,7 +24401,7 @@ msgstr "پرش از ستون بدون عنوان" msgid "Skipping column {0}" msgstr "پرش از ستون {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "رد شدن از همگام سازی ثابت برای doctype {0} از فایل {1}" @@ -24715,7 +24797,7 @@ msgstr "تاریخ شروع" msgid "Start Date Field" msgstr "فیلد تاریخ شروع" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "شروع درون‌بُرد" @@ -24849,7 +24931,7 @@ msgstr "فاصله زمانی آمار" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25016,9 +25098,9 @@ msgstr "زیر دامنه" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "موضوع" @@ -25162,12 +25244,12 @@ msgstr "عنوان فرعی" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25227,11 +25309,11 @@ msgstr "موفقیت آمیز: {0} به {1}" msgid "Successfully Updated" msgstr "با موفقیت به روز شد" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "{0} با موفقیت درون‌بُرد شد" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "{0} رکورد از {1} رکورد با موفقیت درون‌بُرد شد." @@ -25247,11 +25329,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "ترجمه ها با موفقیت به روز شدند" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "با موفقیت به روز شد {0}" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "{0} رکورد از {1} رکورد با موفقیت به روز شد." @@ -25386,7 +25468,7 @@ msgstr "در حال همگام سازی" msgid "Syncing {0} of {1}" msgstr "در حال همگام سازی {0} از {1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "اشتباه نوشتاری" @@ -25697,7 +25779,7 @@ msgstr "جدول MultiSelect" msgid "Table Trimmed" msgstr "جدول بریده شده" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "جدول به روز شد" @@ -25912,7 +25994,7 @@ msgstr "با تشکر" msgid "The Auto Repeat for this document has been disabled." msgstr "تکرار خودکار برای این سند غیرفعال شده است." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "قالب CSV به حروف بزرگ و کوچک حساس است" @@ -25923,7 +26005,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "شرط \"{0}\" نامعتبر است" @@ -26170,7 +26252,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "{0} با فیلترهای مشابه از قبل در صف وجود دارد:" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "در یک فرم وب فقط 9 فیلد شکستگی صفحه وجود دارد" @@ -26222,7 +26304,7 @@ msgstr "خطاهایی وجود داشت" msgid "There were errors while creating the document. Please try again." msgstr "هنگام ایجاد سند خطاهایی وجود داشت. لطفا دوباره تلاش کنید." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "هنگام ارسال ایمیل خطاهایی وجود داشت. لطفا دوباره تلاش کنید." @@ -26299,7 +26381,7 @@ msgstr "این عمل برگشت‌ناپذیر است. آیا مایل هستی msgid "This action is only allowed for {}" msgstr "این عمل فقط برای {} مجاز است" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "این قابل بازگشت نیست" @@ -26528,6 +26610,8 @@ msgstr "با این کار اطلاعات شما برای همیشه حذف می msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "با این کار این تور بازنشانی می‌شود و به همه کاربران نشان داده می‌شود. مطمئنی؟" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -27598,15 +27682,15 @@ msgstr "شرط لغو اختصاص" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "بدون تغییر" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "واگرد" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "واگرد آخرین اقدام" @@ -27615,7 +27699,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "لغو دنبال کردن" @@ -27653,7 +27737,7 @@ msgstr "ناشناخته" msgid "Unknown Column: {0}" msgstr "ستون ناشناخته: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "روش گرد کردن نامشخص: {}" @@ -27881,7 +27965,7 @@ msgstr "به‌روزرسانی تنظیمات جهانی" msgid "Updating naming series options" msgstr "در حال به‌روزرسانی گزینه‌های سری نام‌گذاری" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "به‌روزرسانی فیلدهای مرتبط..." @@ -28527,7 +28611,7 @@ msgstr "اعتبار" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "مقدار" @@ -28605,7 +28689,7 @@ msgstr "ارزش خیلی بزرگ است" msgid "Value {0} missing for {1}" msgstr "مقدار {0} برای {1} وجود ندارد" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "مقدار {0} باید در قالب مدت زمان معتبر باشد: dhms" @@ -28627,7 +28711,7 @@ msgstr "وردنا" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28685,7 +28769,7 @@ msgstr "نما" msgid "View All" msgstr "مشاهده همه" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29651,9 +29735,9 @@ msgstr "زرد" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29748,7 +29832,7 @@ msgstr "شما مجاز به برون‌بُرد {} doctype نیستید" msgid "You are not allowed to print this report" msgstr "شما مجاز به چاپ این گزارش نیستید" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "شما مجاز به ارسال ایمیل های مرتبط با این سند نیستید" @@ -29936,7 +30020,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "شما مجوزهای خواندن یا انتخاب برای {} را ندارید" @@ -29996,7 +30080,7 @@ msgstr "شما به محدودیت اندازه ردیف در جدول پایگ msgid "You have not entered a value. The field will be set to empty." msgstr "شما مقداری وارد نکرده‌اید. فیلد خالی تنظیم می‌شود." -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "شما باید دو عاملی را از تنظیمات سیستم فعال کنید." @@ -30105,7 +30189,7 @@ msgstr "برای ادغام به اجازه نوشتن در {0} {1} نیاز د msgid "You need write permission on {0} {1} to rename" msgstr "برای تغییر نام به اجازه نوشتن در {0} {1} نیاز دارید" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "برای واکشی مقادیر از {1} {2} به مجوز {0} نیاز دارید" @@ -30279,7 +30363,7 @@ msgstr "سایت شما در حال تعمیر یا به‌روزرسانی اس msgid "Your verification code is {0}" msgstr "کد تأیید شما {0} است" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "صفر" @@ -30322,7 +30406,7 @@ msgstr "after_insert" msgid "amend" msgstr "اصلاح" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "و" @@ -30363,7 +30447,7 @@ msgstr "لغو شده" #. Option for the 'PDF Generator' (Select) field in DocType 'Print Format' #: frappe/printing/doctype/print_format/print_format.json msgid "chrome" -msgstr "" +msgstr "کروم" #: frappe/templates/includes/list/filters.html:19 msgid "clear" @@ -30609,7 +30693,7 @@ msgstr "فهرست" msgid "logged in" msgstr "وارد شده" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "login_required" @@ -30947,7 +31031,7 @@ msgstr "از طریق درون‌بُرد داده" msgid "via Google Meet" msgstr "از طریق Google Meet" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "از طریق اطلاع رسانی" @@ -31156,7 +31240,7 @@ msgstr "{0} قبلاً اشتراک خود را لغو کرده است" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} قبلاً اشتراک {1} {2} را لغو کرده است" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} و {1}" @@ -31181,7 +31265,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "{0} پیوست {1}" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "{0} نمی‌تواند بیشتر از {1} باشد" @@ -31494,7 +31578,7 @@ msgstr "{0} دقیقه قبل" msgid "{0} months ago" msgstr "{0} ماه پیش" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} باید بعد از {1} باشد" @@ -31551,12 +31635,12 @@ msgstr "{0} از {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} از {1} ({2} ردیف با فرزندان)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "فقط {0}." -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} یا {1}" @@ -31601,7 +31685,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "نقش {0} اجازه هیچ نوع doctype را ندارد" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} ردیف #{1}:" @@ -31880,11 +31964,11 @@ msgstr "{{{0}}} یک الگوی نام فیلد معتبر نیست. باید {{ msgid "{} Complete" msgstr "{} کامل" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "{} کد پایتون نامعتبر در خط {}" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "{} احتمالاً کد پایتون نامعتبر است.
{}" diff --git a/frappe/locale/fr.po b/frappe/locale/fr.po index 4d39b6c7e5..f074ef5d37 100644 --- a/frappe/locale/fr.po +++ b/frappe/locale/fr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:36\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:49\n" "Last-Translator: developers@frappe.io\n" "Language-Team: French\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "1 événement Google Agenda synchronisé." msgid "1 Report" msgstr "" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "Il y a 1 jour" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 heure" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "Il y a 1 heure" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "Il y a 1 minute" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "Il y a 1 mois" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "Il y a 1 seconde" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "Il ya 1 semaine" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "Il y a 1 an" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "Il y a 2 heures" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "Il y a 2 mois" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "Il y a 2 semaines" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "Il y a 2 ans" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "Il y a 3 minutes" @@ -232,7 +232,7 @@ msgstr "4 heures" msgid "5 Records" msgstr "5 enregistrements" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "" @@ -594,7 +594,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -1005,7 +1005,7 @@ msgstr "Action / Route" msgid "Action Complete" msgstr "Action terminée" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Échec de l'action" @@ -1142,7 +1142,7 @@ msgstr "Ajouter / Mettre à jour" msgid "Add A New Rule" msgstr "Ajouter une nouvelle règle" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Ajouter une pièce jointe" @@ -1247,7 +1247,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Ajouter une Signature" @@ -1275,7 +1275,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1682,6 +1682,7 @@ msgstr "Aligner la Valeur" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1696,7 +1697,9 @@ msgstr "Aligner la Valeur" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2299,7 +2302,7 @@ msgstr "Nom de l'App" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "Application introuvable pour le module : {0}" @@ -2461,7 +2464,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "Voulez-vous vraiment supprimer toutes les lignes?" @@ -2497,7 +2500,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "Voulez-vous vraiment fusionner {0} avec {1}?" @@ -2743,10 +2746,15 @@ msgstr "" msgid "Attach" msgstr "Attacher" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Joindre l'Impression de Document" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2829,6 +2837,11 @@ msgstr "Lien de pièce jointe" msgid "Attachment Removed" msgstr "Pièce jointe retirée" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -3006,7 +3019,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "La répétition automatique de la création de document a échoué" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "Planification de répétition automatique" @@ -3240,7 +3253,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "Cci" @@ -3258,7 +3271,7 @@ msgstr "Retour au bureau" msgid "Back to Home" msgstr "De retour à la maison" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "Retour à la Connexion" @@ -3698,7 +3711,7 @@ msgstr "Suppression en masse" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "Modifier en Masse {0}" @@ -3821,7 +3834,7 @@ msgstr "ANNULÉ" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "CC" @@ -4016,6 +4029,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "Annuler tous les documents" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4053,11 +4074,11 @@ msgstr "Annulation de documents" msgid "Cancelling {0}" msgstr "Annulation de {0}" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4160,7 +4181,7 @@ msgstr "Impossible de supprimer {0} car il possède des sous-nœuds" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "Impossible de modifier une notification standard. Pour l'éditer, veuillez la désactiver et la dupliquer" @@ -4185,7 +4206,7 @@ msgstr "Impossible de modifier les filtres des graphiques standard" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "Impossible de modifier les champs standards" @@ -4205,7 +4226,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "Impossible d'imprimer plusieurs imprimantes sur un seul format d'impression." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4233,7 +4254,7 @@ msgstr "Impossible de supprimer le champ ID" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4579,11 +4600,11 @@ msgstr "Ville" msgid "Clear" msgstr "Nettoyer" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4617,7 +4638,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "Effacer les autorisations utilisateur" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4670,7 +4691,7 @@ msgstr "Cliquez sur {0} pour générer le jeton d'actualisation." #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "Cliquez sur la table pour modifier" @@ -4681,7 +4702,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4858,7 +4879,7 @@ msgstr "" msgid "Collapse" msgstr "Réduire" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Réduire" @@ -4982,7 +5003,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5225,7 +5246,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "Conditions" @@ -5564,7 +5585,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "Copier vers le presse-papiers" @@ -6175,13 +6196,13 @@ msgstr "" msgid "Customizations Reset" msgstr "Réinitialiser les Personnalisations" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "Personnalisations pour {0} exportées vers:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Personnaliser" @@ -6834,7 +6855,7 @@ msgstr "Différé" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7187,7 +7208,7 @@ msgstr "L'Icône du Bureau existe déjà" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "Détails" @@ -7343,7 +7364,7 @@ msgstr "Desactivé" msgid "Disabled Auto Reply" msgstr "Réponse automatique désactivée" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7432,7 +7453,7 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "Ne pas modifier les en-têtes prédéfinis dans le modèle" @@ -7594,7 +7615,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "Le DocType doit être validable pour l'événement Doc sélectionné" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7615,11 +7636,11 @@ msgstr "DocType pour lequel ce Workflow est applicable." msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7730,7 +7751,7 @@ msgstr "" msgid "Document Name" msgstr "Nom du Document" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7906,7 +7927,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7934,11 +7955,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "Document renommé de {0} à {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7954,7 +7975,7 @@ msgstr "Document {0} déjà restauré" msgid "Document {0} has been set to state {1} by {2}" msgstr "Le document {0} a obtenu le statut {1} par {2}" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8181,7 +8202,7 @@ msgid "Due Date Based On" msgstr "Date d'échéance basée sur" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Dupliquer" @@ -8296,7 +8317,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8345,7 +8366,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "Modifier HTML Personnalisé" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "Modifier le DocType" @@ -8530,7 +8551,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8589,7 +8610,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "Adresse électronique" @@ -8739,7 +8760,7 @@ msgstr "Option de Synchronisation d'Email" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "Modèle d'email" @@ -8771,7 +8792,7 @@ msgstr "L'Email a été déplacé dans la corbeille" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "Email pas envoyé à {0} (désabonné / désactivé)" @@ -8968,7 +8989,7 @@ msgstr "Activer les vues de page de suivi" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "Autoriser l'Authentification à Double Facteurs" @@ -9141,7 +9162,7 @@ msgstr "Entrez l'ID et le secret du client dans les paramètres Google." msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "Entrez Email du(des) Destinataire(s)" @@ -9279,9 +9300,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "Erreur dans la notification" @@ -9301,7 +9322,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "Erreur lors de la connexion au compte Email {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "Erreur lors de l'évaluation de la notification {0}. Veuillez corriger votre modèle." @@ -9483,7 +9504,7 @@ msgstr "" msgid "Expand" msgstr "Développer" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Développer" @@ -9580,7 +9601,7 @@ msgstr "Exporter les Personnalisations" msgid "Export Data" msgstr "Exporter des données" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "Exporter les lignes erronées" @@ -9590,7 +9611,7 @@ msgstr "Exporter les lignes erronées" msgid "Export From" msgstr "Exporter de" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9766,7 +9787,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9803,11 +9824,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9837,7 +9858,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "Échec" @@ -9897,6 +9918,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "Récupération des documents de recherche globale par défaut." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -10001,7 +10026,7 @@ msgstr "" msgid "Field {0} not found." msgstr "Champ {0} introuvable." -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10234,7 +10259,7 @@ msgstr "Fichiers" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "Filtre" @@ -10494,7 +10519,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "Suivre" @@ -10502,7 +10527,7 @@ msgstr "Suivre" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10966,11 +10991,16 @@ msgstr "Vendredi" msgid "From" msgstr "À partir de" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "À partir de" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10986,6 +11016,11 @@ msgstr "Champ date" msgid "From Document Type" msgstr "De type de document" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11147,7 +11182,7 @@ msgstr "Géolocalisation" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "Obtenir les Alertes d'Aujourd'hui" @@ -11239,7 +11274,7 @@ msgstr "Raccourcis globaux" msgid "Global Unsubscribe" msgstr "Se Désabonner Globalement" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "Aller" @@ -11287,7 +11322,7 @@ msgstr "" msgid "Go to {0}" msgstr "Aller à {0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11984,7 +12019,7 @@ msgstr "Masquer les week-ends" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "Masquer les Détails" @@ -12667,11 +12702,11 @@ msgstr "Le modèle d'importation doit être de type .csv, .xlsx ou .xls" msgid "Import template should contain a Header and atleast one row." msgstr "Le modèle d'importation doit contenir un en-tête et au moins une ligne." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13174,7 +13209,7 @@ msgstr "Invalide" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "Expression \"depends_on\" non valide" @@ -13268,6 +13303,8 @@ msgstr "Serveur Mail Invalide. Veuillez corriger et réesayer" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13282,7 +13319,7 @@ msgstr "Option invalide" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "Format de Sortie Invalide" @@ -13404,7 +13441,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "Nom de champ {0} invalide" @@ -13939,6 +13976,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13947,16 +13985,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "Aller au champ" @@ -15008,7 +15052,7 @@ msgstr "Chargement" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "Chargement du fichier d'importation ..." @@ -15143,7 +15187,7 @@ msgstr "Code de Vérification de Connexion depuis {}" msgid "Login and view in Browser" msgstr "Connectez-vous et affichez la page dans le navigateur" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15180,7 +15224,7 @@ msgstr "Se connecter à {0}" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15650,7 +15694,7 @@ msgstr "Moyen" msgid "Meeting" msgstr "Réunion" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15686,7 +15730,7 @@ msgstr "" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Fusionner avec existant" @@ -15711,16 +15755,16 @@ msgstr "La combinaison n'est possible que de Groupe à Groupe ou Nœud-Feuille #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15757,7 +15801,7 @@ msgstr "Message envoyé" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "Message coupé" @@ -15765,7 +15809,7 @@ msgstr "Message coupé" msgid "Message from server: {0}" msgstr "Message du serveur: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "Message non configuré" @@ -15951,7 +15995,7 @@ msgstr "" msgid "Missing Fields" msgstr "Champs Manquants" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -16086,7 +16130,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -16094,7 +16138,7 @@ msgstr "" msgid "Module to Export" msgstr "Module à Exporter" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16608,7 +16652,7 @@ msgstr "Nouveau Message depuis la Page Contact du Site Web" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "Nouveau Nom" @@ -16710,10 +16754,10 @@ msgid "New value to be set" msgstr "Nouvelle valeur à définir" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16798,6 +16842,10 @@ msgstr "Modèle d'email pour l'action suivante" msgid "Next Actions HTML" msgstr "HTML pour les actions suivantes" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16865,8 +16913,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16902,7 +16950,7 @@ msgid "No Copy" msgstr "Aucune Copie" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17042,7 +17090,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "Aucune alerte pour aujourd'hui" @@ -17082,6 +17130,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "Aucun contact lié au document" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "Aucune donnée à exporter" @@ -17102,7 +17154,7 @@ msgstr "Aucun compte de messagerie associé à l'utilisateur. Veuillez ajout msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17165,7 +17217,7 @@ msgstr "Nb de lignes (Max 500)" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "Pas d'autorisation pour {0}" @@ -17202,7 +17254,7 @@ msgstr "Aucun enregistrement ne sera exporté" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17343,8 +17395,8 @@ msgstr "" msgid "Not Published" msgstr "Non Publié" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17397,7 +17449,7 @@ msgstr "Non actif" msgid "Not allowed for {0}: {1}" msgstr "Non autorisé pour {0}: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "Vous n'êtes pas autorisé à joindre un document {0}, veuillez activer Autoriser l'impression pour {0} dans les paramètres d'impression" @@ -17429,7 +17481,7 @@ msgstr "Pas en Mode Développeur" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "Pas en Mode Développeur! Configurez le dans site_config.json ou créez un DocType 'Custom'." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17552,15 +17604,15 @@ msgstr "Document souscrit à la notification" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17674,7 +17726,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17783,14 +17835,30 @@ msgstr "Application OTP" msgid "OTP Issuer Name" msgstr "Nom de l'Émetteur OTP" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "OTP Secret a été réinitialisé. Une nouvelle inscription sera requise lors de la prochaine connexion." +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17906,7 +17974,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17966,7 +18034,7 @@ msgstr "Code de Mot de Passe Unique (OTP) à partir de {}" msgid "One of" msgstr "Un des" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "Seuls 200 inserts autorisés dans une requête" @@ -18004,7 +18072,7 @@ msgstr "Envoyer Uniquement les Enregistrements Mis à Jour au cours des X Derni msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18184,7 +18252,7 @@ msgstr "Ouvert" msgid "Operation" msgstr "Opération" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "L'Opérateur doit être parmi {0}" @@ -18686,7 +18754,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18858,6 +18926,10 @@ msgstr "Chemin d'accès au certificat de serveur" msgid "Path to private Key File" msgstr "Chemin vers le fichier de clé privée" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19182,7 +19254,7 @@ msgstr "Veuillez définir le graphique" msgid "Please Update SMS Settings" msgstr "Veuillez mettre à Jour les paramètres de SMS" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "S'il vous plaît ajouter un sujet à votre email" @@ -19234,7 +19306,7 @@ msgstr "Vérifiez votre adresse e-mail enregistrée pour obtenir des instruction msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19274,7 +19346,7 @@ msgstr "Veuillez ne pas modifier les sections du modèle." msgid "Please duplicate this to make changes" msgstr "Veuillez créer un duplicata pour faire des changements" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19390,6 +19462,10 @@ msgstr "Veuillez enregistrer le document avant l'affectation" msgid "Please save the document before removing assignment" msgstr "Veuillez enregistrer le document avant de retirer l’affectation" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "Veuillez d’abord enregistrer le rapport" @@ -19406,7 +19482,7 @@ msgstr "Veuillez d’abord sélectionner un DocType" msgid "Please select Entity Type first" msgstr "Veuillez d'abord sélectionner le type d'entité" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "Veuillez sélectionner le Score Minimum du Mot de Passe" @@ -19472,7 +19548,7 @@ msgstr "Veuillez définir un mappage d'imprimante pour ce format d'impre msgid "Please set filters" msgstr "Veuillez définir des filtres" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "Veuillez définir la valeur des filtres dans le Tableau des Filtres de Rapport." @@ -19488,11 +19564,11 @@ msgstr "Veuillez d'abord définir les documents suivants dans ce tableau de msgid "Please set the series to be used." msgstr "Veuillez définir la série à utiliser." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "Veuillez configurer les SMS avant de les choisir comme méthode d'authentification" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "Veuillez d'abord configurer un message" @@ -19512,23 +19588,27 @@ msgstr "Veuillez spécifier" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "Veuillez spécifier quel champ Date doit être vérifié" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "Veuillez indiquer quel champ de valeur doit être vérifiée" @@ -19715,7 +19795,7 @@ msgstr "" msgid "Preparing Report" msgstr "Rapport de préparation" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19736,7 +19816,7 @@ msgstr "Appuyez sur Entrée pour enregistrer" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19790,6 +19870,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Précedent" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19839,8 +19923,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19953,7 +20037,7 @@ msgstr "Cacher à l'Impression" msgid "Print Hide If No Value" msgstr "Cacher à l’Impression si Aucune Valeur" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "Langue d’Impression" @@ -19968,10 +20052,8 @@ msgid "Print Server" msgstr "Serveur d'imprimante" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20593,7 +20675,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20604,7 +20686,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20843,12 +20925,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "Le serveur de cache Redis ne fonctionne pas. Veuillez contacter l'administrateur / le support technique" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "Refaire l'action" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "Refaire l'action précédente" @@ -21161,7 +21243,7 @@ msgstr "Reconnecté" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Recharger" @@ -21192,7 +21274,7 @@ msgstr "Se Souvenir de la Dernière Valeur Sélectionnée" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "Me le rappeler" @@ -21272,9 +21354,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21302,7 +21384,7 @@ msgstr "" msgid "Reopen" msgstr "Ré-ouvrir" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "Répéter" @@ -21552,7 +21634,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21746,7 +21828,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "Réinitialiser le Secret OTP" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21902,7 +21984,7 @@ msgid "Resume Sending" msgstr "Reprendre l’Envoi" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22224,7 +22306,7 @@ msgstr "" msgid "Row Name" msgstr "Nom de la ligne" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22232,7 +22314,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22457,7 +22539,7 @@ msgid "Saturday" msgstr "Samedi" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22513,13 +22595,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "Enregistré" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22561,7 +22643,7 @@ msgstr "Veuillez scanner le QR Code et entrer le code que vous recevez." msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22625,7 +22707,7 @@ msgstr "" msgid "Scheduler Event" msgstr "Événement du planificateur" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "Planificateur inactif" @@ -22638,7 +22720,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "Le planificateur est inactif. Impossible d'importer des données." @@ -22939,8 +23021,8 @@ msgstr "Sélectionner" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -23006,7 +23088,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "Sélectionner un champ" @@ -23080,7 +23162,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Sélectionner le Format d'Impression" @@ -23294,7 +23376,7 @@ msgstr "Envoyer Maintenant" msgid "Send Print as PDF" msgstr "Envoyer Imprimer en PDF" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "Envoyer Accusé de Réception" @@ -23353,11 +23435,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "Envoyer une demande à cette adresse courriel" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "M'Envoyer Une Copie" @@ -23581,7 +23663,7 @@ msgstr "La Session a Expiré" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "Expiration de Session doit être au format {0}" @@ -23626,7 +23708,7 @@ msgstr "Définir des filtres dynamiques" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "Définir les filtres" @@ -23998,7 +24080,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -24050,7 +24132,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "Afficher les Sauts de Ligne après Sections" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24125,7 +24207,7 @@ msgstr "Afficher la Barre Latérale" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "Voir les étiquettes" @@ -24151,7 +24233,7 @@ msgstr "Afficher les Totaux" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24231,8 +24313,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "Montrer plus de détails" @@ -24420,7 +24502,7 @@ msgstr "Saut de colonne sans titre" msgid "Skipping column {0}" msgstr "Colonne ignorée {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24816,7 +24898,7 @@ msgstr "Date de Début" msgid "Start Date Field" msgstr "Date de début" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "Démarrer l'import" @@ -24950,7 +25032,7 @@ msgstr "Intervalle de temps des statistiques" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25117,9 +25199,9 @@ msgstr "Sous-domaine" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Sujet" @@ -25263,12 +25345,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25328,11 +25410,11 @@ msgstr "Succès : {0} au {1}" msgid "Successfully Updated" msgstr "Mis à Jour avec Succès" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25348,11 +25430,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "Traductions mises à jour avec succès" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25487,7 +25569,7 @@ msgstr "Synchronisation" msgid "Syncing {0} of {1}" msgstr "Synchroniser {0} sur {1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25798,7 +25880,7 @@ msgstr "Tableau MultiSelect" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "Table Mise à Jour" @@ -26013,7 +26095,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "La répétition automatique de ce document a été désactivée." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "Le format CSV est sensible à la casse" @@ -26024,7 +26106,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "La Condition '{0}' est invalide" @@ -26271,7 +26353,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26323,7 +26405,7 @@ msgstr "Il y a eu des erreurs" msgid "There were errors while creating the document. Please try again." msgstr "Il y avait des erreurs lors de la création du document. Veuillez réessayer." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "Il y a eu des erreurs lors de l'envoi d’emails. Veuillez essayer à nouveau." @@ -26400,7 +26482,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "Cette action n'est autorisée que pour {}" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "Ça ne peut pas être annulé" @@ -26629,6 +26711,8 @@ msgstr "Cela supprimera définitivement vos données." msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -27698,15 +27782,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "Inchangé" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "Annuler l'action" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "Annuler l'action précédente" @@ -27715,7 +27799,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "Se désabonner" @@ -27753,7 +27837,7 @@ msgstr "Inconnu" msgid "Unknown Column: {0}" msgstr "Colonne Inconnue : {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27981,7 +28065,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28627,7 +28711,7 @@ msgstr "Validité" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Valeur" @@ -28705,7 +28789,7 @@ msgstr "Valeur trop grande" msgid "Value {0} missing for {1}" msgstr "Valeur {0} manquante pour {1}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "La valeur {0} doit être au format de durée valide: dhms" @@ -28727,7 +28811,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28785,7 +28869,7 @@ msgstr "" msgid "View All" msgstr "Tout voir" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29751,9 +29835,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29848,7 +29932,7 @@ msgstr "Vous n'êtes pas autorisé à exporter {} doctype" msgid "You are not allowed to print this report" msgstr "Vous n'êtes pas autorisé à imprimer ce rapport" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "Vous n'êtes pas autorisé à envoyer un email en relation avec ce document" @@ -30036,7 +30120,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -30096,7 +30180,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30205,7 +30289,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30379,7 +30463,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "Zéro" @@ -30422,7 +30506,7 @@ msgstr "" msgid "amend" msgstr "Nouv. version" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "et" @@ -30709,7 +30793,7 @@ msgstr "liste" msgid "logged in" msgstr "connecté" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -31047,7 +31131,7 @@ msgstr "via importation de données" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "via notification" @@ -31256,7 +31340,7 @@ msgstr "{0} déjà désinscrit" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} déjà désabonné pour {1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} et {1}" @@ -31281,7 +31365,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31594,7 +31678,7 @@ msgstr "Il y a {0} minutes" msgid "{0} months ago" msgstr "Il y a {0} mois" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} doit être après {1}" @@ -31651,12 +31735,12 @@ msgstr "{0} sur {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} sur {1} ({2} lignes avec des enfants)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} ou {1}" @@ -31701,7 +31785,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "" @@ -31980,11 +32064,11 @@ msgstr "{{{0}}} n'est pas un motif de nom de champ valide. Il devrait être {{fi msgid "{} Complete" msgstr "{} Achevée" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/hr.po b/frappe/locale/hr.po index 639410c8b2..aa4e8ea0f4 100644 --- a/frappe/locale/hr.po +++ b/frappe/locale/hr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:49\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Croatian\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "Sinkroniziran je 1 događaj Google Kalendara." msgid "1 Report" msgstr "1 Izvješće" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "prije 1 dan" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 sat" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "prije 1 sat" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "prije 1 minutu" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "prije 1 mjesec" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "1 red do {0}" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "prije 1 sekundu" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "prije 1 tjedan" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "prije 1 godinu" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "prije 2 sata" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "prije 2 mjeseca" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "prije 2 tjedna" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "prije 2 godine" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "prije 3 minute" @@ -232,7 +232,7 @@ msgstr "4 sata" msgid "5 Records" msgstr "5 Zapisa" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "prije 5 dana" @@ -665,7 +665,7 @@ msgstr "

Za interakciju s gornjim HTML-om morat ćete koristiti `root_element` "some_class_element.textContent = \"Novi sadržaj\";\n" "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "

Vaša OTP tajna na {0} je poništena. Ako niste izvršili ovo resetiranje i niste ga zatražili, odmah kontaktirajte svog administratora sustava.

" @@ -1090,7 +1090,7 @@ msgstr "Radnja / Ruta" msgid "Action Complete" msgstr "Radnja Završena" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Radnja Neuspješna" @@ -1227,7 +1227,7 @@ msgstr "Dodaj / Ažuriraj" msgid "Add A New Rule" msgstr "Dodaj Novo Pravilo" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Dodaj Prilog" @@ -1332,7 +1332,7 @@ msgstr "Dodaj Red" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Dodaj Potpis" @@ -1360,7 +1360,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "Dodaj Oznake" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "Dodaj Predložak" @@ -1767,6 +1767,7 @@ msgstr "Poravnaj Vrijednost" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1781,7 +1782,9 @@ msgstr "Poravnaj Vrijednost" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2384,7 +2387,7 @@ msgstr "Naziv Aplikacije" msgid "App Name (Client Name)" msgstr "Naziv Aplikacije (Ime Klijenta)" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "Aplikacija nije pronađena za modul: {0}" @@ -2546,7 +2549,7 @@ msgstr "Jeste li sigurni da želite otkazati pozivnicu?" msgid "Are you sure you want to clear the assignments?" msgstr "Jeste li sigurni da želite izbrisati zadatke?" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "Jeste li sigurni da želite izbrisati sve redove?" @@ -2582,7 +2585,7 @@ msgstr "Jeste li sigurni da želite odbaciti promjene?" msgid "Are you sure you want to generate a new report?" msgstr "Jeste li sigurni da želite generisati novi izvještaj?" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "Jeste li sigurni da želite spojiti {0} sa {1}?" @@ -2828,10 +2831,15 @@ msgstr "Barem jedno polje vrste nadređenog dokumenta je obavezno" msgid "Attach" msgstr "Priloži" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Priloži Ispis Dokumenta" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2914,6 +2922,11 @@ msgstr "Veza Priloga" msgid "Attachment Removed" msgstr "Prilog Uklonjen" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -3091,7 +3104,7 @@ msgstr "Dan Automatskog Ponavljanja{0} {1} je ponovljen." msgid "Auto Repeat Document Creation Failed" msgstr "Automatsko Ponavljanje Kreiranja Dokumenta Neuspješno" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "Raspored Automatskog Ponavljanja" @@ -3325,7 +3338,7 @@ msgstr "B9" msgid "BCC" msgstr "BCC" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "BCC" @@ -3343,7 +3356,7 @@ msgstr "Nazad na Radnu Površinu" msgid "Back to Home" msgstr "Povratak na Početnu" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "Nazad na Prijavu" @@ -3783,7 +3796,7 @@ msgstr "Grupno Brisanje" msgid "Bulk Edit" msgstr "Grupno Uređivanje" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "Grupno uređivanje {0}" @@ -3906,7 +3919,7 @@ msgstr "OTKAZANO" msgid "CC" msgstr "CC" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "CC" @@ -4101,6 +4114,14 @@ msgstr "Otkaži" msgid "Cancel All Documents" msgstr "Otkaži Sve Dokumente" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "Otkaži Uvoz" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "Otkaži Pripremljeno Izvješće" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4138,11 +4159,11 @@ msgstr "Otkazivanje dokumenata u toku" msgid "Cancelling {0}" msgstr "Otkazujem {0}" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "Nije moguće preuzeti izvještaj zbog nedovoljnih dozvola" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "Nije Moguće Preuzeti Vrijednosti" @@ -4245,7 +4266,7 @@ msgstr "Ne može se izbrisati {0} jer ima podređene članove" msgid "Cannot edit Standard Dashboards" msgstr "Nije moguće uređivati Standardne Nadzorne Table" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "Nije moguće uređivati Standardno Obavještenje. Za uređivanje, onemogućite ovo i duplicirajte" @@ -4270,7 +4291,7 @@ msgstr "Nije moguće uređivati filtere za standardne grafikone" msgid "Cannot edit filters for standard number cards" msgstr "Nije moguće uređivati filtere za standardne numeričke kartice" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "Nije moguće uređivati standardna polja" @@ -4290,7 +4311,7 @@ msgstr "Nije moguće dobiti sadržaj mape" msgid "Cannot have multiple printers mapped to a single print format." msgstr "Nije moguće imati više pisača mapiranih u jedan format pisača." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "Nije moguće uvesti tablicu s više od 5000 redaka." @@ -4318,7 +4339,7 @@ msgstr "Nije moguće ukloniti ID polje" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "Ne može se postaviti dopuštenje 'Izvještaj' ako je postavljena dozvola 'Samo ako je Kreator'" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "Nije moguće postaviti Obavijest s događajem {0} za Doctype {1}" @@ -4664,11 +4685,11 @@ msgstr "Grad/Mjesto" msgid "Clear" msgstr "Očisti" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "Očisti & Dodaj Šablon" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "Očisti & Dodaj Šablon" @@ -4702,7 +4723,7 @@ msgstr "Očisti Zapisnike Nakon (dana)" msgid "Clear User Permissions" msgstr "Obriši Korisničke Dozvole" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "Obrišite poruku e-pošte i dodajte šablon" @@ -4755,7 +4776,7 @@ msgstr "Klikni na {0} za generisanje tokena osvježavanja." #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "Klikni na tabelu za uređivanje" @@ -4766,7 +4787,7 @@ msgstr "Klikni da Postavite Dinamičke Filtere" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "Klikni da Postavite Filtere" @@ -4943,7 +4964,7 @@ msgstr "Metoda Kod Izazova" msgid "Collapse" msgstr "Sklopi" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Sklopi" @@ -5067,7 +5088,7 @@ msgstr "Širina Kolone" msgid "Column width cannot be zero." msgstr "Širina kolone ne može biti nula." -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "Kolona {0}" @@ -5310,7 +5331,7 @@ msgstr "Komprimirano" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "Uslov" @@ -5649,7 +5670,7 @@ msgstr "Kopiraj ugrađen kod" msgid "Copy error to clipboard" msgstr "Greška pri kopiranju u međuspremnik" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "Kopiraj u Međuspremnik" @@ -6260,13 +6281,13 @@ msgstr "Prilagođavanja Odbačena" msgid "Customizations Reset" msgstr "Poništi Prilagođavanja" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "Prilagođavanja za {0} eksportirana u:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Prilagodi" @@ -6919,7 +6940,7 @@ msgstr "Odgođeno" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7272,7 +7293,7 @@ msgstr "Ikona Radne Površine već postoji" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "Detalji" @@ -7428,7 +7449,7 @@ msgstr "Onemogućeno" msgid "Disabled Auto Reply" msgstr "Automatski Odgovor Onemogućen" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7517,7 +7538,7 @@ msgstr "Nemoj kreirati novog korisnika" msgid "Do not create new user if user with email does not exist in the system" msgstr "Ne kreiraj novog korisnika ako korisnik sa e-poštom ne postoji u sistemu" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "Ne uređiuji zaglavlja koja su unaprijed postavljena u šablonu" @@ -7682,7 +7703,7 @@ msgstr "DocType je Tabela / Obrazac u aplikaciji." msgid "DocType must be Submittable for the selected Doc Event" msgstr "DocType mora imati mogućnost podnošenja za odabrani Događaj Dokumenta" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "DocType mora biti niz" @@ -7703,11 +7724,11 @@ msgstr "DocType na koji je ovaj Radni Tok primjenjiv." msgid "DocType required" msgstr "DocType Obavezan" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "DocType {0} ne postoji." -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "DocType {} nije pronađen" @@ -7818,7 +7839,7 @@ msgstr "Veze Dokumenta Red #{0}: Naziv polja tabele je obavezan za interne veze" msgid "Document Name" msgstr "Naziv Dokumenta" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "Naziv Dokumenta mora biti niz" @@ -7994,7 +8015,7 @@ msgid "Document Types and Permissions" msgstr "Tipovi Dokumenata i Dozvole" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "Dokument Otključan" @@ -8022,11 +8043,11 @@ msgstr "Dokument mogu uređivati samo korisnici sa ulogom" msgid "Document not Relinked" msgstr "Dokument nije ponovo povezan" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "Dokument je preimenovan iz {0} u {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "Preimenovanje dokumenta iz {0} u {1} je stavljeno u red čekanja" @@ -8042,7 +8063,7 @@ msgstr "Dokument {0} je već obnovljen" msgid "Document {0} has been set to state {1} by {2}" msgstr "Dokument {0} je postavljen na stanje {1} od {2}" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "Dokument {0} {1} ne postoji" @@ -8269,7 +8290,7 @@ msgid "Due Date Based On" msgstr "Krajnji Rok na osnovu" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Kopiraj" @@ -8384,7 +8405,7 @@ msgstr "ESC" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8433,7 +8454,7 @@ msgstr "Uredi Prilagođeni Blok" msgid "Edit Custom HTML" msgstr "Uredi Prilagođeni HTML" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "Uredi DocType" @@ -8618,7 +8639,7 @@ msgstr "Birač Elementa" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8677,7 +8698,7 @@ msgstr "Račun e-pošte {0} Onemogućen" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "Adresa e-pošte" @@ -8827,7 +8848,7 @@ msgstr "Opcija Sinhronizacije e-pošte" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "Šablon e-pošte" @@ -8859,7 +8880,7 @@ msgstr "E-pošta je premještena u smeće" msgid "Email is mandatory to create User Email" msgstr "E-pošta je obavezna za kreiranje korisničke e-pošte" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "E-pošta nije poslana na {0} (otkazana / onemogućena)" @@ -9056,7 +9077,7 @@ msgstr "Omogućite Praćenje Prikaza Stranica" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "Omogući Dvofaktorsku Autentifikaciju" @@ -9230,7 +9251,7 @@ msgstr "Unesi Id klijenta i Tajnu klijenta u Google Postavke." msgid "Enter Code displayed in OTP App." msgstr "Unesi kod prikazan u OTP aplikaciji." -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "Unesi Primaoca(e) e-pošte" @@ -9368,9 +9389,9 @@ msgstr "Greška u Klijent Skripti." msgid "Error in Header/Footer Script" msgstr "Greška Skripte Zaglavlja/Podnožja" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "Greška u Obavještenju" @@ -9390,7 +9411,7 @@ msgstr "Pogreška pri parsiranju ugniježđenih filtera: {0}" msgid "Error while connecting to email account {0}" msgstr "Greška prilikom povezivanja na račun e-pošte {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "Greška prilikom evaluacije Obavještenja {0}. Popravite vaš šablon." @@ -9572,7 +9593,7 @@ msgstr "Postojeća Uloga" msgid "Expand" msgstr "Proširi" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Proširi" @@ -9669,7 +9690,7 @@ msgstr "Eksportiraj Prilagodbe" msgid "Export Data" msgstr "Izvezi Podatke" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "Izvezi Redove s Greškom" @@ -9679,7 +9700,7 @@ msgstr "Izvezi Redove s Greškom" msgid "Export From" msgstr "Eksportiraj iz" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "Izvezi Zapisnik Importa" @@ -9855,7 +9876,7 @@ msgstr "Brisanje {0} dokumenata nije uspjelo: {1}" msgid "Failed to enable scheduler: {0}" msgstr "Omogućavanje Raspoređivača nije uspjelo: {0}" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "Procjena uslova nije uspjela: {}" @@ -9892,11 +9913,11 @@ msgstr "Uvoz virtuelnog doctypa {} nije uspio, je li prisutna datoteka kontroler msgid "Failed to optimize image: {0}" msgstr "Optimizacija slike nije uspjela: {0}" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "Nije uspjelo prikazivanje poruke: {}" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "Nije uspjelo prikazivanje predmeta: {}" @@ -9926,7 +9947,7 @@ msgstr "Nije uspjelo pri pozivanju API {0}" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "Neuspjeli Zakazani Poslovi (zadnjih 7 dana)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "Neuspjeh" @@ -9986,6 +10007,10 @@ msgstr "Preuzmi na Spremi ako je Prazno" msgid "Fetching default Global Search documents." msgstr "Preuzimaju se standard Dokumenata Globalnog Pretraživanja." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "Preuzimanje polja iz {0}..." + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -10090,7 +10115,7 @@ msgstr "Polje {0} mora biti virtualno polje kako bi podržalo virtualni doctype. msgid "Field {0} not found." msgstr "Polje {0} nije pronađeno." -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "Polje {0} u dokumentu {1} nije ni polje za broj Mobilnog Telefona niti veza za Klijenta ili Korisnika" @@ -10323,7 +10348,7 @@ msgstr "Datoteke" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "Filter" @@ -10583,7 +10608,7 @@ msgid "Folio" msgstr "Folio" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "Prati" @@ -10591,7 +10616,7 @@ msgstr "Prati" msgid "Followed by" msgstr "Praćen od" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "Sljedeći Filteri Izvještaja nemaju vrijednosti:" @@ -11056,11 +11081,16 @@ msgstr "Petak" msgid "From" msgstr "Od" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "Od" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -11076,6 +11106,11 @@ msgstr "Od Datuma" msgid "From Document Type" msgstr "Od Dokumenta" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11237,7 +11272,7 @@ msgstr "Geolokacija" msgid "Geolocation Settings" msgstr "Geolokacijske Postavke" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "Preuzmi Današnja Upozorenja" @@ -11329,7 +11364,7 @@ msgstr "Globalne Prečice" msgid "Global Unsubscribe" msgstr "Globalno Otkazivanje Pretplate" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "Idi" @@ -11377,7 +11412,7 @@ msgstr "Idi na ovaj URL nakon popunjavanja forme" msgid "Go to {0}" msgstr "Idi na {0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -12074,7 +12109,7 @@ msgstr "Sakrij Vikende" msgid "Hide descendant records of For Value." msgstr "Sakrij podređene zapise Za Vrijednost." -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "Sakrij Detalje" @@ -12757,11 +12792,11 @@ msgstr "Šablon za Uvoz treba biti tipa .csv, .xlsx ili .xls" msgid "Import template should contain a Header and atleast one row." msgstr "Šablon za Uvoz treba da sadrži Zaglavlje i najmanje jedan red." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "Uvoz je istekao, pokušaj ponovo." -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "Uvoz {0} nije dozvoljen." @@ -13264,7 +13299,7 @@ msgstr "Nevažeći" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "Nevažeći izraz \"depends_on\"" @@ -13358,6 +13393,8 @@ msgstr "Nevažeći Server Pošte. Ispravi i pokušaj ponovo." msgid "Invalid Naming Series: {}" msgstr "Nevažeća Serija Imenovanja: {}" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13372,7 +13409,7 @@ msgstr "Nevažeća Opcija" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "Nevažeći Server Odlazne Pošte ili port: {0}" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "Nevažeći Izlazni Format" @@ -13494,7 +13531,7 @@ msgstr "Nevažeći format polja u {0}: {1}. Koristi 'field', 'link_field.field' msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "Nevažeći naziv polja u funkciji: {0}. Dopušteni su samo jednostavni nazivi polja." -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "Nevažeći naziv polja {0}" @@ -14029,6 +14066,7 @@ msgstr "Naziv Posla" msgid "Job Status" msgstr "Status Posla" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "Posao Uspješno Zaustavljen" @@ -14037,16 +14075,22 @@ msgstr "Posao Uspješno Zaustavljen" msgid "Job is in {0} state and can't be cancelled" msgstr "Posao je u {0} stanju i ne može se otkazati" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "Posao se ne izvodi." +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "Posao je uspješno zaustavljen" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "Pridruži se video konferenciji sa {0}" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "Skoči na polje" @@ -15098,7 +15142,7 @@ msgstr "Učitava se" msgid "Loading Filters..." msgstr "Učitavanje Filtera u toku..." -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "Učitavanje datoteke za uvoz..." @@ -15233,7 +15277,7 @@ msgstr "Kod Potvrdu Prijave od {}" msgid "Login and view in Browser" msgstr "Prijavi se i pregledaj u Pretraživaču" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "Prijava je potrebna da biste vidjeli pregled liste web forme. Omogući {0} da vidite postavke liste" @@ -15270,7 +15314,7 @@ msgstr "Prijavi se na {0}" msgid "Login token required" msgstr "Token je obavezan za prijavu" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "Prijavi se putem e-mail veze" @@ -15740,7 +15784,7 @@ msgstr "Srednje" msgid "Meeting" msgstr "Sastanak" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "Ispunjava uslove?" @@ -15776,7 +15820,7 @@ msgstr "Spominjanja" msgid "Menu" msgstr "Meni" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Spoji sa postojećim" @@ -15801,16 +15845,16 @@ msgstr "Spajanje je moguće samo između Grupe na Grupe ili podređeni na podre #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15847,7 +15891,7 @@ msgstr "Poruka Poslata" msgid "Message Type" msgstr "Tip Poruke" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "Poruka je isječena" @@ -15855,7 +15899,7 @@ msgstr "Poruka je isječena" msgid "Message from server: {0}" msgstr "Poruka sa servera: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "Poruka nije postavljena" @@ -16041,7 +16085,7 @@ msgstr "Nedostaje Polje" msgid "Missing Fields" msgstr "Nedostajuća Polja" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "Obavezni Nedostajući Filteri" @@ -16176,7 +16220,7 @@ msgstr "Profil Modula" msgid "Module Profile Name" msgstr "Naziv Profila Modula" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "Poništavanje introdukcijskog progresa modula" @@ -16184,7 +16228,7 @@ msgstr "Poništavanje introdukcijskog progresa modula" msgid "Module to Export" msgstr "Modul za Izvoz" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "Modul {} nije pronađen" @@ -16700,7 +16744,7 @@ msgstr "Nova Pruka sa Kontaktne Web Stranice" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "Novo Ime" @@ -16804,10 +16848,10 @@ msgid "New value to be set" msgstr "Nova vrijednost koju treba postaviti" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16892,6 +16936,10 @@ msgstr "Šablon Sljedeće Akcije e-pošte" msgid "Next Actions HTML" msgstr "HTML Sljedeće Akcije" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "Sljedeći dokument" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16959,8 +17007,8 @@ msgstr "Dalje na klik" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16996,7 +17044,7 @@ msgid "No Copy" msgstr "Ne Kopiraj" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17136,7 +17184,7 @@ msgstr "Nema Nadolazećih Događaja" msgid "No address added yet." msgstr "Adresa još nije dodana." -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "Nema upozorenja za danas" @@ -17176,6 +17224,10 @@ msgstr "Još nema dodanih kontakata." msgid "No contacts linked to document" msgstr "Nema kontakata povezanih s dokumentom" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "Nema polja za valutu u {0}" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "Nema podataka za izvoz" @@ -17196,7 +17248,7 @@ msgstr "Nijedan račun e-pošte nije povezan s korisnikom. Dodajte račun pod Ko msgid "No email addresses to invite" msgstr "Nema adresa e-pošte za pozivnice" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "Nema neuspjelih zapisa" @@ -17259,7 +17311,7 @@ msgstr "Broj Redova (Max. 500)" msgid "No of Sent SMS" msgstr "Broj Poslanih SMS-ova" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "Nema dozvole za {0}" @@ -17296,7 +17348,7 @@ msgstr "Nijedan zapis neće biti izvezen" msgid "No rows" msgstr "Nema redova" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "Nema predmeta" @@ -17437,8 +17489,8 @@ msgstr "Nije Dozvoljeno čitati {0}" msgid "Not Published" msgstr "Nije Objavljeno" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17491,7 +17543,7 @@ msgstr "Nije aktivno" msgid "Not allowed for {0}: {1}" msgstr "Nije dozvoljeno za {0}: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "Nije dozvoljeno priložiti {0} dokument, omogući Dozvoli Ispis za {0} u Postavkama Ispisa" @@ -17523,7 +17575,7 @@ msgstr "Nije u načinu rada za programere" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "Nije u načinu rada za programere! Postavi u site_config.json ili napravi 'Prilagođen' DocType." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17646,15 +17698,15 @@ msgstr "Obavijest Pretplaćeni Dokument" msgid "Notification sent to" msgstr "Obavještenje je poslano za" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "Obavještenje: klijent {0} nema postavljen broj mobilnog telefona" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "Obavještenje: dokument {0} nema postavljen broj {1} (polje: {2})" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "Obavještenje: korisnik {0} nema postavljen broj mobilnog telefona" @@ -17768,7 +17820,7 @@ msgstr "Broj Upita" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "Broj polja priloga je veći od {}, ograničenje je ažurirano na {}." -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "Broj Sigurnosnih Kopija mora biti veći od nule." @@ -17877,14 +17929,30 @@ msgstr "OTP Aplikacija" msgid "OTP Issuer Name" msgstr "Naziv OTP Izdavaoca" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "OTP Poništavanje Tajne - {0}" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "OTP Tajna je resetovana. Ponovna registracija će biti potrebna prilikom sljedeće prijave." +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "Postavljanje OTP pomoću OTP Aplikacije nije završeno. Kontaktiraj Administratora." @@ -18000,7 +18068,7 @@ msgstr "Na ili Poslije" msgid "On or Before" msgstr "Na ili Prije" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "{0}, {1} je napisao:" @@ -18060,7 +18128,7 @@ msgstr "Jednokratna Lozinka (OTP) registracijski kod od {}" msgid "One of" msgstr "Jedan od" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "Dozvoljeno je samo 200 umetanja u jednom zahtjevu" @@ -18098,7 +18166,7 @@ msgstr "Pošalji Zapise Ažurirane u Posljednjih X Sati" msgid "Only Workspace Manager can edit public workspaces" msgstr "Samo Upravitelj Radnog Prostorar može uređivati javne radne prostore" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "Dozvoljeno je izvoziti prilagođavanja samo u načinu rada za programere" @@ -18278,7 +18346,7 @@ msgstr "Otvoreno" msgid "Operation" msgstr "Operacija" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "Operator mora biti jedan od {0}" @@ -18780,7 +18848,7 @@ msgstr "Nadređeni-Podređeni ili Podređeni-Drugi Podrđeni nije dopušteno." msgid "Parentfield not specified in {0}: {1}" msgstr "Nadređeno polje nije navedeno u {0}: {1}" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "Za umetanje podređenog zapisa potrebni su nadređeni tip, nadređeni i nadređeno polje" @@ -18952,6 +19020,10 @@ msgstr "Put do Certifikata Servera" msgid "Path to private Key File" msgstr "Put do Datoteke Privatnog Ključa" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "Put {0} nije važeći put" @@ -19276,7 +19348,7 @@ msgstr "Postavi Grafikon" msgid "Please Update SMS Settings" msgstr "Ažuriraj SMS Postavke" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "Dodaj predmet e-pošti" @@ -19328,7 +19400,7 @@ msgstr "Provjeri registrovanu adresu e-pošte za upute kako postupiti. Ne zatvar msgid "Please click Edit on the Workspace for best results" msgstr "Kliknite Uredi na radnom prostoru za najbolje rezultate" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "Klikni na 'Izvezi Redove s Greškom', popravi greške i ponovo uvezi." @@ -19368,7 +19440,7 @@ msgstr "Ne mijenjaj Naslove Predložaka." msgid "Please duplicate this to make changes" msgstr "Kopiraj ovo da izvršite promjene" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "Omogući barem jedan ključ za prijavu na društvenim mrežama ili LDAP ili se prijavite putem veze e-pošte prije nego što onemogućite prijavu zasnovanu na korisničkom imenu/lozinki." @@ -19484,6 +19556,10 @@ msgstr "Spremi dokument prije dodjele" msgid "Please save the document before removing assignment" msgstr "Spremi dokument prije uklanjanja dodjele" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "Prvo spremi izvještaj" @@ -19500,7 +19576,7 @@ msgstr "Odaberi DocType" msgid "Please select Entity Type first" msgstr "Odaberi Tip Entiteta" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "Odaberi Minimalnu Vrijednost Lozinke" @@ -19566,7 +19642,7 @@ msgstr "Podesite mapiranje pisača za ovaj format ispisivanja u postavkama pisa msgid "Please set filters" msgstr "Postavi filtere" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "Postavi vrijednost filtera u tabeli Filter Izvještaja." @@ -19582,11 +19658,11 @@ msgstr "Postavite sljedeće dokumente na ovoj Nadzornoj Tabli kao standardne." msgid "Please set the series to be used." msgstr "Postavi seriju imenovanja koja će se koristiti." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "Podesite SMS prije nego što ga postavite kao metodu provjere autentičnosti, putem SMS Postavki" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "Postavi Poruku" @@ -19606,23 +19682,27 @@ msgstr "Navedi" msgid "Please specify a valid parent DocType for {0}" msgstr "Navedi važeći nadređeni DocType za {0}" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "Navedi najmanje 10 minuta zbog ritma okidača raspoređivača" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "Molimo navedite pomak minuta" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "Navedi koje polje datuma mora biti označeno" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "Navedi koje polje datuma i vremena mora biti označeno" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "Navedi koje polje vrijednosti mora biti označeno" @@ -19809,7 +19889,7 @@ msgstr "Generisanje Pripremljenog Izvještaja nije uspjelo" msgid "Preparing Report" msgstr "Priprema Izvještaja" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "Priloži šablon poruci e-pošte" @@ -19830,7 +19910,7 @@ msgstr "Pritisni Enter da spremite" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19884,6 +19964,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Prethodna" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "Prethodni dokument" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "Prethodno Podnošenje" @@ -19933,8 +20017,8 @@ msgstr "Primarni ključ tipa dokumenta {0} ne može se promijeniti jer postoje p #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -20047,7 +20131,7 @@ msgstr "Sakrij" msgid "Print Hide If No Value" msgstr "Sakrij ispis ako nema vrijednost" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "Jezik Ispisa" @@ -20062,10 +20146,8 @@ msgid "Print Server" msgstr "Ispisni Server" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20687,7 +20769,7 @@ msgstr "Od:" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "Od: {0}" @@ -20698,7 +20780,7 @@ msgstr "Od: {0}" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20937,12 +21019,12 @@ msgstr "Preusmjeravanja" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "Redis server ne radi. Kontaktiraj Administratora/Tehničku podršku" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "Ponovi" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "Ponovi posljednju radnju" @@ -21255,7 +21337,7 @@ msgstr "Ponovno povezano" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Ponovo Učitaj" @@ -21286,7 +21368,7 @@ msgstr "Zapamti Posljednju Odabranu Vrijednost" msgid "Remind At" msgstr "Podsjeti" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "Podsjeti Me" @@ -21366,9 +21448,9 @@ msgid "Removed" msgstr "Uklonjeno" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21396,7 +21478,7 @@ msgstr "Prikaži oznake lijevo i vrijednosti desno u ovom odjeljku" msgid "Reopen" msgstr "Ponovo otvori" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "Ponovi" @@ -21646,7 +21728,7 @@ msgstr "Izvještaj je pokrenut, klikni da vidite status" msgid "Report limit reached" msgstr "Granica Izvještaja Dostignuta" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "Izvještaj je istekao." @@ -21840,7 +21922,7 @@ msgstr "Poništi Izgled" msgid "Reset OTP Secret" msgstr "Poništi OTP Tajnu" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21996,7 +22078,7 @@ msgid "Resume Sending" msgstr "Nastavi Slanje" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22318,7 +22400,7 @@ msgstr "Indeksi Reda" msgid "Row Name" msgstr "Naziv Reda" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "Broj Reda" @@ -22326,7 +22408,7 @@ msgstr "Broj Reda" msgid "Row Values Changed" msgstr "Vrijednosti Reda Promijenjene" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "Red {0}" @@ -22551,7 +22633,7 @@ msgid "Saturday" msgstr "Subota" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22607,13 +22689,13 @@ msgstr "Spremi dokument." #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "Spremljeno" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "Spremjeni Filteri" @@ -22655,7 +22737,7 @@ msgstr "Skenirajte QR Kod i unesi prikazani rezultirajući kod." msgid "Schedule" msgstr "Raspored" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "Raspored Slanja" @@ -22719,7 +22801,7 @@ msgstr "Raspoređivač" msgid "Scheduler Event" msgstr "Događaj Raspoređivača" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "Raspoređivač Neaktivan" @@ -22732,7 +22814,7 @@ msgstr "Status Raspoređivača" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "Raspoređivač se ne može ponovno omogućiti kada je aktivan način rada za održavanje." -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "Raspoređivač je neaktivan. Nije moguće uvesti podatke." @@ -23033,8 +23115,8 @@ msgstr "Odaberi" msgid "Select All" msgstr "Odaberi sve" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -23100,7 +23182,7 @@ msgstr "Odaberi Tipove Dokumenata da postavite koje se korisničke dozvole koris #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "Odaberi Polje" @@ -23174,7 +23256,7 @@ msgid "Select Page" msgstr "Odaberi Stranicu" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Odaberi Ispis Format" @@ -23388,7 +23470,7 @@ msgstr "Pošalji Sad" msgid "Send Print as PDF" msgstr "Pošalji Ispis kao PDF" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "Pošalji Potvrdu o Čitanju" @@ -23447,11 +23529,11 @@ msgstr "Pošalji e-poštu kada dokument prijeđe u stanje." msgid "Send enquiries to this email address" msgstr "Pošaljite upite na ovu adresu e-pošte" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "Pošalji Vezu Prijave" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "Pošalji Mi Kopiju" @@ -23675,7 +23757,7 @@ msgstr "Sesija Istekla" msgid "Session Expiry (idle timeout)" msgstr "Istek Sesije (vremensko ograničenje mirovanja)" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "Istek Sesije mora biti u formatu {0}" @@ -23720,7 +23802,7 @@ msgstr "Postavi Dinamičke Filtere" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "Postavi Filtere" @@ -24116,7 +24198,7 @@ msgstr "Prikaži Grešku" msgid "Show External Link Warning" msgstr "Prikaži upozorenje o vanjskoj poveznici" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "Prikaži Naziv Polja (klikni da kopirate u međuspremnik)" @@ -24168,7 +24250,7 @@ msgstr "Prikaži Birač Jezika" msgid "Show Line Breaks after Sections" msgstr "Prikaži Prijelome Reda nakon Sekcije" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "Prikaži Veze" @@ -24243,7 +24325,7 @@ msgstr "Prikaži Bočnu Traku" msgid "Show Social Login Key as Authorization Server" msgstr "Prikaži ključ za društvenu prijavu kao autorizacijski poslužitelj" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "Prikaži Oznake" @@ -24269,7 +24351,7 @@ msgstr "Prikaži Ukupno" msgid "Show Tour" msgstr "Prikaži Introdukciju" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "Prikaži Povratno Praćenje" @@ -24349,8 +24431,8 @@ msgstr "Prikaži vezu do dokumenta" msgid "Show list" msgstr "Prikaži listu" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "Prikaži više detalja" @@ -24538,7 +24620,7 @@ msgstr "Preskače se Kolona bez Naziva" msgid "Skipping column {0}" msgstr "Preskače se kolona {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "Preskače se sinhronizacija fiksiranja za tip dokumenta {0} iz datoteke {1}" @@ -24934,7 +25016,7 @@ msgstr "Datum Početka" msgid "Start Date Field" msgstr "Datum Početka" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "Počni Uvoz" @@ -25068,7 +25150,7 @@ msgstr "Vremenski Interval Statistike" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25235,9 +25317,9 @@ msgstr "Poddomena" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Predmet" @@ -25381,12 +25463,12 @@ msgstr "Podnaziv" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25446,11 +25528,11 @@ msgstr "Uspješno: {0} do {1}" msgid "Successfully Updated" msgstr "Uspješno Ažurirano" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "Uspješno uvezeno {0}" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "Uspješno uvezeno {0} od {1} zapisa." @@ -25466,11 +25548,11 @@ msgstr "Odjavljen/a" msgid "Successfully updated translations" msgstr "Uspješno ažurirani prijevodi" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "Uspješno ažurirano {0}" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "Uspješno ažurirano {0} od {1} zapisa." @@ -25605,7 +25687,7 @@ msgstr "Sinhronizacija u toku" msgid "Syncing {0} of {1}" msgstr "Sinhronizira se {0} od {1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "Greška Sintakse" @@ -25916,7 +25998,7 @@ msgstr "Višestruki Odabir Tabele" msgid "Table Trimmed" msgstr "Tabela Optimizirana" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "Tabela Ažurirana" @@ -26133,7 +26215,7 @@ msgstr "Hvala" msgid "The Auto Repeat for this document has been disabled." msgstr "Automatsko Ponavljanje za ovaj dokument je onemogućeno." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "CSV format razlikuje velika i mala slova" @@ -26146,7 +26228,7 @@ msgstr "ID klijenta dobijen sa Google Cloud Console pod
" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "Uvjet '{0}' je nevažeći" @@ -26397,7 +26479,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "U redu čekanja već postoji {0} s istim filterima:" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "U Web Formi može postojati samo 9 polja Prijeloma Stranice" @@ -26449,7 +26531,7 @@ msgstr "Bilo je grešaka" msgid "There were errors while creating the document. Please try again." msgstr "Bilo je grešaka prilikom kreiranja dokumenta. Molimo pokušajte ponovo." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "Bilo je grešaka prilikom slanja e-pošte. Molimo pokušajte ponovo." @@ -26526,7 +26608,7 @@ msgstr "Ova radnja je nepovratna. Da li želite da nastavite?" msgid "This action is only allowed for {}" msgstr "Ova radnja je dozvoljena samo za {}" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "Ovo se ne može poništiti" @@ -26759,6 +26841,8 @@ msgstr "Ovo će trajno ukloniti vaše podatke." msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "Ovo će poništiti ovu introdukciju i prikazati ga svim korisnicima. Jeste li sigurni?" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Ovo će odmah prekinuti posao i može biti opasno, jeste li sigurni?" @@ -27835,15 +27919,15 @@ msgstr "Poništi dodjelu uslova" msgid "Uncaught Exception" msgstr "Neuhvaćena Iznimka" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "Nepromijenjeno" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "Poništi" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "Poništi posljednju radnju" @@ -27852,7 +27936,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "Neizbjegnuti navodnici u nizu: {0}" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "Prestani Pratiti" @@ -27892,7 +27976,7 @@ msgstr "Nepoznato" msgid "Unknown Column: {0}" msgstr "Nepoznata Kolona: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "Nepoznata Metoda Zaokruživanja: {}" @@ -28120,7 +28204,7 @@ msgstr "Ažuriraju se globalne postavke" msgid "Updating naming series options" msgstr "Ažuriraju se opcije imenovanja serije" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "Ažuriraju se povezana polja..." @@ -28766,7 +28850,7 @@ msgstr "Validnost" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Vrijednost" @@ -28844,7 +28928,7 @@ msgstr "Vrijednost je Prevelika" msgid "Value {0} missing for {1}" msgstr "Nedostaje vrijednost {0} za {1}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "Vrijednost {0} mora biti u važećem formatu trajanja: d h m s" @@ -28866,7 +28950,7 @@ msgstr "Verdana" msgid "Verification" msgstr "Verifikacija" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "Verfikacijski Kod" @@ -28924,7 +29008,7 @@ msgstr "Prikaz" msgid "View All" msgstr "Prikaži Sve" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "Prikaži Trag" @@ -29890,9 +29974,9 @@ msgstr "Žuta" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29987,7 +30071,7 @@ msgstr "Nije vam dozvoljeno da izvezete {} doctype" msgid "You are not allowed to print this report" msgstr "Nije vam dozvoljeno da ispišete ovaj izveštaj" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "Nije vam dozvoljeno slanje e-pošte u vezi sa ovim dokumentom" @@ -30175,7 +30259,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "Izradili ste ovaj dokument {0}" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "Nemate dozvole za Čitanje ili Odabir za {}" @@ -30235,7 +30319,7 @@ msgstr "Dostigli ste ograničenje veličine reda u tabeli baze podataka: {0}" msgid "You have not entered a value. The field will be set to empty." msgstr "Niste unijeli vrijednost. Polje će biti prazno." -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "Morate omogućiti Dvofaktorsku Autentifikaciju iz Postavki Sistema." @@ -30344,7 +30428,7 @@ msgstr "Trebate dozvolu za pisanje na {0} {1} za spajanje" msgid "You need write permission on {0} {1} to rename" msgstr "Trebate dozvolu za pisanje na {0} {1} da biste preimenovali" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "Trebate {0} dozvolu da preuzmete vrijednosti iz {1} {2}" @@ -30518,7 +30602,7 @@ msgstr "Vaša je stranica u toku održavanja ili ažuriranja." msgid "Your verification code is {0}" msgstr "Vaš verifikacioni kod je {0}" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "Nula" @@ -30561,7 +30645,7 @@ msgstr "nakon_umetanja" msgid "amend" msgstr "izmijeni" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "i" @@ -30848,7 +30932,7 @@ msgstr "lista" msgid "logged in" msgstr "prijavljen" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "prijava_potrebna" @@ -31186,7 +31270,7 @@ msgstr "putem Uvoza Podataka" msgid "via Google Meet" msgstr "putem Google Meet" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "putem Obavijesti" @@ -31395,7 +31479,7 @@ msgstr "{0} je već odjavljen" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} je već otkazan za {1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} i {1}" @@ -31420,7 +31504,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "{0} priloženo {1}" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "{0} ne može biti više od {1}" @@ -31733,7 +31817,7 @@ msgstr "prije {0} minuta" msgid "{0} months ago" msgstr "{0} mjeseci prije" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} mora biti iza {1}" @@ -31790,12 +31874,12 @@ msgstr "{0} od {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} od {1} ({2} redovi sa potomcima)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "Samo {0}." -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} ili {1}" @@ -31840,7 +31924,7 @@ msgstr "{0} uklonilo je {1} redaka iz {2}" msgid "{0} role does not have permission on any doctype" msgstr "{0} uloga nema dozvolu ni za jedan tip dokumenta" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} red #{1}:" @@ -32119,11 +32203,11 @@ msgstr "{{{0}}} nije važeća forma naziva polja. Trebalo bi da bude {{field_nam msgid "{} Complete" msgstr "{} Završeno" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "{} Nevažeći python kod na liniji {}" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "{} Možda nevažeći python kod.
{}" diff --git a/frappe/locale/hu.po b/frappe/locale/hu.po index c20c3b2e42..3e00310136 100644 --- a/frappe/locale/hu.po +++ b/frappe/locale/hu.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Hungarian\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "" msgid "1 Report" msgstr "" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "1 nappal ezelőtt" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 óra" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "3 perccel ezelőtt" @@ -232,7 +232,7 @@ msgstr "4 óra" msgid "5 Records" msgstr "" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "5 napja" @@ -623,7 +623,7 @@ msgstr "

A fenti HTML-kóddal való interakcióhoz a \"root_element\" elemet k "some_class_element.textContent = \"Új tartalom\";\n" "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -1046,7 +1046,7 @@ msgstr "Művelet / Útvonal" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "" @@ -1183,7 +1183,7 @@ msgstr "" msgid "Add A New Rule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "" @@ -1288,7 +1288,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "" @@ -1316,7 +1316,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1723,6 +1723,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1737,7 +1738,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2339,7 +2342,7 @@ msgstr "" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2501,7 +2504,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "" @@ -2537,7 +2540,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "" @@ -2783,10 +2786,15 @@ msgstr "" msgid "Attach" msgstr "" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2869,6 +2877,11 @@ msgstr "" msgid "Attachment Removed" msgstr "Csatolmány Eltávolítva" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -3046,7 +3059,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3280,7 +3293,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3298,7 +3311,7 @@ msgstr "" msgid "Back to Home" msgstr "" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3738,7 +3751,7 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3861,7 +3874,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "CC" @@ -4056,6 +4069,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4093,11 +4114,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4200,7 +4221,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4225,7 +4246,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4245,7 +4266,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4273,7 +4294,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4619,11 +4640,11 @@ msgstr "" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4657,7 +4678,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4710,7 +4731,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4721,7 +4742,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4898,7 +4919,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "" @@ -5022,7 +5043,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5265,7 +5286,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5602,7 +5623,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6213,13 +6234,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "" @@ -6872,7 +6893,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7225,7 +7246,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7381,7 +7402,7 @@ msgstr "" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7470,7 +7491,7 @@ msgstr "Ne hozzon létre új felhasználót" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7632,7 +7653,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7653,11 +7674,11 @@ msgstr "DocType melyre ez a munkafolyamat alkalmazható." msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7768,7 +7789,7 @@ msgstr "" msgid "Document Name" msgstr "" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7944,7 +7965,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7972,11 +7993,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7992,7 +8013,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8219,7 +8240,7 @@ msgid "Due Date Based On" msgstr "" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "" @@ -8334,7 +8355,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8383,7 +8404,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "" @@ -8568,7 +8589,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8627,7 +8648,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8777,7 +8798,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8809,7 +8830,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -9006,7 +9027,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9179,7 +9200,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9317,9 +9338,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9339,7 +9360,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9521,7 +9542,7 @@ msgstr "" msgid "Expand" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "" @@ -9618,7 +9639,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9628,7 +9649,7 @@ msgstr "" msgid "Export From" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9804,7 +9825,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9841,11 +9862,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9875,7 +9896,7 @@ msgstr "Sikertelen API hívása közben {0}" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9935,6 +9956,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -10039,7 +10064,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10272,7 +10297,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10532,7 +10557,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10540,7 +10565,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -11005,11 +11030,16 @@ msgstr "" msgid "From" msgstr "" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -11025,6 +11055,11 @@ msgstr "" msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11186,7 +11221,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11278,7 +11313,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11326,7 +11361,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -12023,7 +12058,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12706,11 +12741,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13213,7 +13248,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13307,6 +13342,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13321,7 +13358,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13443,7 +13480,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13978,6 +14015,7 @@ msgstr "Feladat Név" msgid "Job Status" msgstr "Feladat Állapot" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13986,16 +14024,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -15047,7 +15091,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15182,7 +15226,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15219,7 +15263,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15689,7 +15733,7 @@ msgstr "" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "Megfelel a Feltételeknek?" @@ -15725,7 +15769,7 @@ msgstr "" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "" @@ -15750,16 +15794,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15796,7 +15840,7 @@ msgstr "" msgid "Message Type" msgstr "Üzenet Típusa" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15804,7 +15848,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15990,7 +16034,7 @@ msgstr "" msgid "Missing Fields" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -16125,7 +16169,7 @@ msgstr "" msgid "Module Profile Name" msgstr "Modulprofil Név" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -16133,7 +16177,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16649,7 +16693,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "" @@ -16751,10 +16795,10 @@ msgid "New value to be set" msgstr "" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16839,6 +16883,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "Következő Dokumentum" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16906,8 +16954,8 @@ msgstr "Következő Kattintáskor" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16943,7 +16991,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17083,7 +17131,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -17123,6 +17171,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -17143,7 +17195,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17206,7 +17258,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17243,7 +17295,7 @@ msgstr "" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17384,8 +17436,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17438,7 +17490,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17470,7 +17522,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17593,15 +17645,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17715,7 +17767,7 @@ msgstr "Lekérdezések Száma" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17824,14 +17876,30 @@ msgstr "OTP Alkalmazás" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17947,7 +18015,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -18007,7 +18075,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" @@ -18045,7 +18113,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18225,7 +18293,7 @@ msgstr "" msgid "Operation" msgstr "" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18727,7 +18795,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18899,6 +18967,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19223,7 +19295,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19275,7 +19347,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19315,7 +19387,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19431,6 +19503,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19447,7 +19523,7 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" @@ -19513,7 +19589,7 @@ msgstr "" msgid "Please set filters" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19529,11 +19605,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19553,23 +19629,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19756,7 +19836,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19777,7 +19857,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19831,6 +19911,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "Előző Dokumentum" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19880,8 +19964,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19994,7 +20078,7 @@ msgstr "" msgid "Print Hide If No Value" msgstr "" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -20009,10 +20093,8 @@ msgid "Print Server" msgstr "" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20634,7 +20716,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20645,7 +20727,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20884,12 +20966,12 @@ msgstr "Átirányítások" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21202,7 +21284,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "" @@ -21233,7 +21315,7 @@ msgstr "" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21313,9 +21395,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21343,7 +21425,7 @@ msgstr "" msgid "Reopen" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21593,7 +21675,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21787,7 +21869,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21943,7 +22025,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22265,7 +22347,7 @@ msgstr "Sor Indexek" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22273,7 +22355,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22498,7 +22580,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22554,13 +22636,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22602,7 +22684,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22666,7 +22748,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22679,7 +22761,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22980,8 +23062,8 @@ msgstr "" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -23047,7 +23129,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -23121,7 +23203,7 @@ msgid "Select Page" msgstr "Oldal Kiválasztása" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "" @@ -23335,7 +23417,7 @@ msgstr "" msgid "Send Print as PDF" msgstr "" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "" @@ -23394,11 +23476,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "" @@ -23622,7 +23704,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "Munkamenet Lejárata (tétlenségi időkorlát)" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23667,7 +23749,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -24063,7 +24145,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -24115,7 +24197,7 @@ msgstr "Nyelvválasztó Megjelenítése" msgid "Show Line Breaks after Sections" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24190,7 +24272,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "" @@ -24216,7 +24298,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24296,8 +24378,8 @@ msgstr "Dokumentum linkjének megjelenítése" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24485,7 +24567,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24881,7 +24963,7 @@ msgstr "" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -25015,7 +25097,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25182,9 +25264,9 @@ msgstr "" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "" @@ -25328,12 +25410,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25393,11 +25475,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25413,11 +25495,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25552,7 +25634,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25863,7 +25945,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -26078,7 +26160,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -26090,7 +26172,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
\"API-k & Szolgáltatások\" > \"Hitelesítő adatok\"\n" "alatt beszerzett ügyfél-azonosító" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26340,7 +26422,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26392,7 +26474,7 @@ msgstr "" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26469,7 +26551,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26702,6 +26784,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Ez azonnal megszakítja a feladatot, és veszélyes lehet, biztos benne?" @@ -27778,15 +27862,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27795,7 +27879,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27833,7 +27917,7 @@ msgstr "" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -28061,7 +28145,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28707,7 +28791,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "" @@ -28785,7 +28869,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28807,7 +28891,7 @@ msgstr "Verdana" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28865,7 +28949,7 @@ msgstr "" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29831,9 +29915,9 @@ msgstr "Sárga" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29928,7 +30012,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -30116,7 +30200,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -30176,7 +30260,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30285,7 +30369,7 @@ msgstr "Írási jogosultság szükséges a {0} {1} oldalon az egyesítéshez" msgid "You need write permission on {0} {1} to rename" msgstr "Írási jogosultság szükséges a {0} {1} oldalon az átnevezéshez" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30459,7 +30543,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "" @@ -30502,7 +30586,7 @@ msgstr "after_insert" msgid "amend" msgstr "módosítás" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "" @@ -30789,7 +30873,7 @@ msgstr "" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -31127,7 +31211,7 @@ msgstr "" msgid "via Google Meet" msgstr "Google Meet-en keresztül" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31336,7 +31420,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "" @@ -31361,7 +31445,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31674,7 +31758,7 @@ msgstr "" msgid "{0} months ago" msgstr "" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31731,12 +31815,12 @@ msgstr "" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "" @@ -31781,7 +31865,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0}, sor #{1}:" @@ -32060,11 +32144,11 @@ msgstr "" msgid "{} Complete" msgstr "" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/id.po b/frappe/locale/id.po index 8372ab2779..e198a308bd 100644 --- a/frappe/locale/id.po +++ b/frappe/locale/id.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:49\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Indonesian\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "1 Acara Kalender Google disinkronkan." msgid "1 Report" msgstr "" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "1 jam yang lalu" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "1 menit yang lalu" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "1 bulan lalu" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "1 minggu yang lalu" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "1 tahun yang lalu" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "" @@ -231,7 +231,7 @@ msgstr "" msgid "5 Records" msgstr "5 catatan" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "" @@ -502,7 +502,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -902,7 +902,7 @@ msgstr "" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "aksi Gagal" @@ -1039,7 +1039,7 @@ msgstr "Tambah / Perbarui" msgid "Add A New Rule" msgstr "Tambah Aturan Baru" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Tambahkan lampiran" @@ -1144,7 +1144,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Tambahkan Signature" @@ -1172,7 +1172,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1579,6 +1579,7 @@ msgstr "menyelaraskan Nilai" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1593,7 +1594,9 @@ msgstr "menyelaraskan Nilai" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2195,7 +2198,7 @@ msgstr "Nama App" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2357,7 +2360,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "Anda yakin ingin menghapus semua baris?" @@ -2393,7 +2396,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "Anda yakin ingin menggabungkan {0} dengan {1}?" @@ -2639,10 +2642,15 @@ msgstr "" msgid "Attach" msgstr "Melampirkan" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Lampirkan Dokumen Cetak" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2725,6 +2733,11 @@ msgstr "" msgid "Attachment Removed" msgstr "" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2902,7 +2915,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "Ulangi Pembuatan Dokumen Otomatis Gagal" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3136,7 +3149,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3154,7 +3167,7 @@ msgstr "Kembali ke Meja" msgid "Back to Home" msgstr "Kembali ke rumah" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "Kembali ke Login" @@ -3594,7 +3607,7 @@ msgstr "Hapus Massal" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "Sunting Massal {0}" @@ -3717,7 +3730,7 @@ msgstr "DIBATALKAN" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "" @@ -3912,6 +3925,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "Batalkan Semua Dokumen" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3949,11 +3970,11 @@ msgstr "Membatalkan dokumen" msgid "Cancelling {0}" msgstr "Membatalkan {0}" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4056,7 +4077,7 @@ msgstr "Tidak dapat menghapus {0} karena memiliki node anak" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "Tidak dapat mengedit Pemberitahuan Standar. Untuk mengedit, nonaktifkan ini dan gandakan" @@ -4081,7 +4102,7 @@ msgstr "Tidak dapat mengedit filter untuk bagan standar" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "Tidak dapat mengedit bidang standar" @@ -4101,7 +4122,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "Tidak dapat memetakan banyak printer ke format cetak tunggal." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4129,7 +4150,7 @@ msgstr "Tidak dapat menghapus bidang ID" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4474,11 +4495,11 @@ msgstr "" msgid "Clear" msgstr "Bersih" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4512,7 +4533,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "Hapus Izin Pengguna" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4565,7 +4586,7 @@ msgstr "Klik pada {0} untuk menghasilkan Refresh Token." #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "Klik tabel untuk mengedit" @@ -4576,7 +4597,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4753,7 +4774,7 @@ msgstr "" msgid "Collapse" msgstr "Jatuh" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Jatuh" @@ -4877,7 +4898,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5120,7 +5141,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5457,7 +5478,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6068,13 +6089,13 @@ msgstr "" msgid "Customizations Reset" msgstr "Penyesuaian ulang Reset" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "Penyesuaian untuk {0} diekspor ke:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Sesuaikan" @@ -6727,7 +6748,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7080,7 +7101,7 @@ msgstr "Ikon Desktop sudah ada" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "Penjelasan" @@ -7236,7 +7257,7 @@ msgstr "Dinonaktifkan" msgid "Disabled Auto Reply" msgstr "Balas Otomatis Dinonaktifkan" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7325,7 +7346,7 @@ msgstr "Jangan Buat Pengguna Baru" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "Jangan edit header yang sudah ada di template" @@ -7487,7 +7508,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "DocType harus Submittable untuk Doc Event yang dipilih" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7508,11 +7529,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7623,7 +7644,7 @@ msgstr "" msgid "Document Name" msgstr "Dokumen Nama" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7799,7 +7820,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7827,11 +7848,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "Dokumen diubah namanya dari {0} ke {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7847,7 +7868,7 @@ msgstr "Dokumen {0} Sudah Dipulihkan" msgid "Document {0} has been set to state {1} by {2}" msgstr "Dokumen {0} telah diatur untuk menyatakan {1} oleh {2}" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8074,7 +8095,7 @@ msgid "Due Date Based On" msgstr "" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Duplikat" @@ -8189,7 +8210,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8238,7 +8259,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "Mengedit Custom HTML" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "mengedit DocType" @@ -8423,7 +8444,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8482,7 +8503,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "Alamat email" @@ -8632,7 +8653,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "Template Email" @@ -8664,7 +8685,7 @@ msgstr "Email telah dipindahkan ke sampah" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "Surel tidak dikirim ke {0} (tidak berlangganan / dinonaktifkan)" @@ -8861,7 +8882,7 @@ msgstr "Aktifkan Tampilan Halaman Pelacakan" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "Aktifkan Dua Faktor Auth" @@ -9034,7 +9055,7 @@ msgstr "Masukkan Id Klien dan Rahasia Klien di Pengaturan Google." msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "Masukkan Penerima Surel" @@ -9172,9 +9193,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "Kesalahan dalam Notifikasi" @@ -9194,7 +9215,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "Kesalahan saat menyambung ke akun email {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "Kesalahan saat mengevaluasi Pemberitahuan {0}. Silakan perbaiki template Anda." @@ -9376,7 +9397,7 @@ msgstr "" msgid "Expand" msgstr "Memperluas" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Memperluas" @@ -9473,7 +9494,7 @@ msgstr "Kustomisasi ekspor" msgid "Export Data" msgstr "Ekspor Data" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "Ekspor Baris yang Salah" @@ -9483,7 +9504,7 @@ msgstr "Ekspor Baris yang Salah" msgid "Export From" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9659,7 +9680,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9696,11 +9717,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9730,7 +9751,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "Kegagalan" @@ -9790,6 +9811,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "Mengambil dokumen Penelusuran Global default." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9894,7 +9919,7 @@ msgstr "" msgid "Field {0} not found." msgstr "Bidang {0} tidak ditemukan" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10127,7 +10152,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10387,7 +10412,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "Mengikuti" @@ -10395,7 +10420,7 @@ msgstr "Mengikuti" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10859,11 +10884,16 @@ msgstr "" msgid "From" msgstr "Dari" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "Dari" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10879,6 +10909,11 @@ msgstr "" msgid "From Document Type" msgstr "Dari Jenis Dokumen" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11040,7 +11075,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "Dapatkan Pemberitahuan untuk Hari ini" @@ -11132,7 +11167,7 @@ msgstr "Pintasan Global" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "Pergi" @@ -11180,7 +11215,7 @@ msgstr "" msgid "Go to {0}" msgstr "Pergi ke {0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11877,7 +11912,7 @@ msgstr "Sembunyikan Akhir Pekan" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "Sembunyikan detail" @@ -12560,11 +12595,11 @@ msgstr "Templat impor harus bertipe .csv, .xlsx atau .xls" msgid "Import template should contain a Header and atleast one row." msgstr "Impor template harus berisi Header dan minimal satu baris." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13067,7 +13102,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "Ekspresi "depend_on" tidak valid" @@ -13161,6 +13196,8 @@ msgstr "Mail Server tidak valid. Harap memperbaiki dan coba lagi." msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13175,7 +13212,7 @@ msgstr "Opsi Tidak Valid" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "Output Format valid" @@ -13297,7 +13334,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "Nama bidang tidak valid {0}" @@ -13832,6 +13869,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13840,16 +13878,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "Lompat ke bidang" @@ -14901,7 +14945,7 @@ msgstr "Memuat" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "Memuat file impor ..." @@ -15036,7 +15080,7 @@ msgstr "Kode Verifikasi Masuk dari {}" msgid "Login and view in Browser" msgstr "Login dan lihat di Browser" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15073,7 +15117,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15543,7 +15587,7 @@ msgstr "Sedang" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15579,7 +15623,7 @@ msgstr "" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Merger dengan yang ada" @@ -15604,16 +15648,16 @@ msgstr "Penggabungan ini hanya mungkin antara kelompok-to-Grup atau Leaf Node-to #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15650,7 +15694,7 @@ msgstr "Pesan terkirim" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "Pesan terpotong" @@ -15658,7 +15702,7 @@ msgstr "Pesan terpotong" msgid "Message from server: {0}" msgstr "Pesan dari server: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "Pesan tidak disetel" @@ -15844,7 +15888,7 @@ msgstr "" msgid "Missing Fields" msgstr "hilang Fields" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -15979,7 +16023,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -15987,7 +16031,7 @@ msgstr "" msgid "Module to Export" msgstr "Modul untuk Ekspor" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16501,7 +16545,7 @@ msgstr "Pesan dari Kontak Situs Web Halaman" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "Nama baru" @@ -16603,10 +16647,10 @@ msgid "New value to be set" msgstr "" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16691,6 +16735,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16758,8 +16806,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16795,7 +16843,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16935,7 +16983,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "Tidak ada pemberitahuan untuk hari ini" @@ -16975,6 +17023,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "Tidak ada kontak yang tertaut ke dokumen" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "Tidak ada data untuk diekspor" @@ -16995,7 +17047,7 @@ msgstr "Tidak ada akun email yang dikaitkan dengan Pengguna. Silakan tambahkan a msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17058,7 +17110,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "Tidak ada izin untuk {0}" @@ -17095,7 +17147,7 @@ msgstr "Tidak ada catatan yang akan diekspor" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17236,8 +17288,8 @@ msgstr "" msgid "Not Published" msgstr "Tidak Diterbitkan" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17290,7 +17342,7 @@ msgstr "Tidak aktif" msgid "Not allowed for {0}: {1}" msgstr "Tidak diizinkan untuk {0}: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "Tidak diizinkan melampirkan dokumen {0}, harap aktifkan Izinkan Pencetakan Untuk {0} di Setelan Cetak" @@ -17322,7 +17374,7 @@ msgstr "Tidak dalam Mode Developer" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "Tidak dalam Mode Pengembang! Diatur dalam site_config.json atau membuat DOCTYPE 'Custom'." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17445,15 +17497,15 @@ msgstr "Pemberitahuan Dokumen Berlangganan" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17567,7 +17619,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17676,14 +17728,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "OTP Secret telah di-reset. Registrasi ulang akan diminta pada login berikutnya." +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17799,7 +17867,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17859,7 +17927,7 @@ msgstr "Kode Pendaftaran One Time Password (OTP) dari {}" msgid "One of" msgstr "Satu dari" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "Hanya 200 sisipan diperbolehkan dalam satu permintaan" @@ -17897,7 +17965,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18077,7 +18145,7 @@ msgstr "" msgid "Operation" msgstr "Operasi" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "Operator harus menjadi salah satu dari {0}" @@ -18579,7 +18647,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18751,6 +18819,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19075,7 +19147,7 @@ msgstr "Silakan Tetapkan Bagan" msgid "Please Update SMS Settings" msgstr "Harap Perbarui Pengaturan SMS" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "Silakan tambahkan subjek ke email Anda" @@ -19127,7 +19199,7 @@ msgstr "Silakan periksa alamat email terdaftar Anda untuk petunjuk cara melanjut msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19167,7 +19239,7 @@ msgstr "Harap jangan mengubah judul Template." msgid "Please duplicate this to make changes" msgstr "Silakan duplikat ini untuk membuat perubahan" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19283,6 +19355,10 @@ msgstr "Silakan menyimpan dokumen sebelum penugasan" msgid "Please save the document before removing assignment" msgstr "Silakan menyimpan dokumen sebelum mengeluarkan penugasan" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "Harap menyimpan laporan pertama" @@ -19299,7 +19375,7 @@ msgstr "Silakan pilih DOCTYPE pertama" msgid "Please select Entity Type first" msgstr "Silakan pilih Tipe Entitas terlebih dahulu" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "Harap pilih Skor Minimum Kata Sandi" @@ -19365,7 +19441,7 @@ msgstr "Silakan atur pemetaan printer untuk format cetak ini di Pengaturan Print msgid "Please set filters" msgstr "Silakan set filter" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "Silakan menetapkan nilai filter dalam Laporan Filter meja." @@ -19381,11 +19457,11 @@ msgstr "Harap tetapkan dokumen berikut di Dasbor ini sebagai standar terlebih da msgid "Please set the series to be used." msgstr "Silakan mengatur seri yang akan digunakan." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "Tolong atur SMS sebelum menyetelnya sebagai metode otentikasi, melalui Pengaturan SMS" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "Harap siapkan pesan terlebih dahulu" @@ -19405,23 +19481,27 @@ msgstr "Silakan tentukan" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "Silakan tentukan tanggal yang lapangan harus diperiksa" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "Silakan tentukan mana bidang nilai harus diperiksa" @@ -19608,7 +19688,7 @@ msgstr "" msgid "Preparing Report" msgstr "Mempersiapkan Laporan" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19629,7 +19709,7 @@ msgstr "Tekan Enter untuk menyimpan" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19683,6 +19763,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Kembali" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19732,8 +19816,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19846,7 +19930,7 @@ msgstr "" msgid "Print Hide If No Value" msgstr "" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19861,10 +19945,8 @@ msgid "Print Server" msgstr "" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20486,7 +20568,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20497,7 +20579,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20736,12 +20818,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "Cache server Redis tidak berjalan. Silahkan hubungi Administrator / dukungan Tech" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21054,7 +21136,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Mengisi kembali" @@ -21085,7 +21167,7 @@ msgstr "" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21165,9 +21247,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21195,7 +21277,7 @@ msgstr "" msgid "Reopen" msgstr "Membuka lagi" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "ulangi" @@ -21445,7 +21527,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21639,7 +21721,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "Setel ulang OTP Secret" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21795,7 +21877,7 @@ msgid "Resume Sending" msgstr "Lanjutkan Mengirim" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22117,7 +22199,7 @@ msgstr "" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22125,7 +22207,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22350,7 +22432,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22406,13 +22488,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "Disimpan" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22454,7 +22536,7 @@ msgstr "Scan QR Code dan masukkan hasil kode yang ditampilkan." msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22518,7 +22600,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "Penjadwal Tidak Aktif" @@ -22531,7 +22613,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "Penjadwal tidak aktif. Tidak dapat mengimpor data." @@ -22832,8 +22914,8 @@ msgstr "Pilih" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22899,7 +22981,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "Pilih Bidang" @@ -22973,7 +23055,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Pilih Print Format" @@ -23187,7 +23269,7 @@ msgstr "Kirim sekarang" msgid "Send Print as PDF" msgstr "" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "Kirim Baca Receipt" @@ -23246,11 +23328,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "Kirim Me Salin A" @@ -23474,7 +23556,7 @@ msgstr "Sesi berakhir" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "Sesi kadaluarsa harus dalam format {0}" @@ -23519,7 +23601,7 @@ msgstr "Setel Filter Dinamis" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "Tetapkan Filter" @@ -23891,7 +23973,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23943,7 +24025,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24018,7 +24100,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "Tampilkan Tag" @@ -24044,7 +24126,7 @@ msgstr "Tampilkan Total" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24124,8 +24206,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "Tampilkan lebih detail" @@ -24313,7 +24395,7 @@ msgstr "Melewati Kolom Tanpa Judul" msgid "Skipping column {0}" msgstr "Melewati kolom {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24709,7 +24791,7 @@ msgstr "Tanggal Mulai" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "Mulai Impor" @@ -24843,7 +24925,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25010,9 +25092,9 @@ msgstr "" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Perihal" @@ -25156,12 +25238,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25221,11 +25303,11 @@ msgstr "Sukses: {0} ke {1}" msgid "Successfully Updated" msgstr "Berhasil Diperbarui" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25241,11 +25323,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "Berhasil memperbarui terjemahan" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25380,7 +25462,7 @@ msgstr "Sinkronisasi" msgid "Syncing {0} of {1}" msgstr "Menyinkronkan {0} dari {1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25691,7 +25773,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "Tabel diperbarui" @@ -25906,7 +25988,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "Ulangi Otomatis untuk dokumen ini telah dinonaktifkan." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "Format CSV bersifat case sensitive" @@ -25917,7 +25999,7 @@ msgid "The Client ID obtained from the Google Cloud Console under " msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "Kondisi '{0}' tidak valid" @@ -26164,7 +26246,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26216,7 +26298,7 @@ msgstr "Ada kesalahan" msgid "There were errors while creating the document. Please try again." msgstr "Ada kesalahan saat membuat dokumen. Silakan coba lagi." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "Ada kesalahan saat mengirim email. Silakan coba lagi." @@ -26293,7 +26375,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "Tindakan ini hanya diperbolehkan untuk {}" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "Ini tidak dapat dibatalkan" @@ -26522,6 +26604,8 @@ msgstr "Ini akan menghapus data Anda secara permanen." msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Ini akan menghentikan pekerjaan segera dan mungkin berbahaya, apakah Anda yakin?" @@ -27590,15 +27674,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "Tidak berubah" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27607,7 +27691,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "Berhenti mengikuti" @@ -27645,7 +27729,7 @@ msgstr "tidak diketahui" msgid "Unknown Column: {0}" msgstr "Kolom diketahui: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27873,7 +27957,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28519,7 +28603,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Nilai" @@ -28597,7 +28681,7 @@ msgstr "Nilai terlalu besar" msgid "Value {0} missing for {1}" msgstr "Nilai {0} hilang untuk {1}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "Nilai {0} harus dalam format durasi yang valid: dhms" @@ -28619,7 +28703,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28677,7 +28761,7 @@ msgstr "Melihat" msgid "View All" msgstr "Lihat semua" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29643,9 +29727,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29740,7 +29824,7 @@ msgstr "Anda tidak diizinkan mengekspor {} doctype" msgid "You are not allowed to print this report" msgstr "Anda tidak diizinkan untuk mencetak laporan ini" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "Anda tidak diizinkan mengirim email yang terkait dokumen ini" @@ -29928,7 +30012,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -29988,7 +30072,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30097,7 +30181,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30271,7 +30355,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "Nol" @@ -30314,7 +30398,7 @@ msgstr "" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "dan" @@ -30601,7 +30685,7 @@ msgstr "" msgid "logged in" msgstr "Login" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30939,7 +31023,7 @@ msgstr "melalui Impor Data" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "melalui Notifikasi" @@ -31148,7 +31232,7 @@ msgstr "{0} sudah berhenti berlangganan" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} sudah berhenti berlangganan untuk {1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} dan {1}" @@ -31173,7 +31257,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31486,7 +31570,7 @@ msgstr "{0} menit yang lalu" msgid "{0} months ago" msgstr "{0} bulan yang lalu" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} harus setelah {1}" @@ -31543,12 +31627,12 @@ msgstr "{0} dari {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} dari {1} ({2} baris dengan anak-anak)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} atau {1}" @@ -31593,7 +31677,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "Baris {0} #{1}:" @@ -31872,11 +31956,11 @@ msgstr "{{{0}}} bukan pola nama-kolom yang sah. Seharusnya {{field_name}}." msgid "{} Complete" msgstr "{} Selesai" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/it.po b/frappe/locale/it.po index 92586c2aa7..6311f5b6ca 100644 --- a/frappe/locale/it.po +++ b/frappe/locale/it.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Italian\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "1 Evento di Google Calendar sincronizzato." msgid "1 Report" msgstr "" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "1 giorno fa" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 ora" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "1 ora fa" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "1 minuto fa" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "1 mese fa" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "1 secondo fa" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "1 settimana fa" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "1 anno fa" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "2 ore fa" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "2 mesi fa" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "2 settimane fa" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "2 anni fa" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "3 minuti fa" @@ -232,7 +232,7 @@ msgstr "4 ore" msgid "5 Records" msgstr "5 record" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "5 giorni fa" @@ -591,7 +591,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -991,7 +991,7 @@ msgstr "" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "" @@ -1128,7 +1128,7 @@ msgstr "Aggiungi / Aggiorna" msgid "Add A New Rule" msgstr "Aggiungi Una Nuova Regola" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Aggiungi Allegato" @@ -1233,7 +1233,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "" @@ -1261,7 +1261,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1668,6 +1668,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1682,7 +1683,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2284,7 +2287,7 @@ msgstr "Nome dell'App" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2446,7 +2449,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "" @@ -2482,7 +2485,7 @@ msgstr "Vuoi davvero annullare le modifiche?" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "" @@ -2728,10 +2731,15 @@ msgstr "" msgid "Attach" msgstr "Allega" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2814,6 +2822,11 @@ msgstr "" msgid "Attachment Removed" msgstr "" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2991,7 +3004,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3225,7 +3238,7 @@ msgstr "B9" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3243,7 +3256,7 @@ msgstr "" msgid "Back to Home" msgstr "Torna alla Home" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3684,7 +3697,7 @@ msgstr "Eliminazione in Blocco" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3807,7 +3820,7 @@ msgstr "" msgid "CC" msgstr "CC" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "CC" @@ -4002,6 +4015,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4039,11 +4060,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4146,7 +4167,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4171,7 +4192,7 @@ msgstr "Impossibile modificare i filtri per i grafici standard" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4191,7 +4212,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4219,7 +4240,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4565,11 +4586,11 @@ msgstr "" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4603,7 +4624,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4656,7 +4677,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4667,7 +4688,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4844,7 +4865,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Riduci" @@ -4968,7 +4989,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5211,7 +5232,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5548,7 +5569,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "Copia negli Appunti" @@ -6159,13 +6180,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Personalizza" @@ -6818,7 +6839,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7171,7 +7192,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7327,7 +7348,7 @@ msgstr "" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7416,7 +7437,7 @@ msgstr "Non creare un nuovo utente" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7578,7 +7599,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7599,11 +7620,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7714,7 +7735,7 @@ msgstr "" msgid "Document Name" msgstr "Nome Documento" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7890,7 +7911,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7918,11 +7939,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7938,7 +7959,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8165,7 +8186,7 @@ msgid "Due Date Based On" msgstr "" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Duplicato" @@ -8280,7 +8301,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8329,7 +8350,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "Modifica HTML personalizzato" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "Modifica DocType" @@ -8514,7 +8535,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8573,7 +8594,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8723,7 +8744,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8755,7 +8776,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -8952,7 +8973,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9125,7 +9146,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9263,9 +9284,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9285,7 +9306,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9467,7 +9488,7 @@ msgstr "" msgid "Expand" msgstr "Espandi" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Espandi" @@ -9564,7 +9585,7 @@ msgstr "" msgid "Export Data" msgstr "Esporta Dati" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9574,7 +9595,7 @@ msgstr "" msgid "Export From" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9750,7 +9771,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9787,11 +9808,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9821,7 +9842,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "Lavori Pianificati Falliti (ultimi 7 giorni)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9881,6 +9902,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9985,7 +10010,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10218,7 +10243,7 @@ msgstr "File" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10478,7 +10503,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10486,7 +10511,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10950,11 +10975,16 @@ msgstr "" msgid "From" msgstr "" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10970,6 +11000,11 @@ msgstr "" msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11131,7 +11166,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11223,7 +11258,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11271,7 +11306,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11968,7 +12003,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12651,11 +12686,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13158,7 +13193,7 @@ msgstr "Non valido" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13252,6 +13287,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13266,7 +13303,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13388,7 +13425,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13923,6 +13960,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13931,16 +13969,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "Vai al campo" @@ -14992,7 +15036,7 @@ msgstr "Caricamento" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15127,7 +15171,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15164,7 +15208,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15634,7 +15678,7 @@ msgstr "" msgid "Meeting" msgstr "Riunione" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15670,7 +15714,7 @@ msgstr "" msgid "Menu" msgstr "Menu" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Unisci con esistente" @@ -15695,16 +15739,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15741,7 +15785,7 @@ msgstr "" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15749,7 +15793,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15935,7 +15979,7 @@ msgstr "" msgid "Missing Fields" msgstr "Campi Mancanti" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -16070,7 +16114,7 @@ msgstr "Profilo del Modulo" msgid "Module Profile Name" msgstr "Nome del Profilo del Modulo" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -16078,7 +16122,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16592,7 +16636,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "Nuovo Nome" @@ -16694,10 +16738,10 @@ msgid "New value to be set" msgstr "" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16782,6 +16826,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16849,8 +16897,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16886,7 +16934,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17026,7 +17074,7 @@ msgstr "Nessun Evento Imminente" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -17066,6 +17114,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -17086,7 +17138,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17149,7 +17201,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17186,7 +17238,7 @@ msgstr "" msgid "No rows" msgstr "Nessuna riga" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17327,8 +17379,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17381,7 +17433,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17413,7 +17465,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17536,15 +17588,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17658,7 +17710,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17767,14 +17819,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17890,7 +17958,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17950,7 +18018,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" @@ -17988,7 +18056,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18168,7 +18236,7 @@ msgstr "" msgid "Operation" msgstr "Operazione" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18670,7 +18738,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18842,6 +18910,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19166,7 +19238,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19218,7 +19290,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "Per ottenere risultati ottimali, fare clic su Modifica nell'Area di Lavoro" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19258,7 +19330,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19374,6 +19446,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19390,7 +19466,7 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" @@ -19456,7 +19532,7 @@ msgstr "" msgid "Please set filters" msgstr "Si prega di impostare i filtri" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19472,11 +19548,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19496,23 +19572,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19699,7 +19779,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19720,7 +19800,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19774,6 +19854,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Precedente" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19823,8 +19907,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19937,7 +20021,7 @@ msgstr "" msgid "Print Hide If No Value" msgstr "" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19952,10 +20036,8 @@ msgid "Print Server" msgstr "" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20577,7 +20659,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20588,7 +20670,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20827,12 +20909,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "Ripeti" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21145,7 +21227,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Ricarica" @@ -21176,7 +21258,7 @@ msgstr "" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "Promemoria" @@ -21256,9 +21338,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21286,7 +21368,7 @@ msgstr "" msgid "Reopen" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21536,7 +21618,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21730,7 +21812,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21886,7 +21968,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22208,7 +22290,7 @@ msgstr "" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22216,7 +22298,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22441,7 +22523,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22497,13 +22579,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "Salvato" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "Filtri Salvati" @@ -22545,7 +22627,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "Pianifica Invio" @@ -22609,7 +22691,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22622,7 +22704,7 @@ msgstr "Stato Scheduler" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22923,8 +23005,8 @@ msgstr "Seleziona" msgid "Select All" msgstr "Seleziona Tutto" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22990,7 +23072,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -23064,7 +23146,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "" @@ -23278,7 +23360,7 @@ msgstr "" msgid "Send Print as PDF" msgstr "" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "Invia Ricevuta di Lettura" @@ -23337,11 +23419,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "Inviami una copia" @@ -23565,7 +23647,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23610,7 +23692,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -23982,7 +24064,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -24034,7 +24116,7 @@ msgstr "Mostra Selettore Lingua" msgid "Show Line Breaks after Sections" msgstr "Mostra Interruzioni di Riga dopo le Sezioni" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "Mostra Collegamenti" @@ -24109,7 +24191,7 @@ msgstr "Mostra Barra Laterale" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "" @@ -24135,7 +24217,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24215,8 +24297,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24404,7 +24486,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24800,7 +24882,7 @@ msgstr "" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24934,7 +25016,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25101,9 +25183,9 @@ msgstr "" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Soggetto" @@ -25247,12 +25329,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25312,11 +25394,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25332,11 +25414,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25471,7 +25553,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25782,7 +25864,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25997,7 +26079,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -26008,7 +26090,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26255,7 +26337,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26307,7 +26389,7 @@ msgstr "" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26384,7 +26466,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26613,6 +26695,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Ciò interromperà immediatamente il lavoro e potrebbe essere pericoloso, ne sei sicuro?" @@ -27681,15 +27765,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "Annulla" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27698,7 +27782,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27736,7 +27820,7 @@ msgstr "" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27964,7 +28048,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28610,7 +28694,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "" @@ -28688,7 +28772,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28710,7 +28794,7 @@ msgstr "Verdana" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28768,7 +28852,7 @@ msgstr "Vista" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29734,9 +29818,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29831,7 +29915,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -30019,7 +30103,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -30079,7 +30163,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30188,7 +30272,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30362,7 +30446,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "Zero" @@ -30405,7 +30489,7 @@ msgstr "" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "" @@ -30692,7 +30776,7 @@ msgstr "" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -31030,7 +31114,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31239,7 +31323,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "" @@ -31264,7 +31348,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31577,7 +31661,7 @@ msgstr "" msgid "{0} months ago" msgstr "" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31634,12 +31718,12 @@ msgstr "{0} di {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "" @@ -31684,7 +31768,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} riga #{1}:" @@ -31963,11 +32047,11 @@ msgstr "" msgid "{} Complete" msgstr "" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/main.pot b/frappe/locale/main.pot index 6928ce7b6b..175e1b51e3 100644 --- a/frappe/locale/main.pot +++ b/frappe/locale/main.pot @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: Frappe Framework VERSION\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-26 09:33+0000\n" +"POT-Creation-Date: 2025-11-16 09:34+0000\n" +"PO-Revision-Date: 2025-11-16 09:34+0000\n" "Last-Translator: developers@frappe.io\n" "Language-Team: developers@frappe.io\n" "MIME-Version: 1.0\n" @@ -139,11 +139,11 @@ msgstr "" msgid "1 Google Calendar Event synced." msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:963 +#: frappe/public/js/frappe/views/reports/query_report.js:961 msgid "1 Report" msgstr "" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "" @@ -152,17 +152,17 @@ msgid "1 hour" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "" @@ -184,37 +184,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "" @@ -230,7 +230,7 @@ msgstr "" msgid "5 Records" msgstr "" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "" @@ -533,7 +533,7 @@ msgid "" "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -939,7 +939,7 @@ msgstr "" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "" @@ -994,7 +994,7 @@ msgstr "" #: frappe/public/js/frappe/views/reports/query_report.js:191 #: frappe/public/js/frappe/views/reports/query_report.js:204 #: frappe/public/js/frappe/views/reports/query_report.js:214 -#: frappe/public/js/frappe/views/reports/query_report.js:850 +#: frappe/public/js/frappe/views/reports/query_report.js:848 msgid "Actions" msgstr "" @@ -1076,7 +1076,7 @@ msgstr "" msgid "Add A New Rule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "" @@ -1109,8 +1109,8 @@ msgid "Add Child" msgstr "" #: frappe/public/js/frappe/views/kanban/kanban_board.html:4 -#: frappe/public/js/frappe/views/reports/query_report.js:1859 -#: frappe/public/js/frappe/views/reports/query_report.js:1862 +#: frappe/public/js/frappe/views/reports/query_report.js:1857 +#: frappe/public/js/frappe/views/reports/query_report.js:1860 #: frappe/public/js/frappe/views/reports/report_view.js:360 #: frappe/public/js/frappe/views/reports/report_view.js:385 #: frappe/public/js/print_format_builder/Field.vue:112 @@ -1181,7 +1181,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "" @@ -1209,7 +1209,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1616,6 +1616,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1630,7 +1631,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2234,7 +2237,7 @@ msgstr "" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2396,7 +2399,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "" @@ -2428,11 +2431,11 @@ msgstr "" msgid "Are you sure you want to discard the changes?" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:977 +#: frappe/public/js/frappe/views/reports/query_report.js:975 msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "" @@ -2678,10 +2681,15 @@ msgstr "" msgid "Attach" msgstr "" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2764,6 +2772,11 @@ msgstr "" msgid "Attachment Removed" msgstr "" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2941,7 +2954,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3041,6 +3054,10 @@ msgstr "" msgid "Automatic Linking can be activated only if Incoming is enabled." msgstr "" +#: frappe/email/doctype/email_queue/email_queue.js:49 +msgid "Automatic sending of emails is disabled via site config." +msgstr "" + #. Description of a DocType #: frappe/automation/doctype/assignment_rule/assignment_rule.json msgid "Automatically Assign Documents to Users" @@ -3175,7 +3192,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3193,7 +3210,7 @@ msgstr "" msgid "Back to Home" msgstr "" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3634,15 +3651,15 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" -#: frappe/desk/reportview.py:638 +#: frappe/desk/reportview.py:639 msgid "Bulk Operation Failed" msgstr "" -#: frappe/desk/reportview.py:642 +#: frappe/desk/reportview.py:643 msgid "Bulk Operation Successful" msgstr "" @@ -3757,7 +3774,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "" @@ -3809,7 +3826,7 @@ msgstr "" msgid "Cache Cleared" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:182 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:181 msgid "Calculate" msgstr "" @@ -3952,6 +3969,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3989,11 +4014,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4096,7 +4121,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4121,7 +4146,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4141,7 +4166,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4169,7 +4194,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4516,11 +4541,11 @@ msgstr "" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4554,7 +4579,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4607,7 +4632,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4618,7 +4643,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4795,12 +4820,12 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:2140 +#: frappe/public/js/frappe/views/reports/query_report.js:2138 #: frappe/public/js/frappe/views/treeview.js:123 msgid "Collapse All" msgstr "" @@ -4855,7 +4880,7 @@ msgstr "" #: frappe/desk/doctype/number_card/number_card.json #: frappe/desk/doctype/todo/todo.json #: frappe/desk/doctype/workspace_shortcut/workspace_shortcut.json -#: frappe/public/js/frappe/views/reports/query_report.js:1260 +#: frappe/public/js/frappe/views/reports/query_report.js:1258 #: frappe/public/js/frappe/widgets/widget_dialog.js:546 #: frappe/public/js/frappe/widgets/widget_dialog.js:694 #: frappe/website/doctype/color/color.json @@ -4919,7 +4944,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5162,7 +5187,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5502,7 +5527,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -5635,7 +5660,7 @@ msgstr "" #: frappe/public/js/frappe/form/reminders.js:49 #: frappe/public/js/frappe/views/file/file_view.js:112 #: frappe/public/js/frappe/views/interaction.js:18 -#: frappe/public/js/frappe/views/reports/query_report.js:1292 +#: frappe/public/js/frappe/views/reports/query_report.js:1290 #: frappe/public/js/frappe/views/workspace/workspace.js:469 #: frappe/workflow/page/workflow_builder/workflow_builder.js:46 msgid "Create" @@ -5655,7 +5680,7 @@ msgid "Create Card" msgstr "" #: frappe/public/js/frappe/views/reports/query_report.js:285 -#: frappe/public/js/frappe/views/reports/query_report.js:1219 +#: frappe/public/js/frappe/views/reports/query_report.js:1217 msgid "Create Chart" msgstr "" @@ -5718,7 +5743,7 @@ msgstr "" msgid "Create a new ..." msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:157 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:156 msgid "Create a new record" msgstr "" @@ -6113,13 +6138,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "" @@ -6772,7 +6797,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -6828,7 +6853,7 @@ msgctxt "Title of confirmation dialog" msgid "Delete Tab" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:944 +#: frappe/public/js/frappe/views/reports/query_report.js:942 msgid "Delete and Generate New" msgstr "" @@ -6911,7 +6936,7 @@ msgstr "" msgid "Deleted Name" msgstr "" -#: frappe/desk/reportview.py:642 +#: frappe/desk/reportview.py:643 msgid "Deleted all documents successfully" msgstr "" @@ -6919,7 +6944,7 @@ msgstr "" msgid "Deleted!" msgstr "" -#: frappe/desk/reportview.py:619 +#: frappe/desk/reportview.py:620 msgid "Deleting {0}" msgstr "" @@ -7125,7 +7150,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7281,7 +7306,7 @@ msgstr "" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7370,7 +7395,7 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7533,7 +7558,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7554,11 +7579,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7669,7 +7694,7 @@ msgstr "" msgid "Document Name" msgstr "" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7845,7 +7870,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7873,11 +7898,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7893,7 +7918,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8036,7 +8061,7 @@ msgstr "" msgid "Download PDF" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:840 +#: frappe/public/js/frappe/views/reports/query_report.js:838 msgid "Download Report" msgstr "" @@ -8120,7 +8145,7 @@ msgid "Due Date Based On" msgstr "" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "" @@ -8235,9 +8260,9 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 -#: frappe/public/js/frappe/views/reports/query_report.js:888 -#: frappe/public/js/frappe/views/reports/query_report.js:1810 +#: frappe/public/js/frappe/form/toolbar.js:774 +#: frappe/public/js/frappe/views/reports/query_report.js:886 +#: frappe/public/js/frappe/views/reports/query_report.js:1808 #: frappe/public/js/frappe/views/workspace/workspace.js:64 #: frappe/public/js/frappe/widgets/base_widget.js:64 #: frappe/public/js/frappe/widgets/chart_widget.js:299 @@ -8284,7 +8309,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "" @@ -8469,7 +8494,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8528,7 +8553,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8678,7 +8703,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8710,7 +8735,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -8907,7 +8932,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9081,7 +9106,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9219,9 +9244,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9241,7 +9266,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9402,7 +9427,7 @@ msgstr "" msgid "Executing..." msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:2159 +#: frappe/public/js/frappe/views/reports/query_report.js:2157 msgid "Execution Time: {0} sec" msgstr "" @@ -9423,12 +9448,12 @@ msgstr "" msgid "Expand" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:2140 +#: frappe/public/js/frappe/views/reports/query_report.js:2138 #: frappe/public/js/frappe/views/treeview.js:133 msgid "Expand All" msgstr "" @@ -9491,7 +9516,7 @@ msgstr "" #: frappe/core/doctype/recorder/recorder_list.js:37 #: frappe/public/js/frappe/data_import/data_exporter.js:92 #: frappe/public/js/frappe/data_import/data_exporter.js:243 -#: frappe/public/js/frappe/views/reports/query_report.js:1847 +#: frappe/public/js/frappe/views/reports/query_report.js:1845 #: frappe/public/js/frappe/views/reports/report_view.js:1644 #: frappe/public/js/frappe/widgets/chart_widget.js:315 msgid "Export" @@ -9520,7 +9545,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9530,7 +9555,7 @@ msgstr "" msgid "Export From" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9698,7 +9723,7 @@ msgstr "" msgid "Failed to decrypt key {0}" msgstr "" -#: frappe/desk/reportview.py:636 +#: frappe/desk/reportview.py:637 msgid "Failed to delete {0} documents: {1}" msgstr "" @@ -9706,7 +9731,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9743,11 +9768,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9755,7 +9780,7 @@ msgstr "" msgid "Failed to request login to Frappe Cloud" msgstr "" -#: frappe/email/doctype/email_queue/email_queue.py:297 +#: frappe/email/doctype/email_queue/email_queue.py:300 msgid "Failed to send email with subject:" msgstr "" @@ -9777,7 +9802,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9837,6 +9862,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9854,7 +9883,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:327 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:3 #: frappe/public/js/frappe/views/reports/query_report.js:236 -#: frappe/public/js/frappe/views/reports/query_report.js:1906 +#: frappe/public/js/frappe/views/reports/query_report.js:1904 #: frappe/website/doctype/web_form_field/web_form_field.json #: frappe/website/doctype/web_form_list_column/web_form_list_column.json msgid "Field" @@ -9907,7 +9936,7 @@ msgstr "" msgid "Field Type" msgstr "" -#: frappe/desk/reportview.py:202 +#: frappe/desk/reportview.py:203 msgid "Field not permitted in query" msgstr "" @@ -9941,7 +9970,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10174,7 +10203,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10311,8 +10340,8 @@ msgstr "" msgid "Find '{0}' in ..." msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:330 -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:332 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:329 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:331 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:150 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:153 msgid "Find {0} in {1}" @@ -10434,7 +10463,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10442,7 +10471,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10632,7 +10661,7 @@ msgstr "" msgid "For a dynamic subject, use Jinja tags like this: {{ doc.name }} Delivered" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:2156 +#: frappe/public/js/frappe/views/reports/query_report.js:2154 #: frappe/public/js/frappe/views/reports/report_view.js:108 msgid "For comparison, use >5, <10 or =324. For ranges, use 5:10 (for values between 5 & 10)." msgstr "" @@ -10907,11 +10936,16 @@ msgstr "" msgid "From" msgstr "" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10923,10 +10957,15 @@ msgstr "" msgid "From Date Field" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:1867 +#: frappe/public/js/frappe/views/reports/query_report.js:1865 msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11050,11 +11089,11 @@ msgstr "" msgid "Generate Keys" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:882 +#: frappe/public/js/frappe/views/reports/query_report.js:880 msgid "Generate New Report" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:395 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:397 msgid "Generate Random Password" msgstr "" @@ -11088,7 +11127,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11180,7 +11219,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11228,7 +11267,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11739,7 +11778,7 @@ msgstr "" msgid "Help HTML" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:150 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:149 msgid "Help on Search" msgstr "" @@ -11799,7 +11838,7 @@ msgstr "" msgid "Hidden Fields" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:1669 +#: frappe/public/js/frappe/views/reports/query_report.js:1667 msgid "Hidden columns include: {0}" msgstr "" @@ -11925,7 +11964,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12073,7 +12112,7 @@ msgstr "" msgid "ID" msgstr "" -#: frappe/desk/reportview.py:527 +#: frappe/desk/reportview.py:528 #: frappe/public/js/frappe/views/reports/report_view.js:989 msgctxt "Label of name column in report" msgid "ID" @@ -12608,11 +12647,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -12759,15 +12798,15 @@ msgid "Include Web View Link in Email" msgstr "" #: frappe/public/js/frappe/form/print_utils.js:59 -#: frappe/public/js/frappe/views/reports/query_report.js:1647 +#: frappe/public/js/frappe/views/reports/query_report.js:1645 msgid "Include filters" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:1667 +#: frappe/public/js/frappe/views/reports/query_report.js:1665 msgid "Include hidden columns" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:1639 +#: frappe/public/js/frappe/views/reports/query_report.js:1637 msgid "Include indentation" msgstr "" @@ -12925,7 +12964,7 @@ msgstr "" #. Label of the insert_after (Select) field in DocType 'Custom Field' #: frappe/custom/doctype/custom_field/custom_field.json -#: frappe/public/js/frappe/views/reports/query_report.js:1912 +#: frappe/public/js/frappe/views/reports/query_report.js:1910 msgid "Insert After" msgstr "" @@ -13002,11 +13041,11 @@ msgstr "" msgid "Insufficient Permission for {0}" msgstr "" -#: frappe/desk/reportview.py:361 +#: frappe/desk/reportview.py:362 msgid "Insufficient Permissions for deleting Report" msgstr "" -#: frappe/desk/reportview.py:332 +#: frappe/desk/reportview.py:333 msgid "Insufficient Permissions for editing Report" msgstr "" @@ -13115,7 +13154,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13209,6 +13248,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13223,7 +13264,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13281,7 +13322,7 @@ msgstr "" msgid "Invalid Webhook Secret" msgstr "" -#: frappe/desk/reportview.py:187 +#: frappe/desk/reportview.py:188 msgid "Invalid aggregate function" msgstr "" @@ -13345,7 +13386,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13880,6 +13921,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13888,16 +13930,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -14884,7 +14932,7 @@ msgstr "" msgid "List View Settings" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:162 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:161 msgid "List a document type" msgstr "" @@ -14941,7 +14989,7 @@ msgstr "" #: frappe/public/js/frappe/list/base_list.js:527 #: frappe/public/js/frappe/list/list_view.js:363 #: frappe/public/js/frappe/ui/listing.html:16 -#: frappe/public/js/frappe/views/reports/query_report.js:1116 +#: frappe/public/js/frappe/views/reports/query_report.js:1114 msgid "Loading" msgstr "" @@ -14949,7 +14997,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15084,7 +15132,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15121,7 +15169,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15591,7 +15639,7 @@ msgstr "" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15627,7 +15675,7 @@ msgstr "" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "" @@ -15652,16 +15700,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15698,7 +15746,7 @@ msgstr "" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15706,7 +15754,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15892,7 +15940,7 @@ msgstr "" msgid "Missing Fields" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -16027,7 +16075,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -16035,7 +16083,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16550,7 +16598,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "" @@ -16653,10 +16701,10 @@ msgid "New value to be set" msgstr "" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16741,6 +16789,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16808,15 +16860,15 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json #: frappe/public/js/form_builder/utils.js:341 #: frappe/public/js/frappe/form/controls/link.js:500 #: frappe/public/js/frappe/list/list_sidebar_group_by.js:223 -#: frappe/public/js/frappe/views/reports/query_report.js:1692 +#: frappe/public/js/frappe/views/reports/query_report.js:1690 #: frappe/website/doctype/help_article/templates/help_article.html:26 msgid "No" msgstr "" @@ -16845,7 +16897,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16973,7 +17025,7 @@ msgstr "" msgid "No Suggestions" msgstr "" -#: frappe/desk/reportview.py:708 +#: frappe/desk/reportview.py:709 msgid "No Tags" msgstr "" @@ -16985,7 +17037,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -17025,6 +17077,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -17045,7 +17101,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17108,7 +17164,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17145,7 +17201,7 @@ msgstr "" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17286,8 +17342,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17340,7 +17396,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17372,7 +17428,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17495,15 +17551,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17617,7 +17673,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17726,14 +17782,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17849,7 +17921,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17909,11 +17981,11 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" -#: frappe/email/doctype/email_queue/email_queue.py:87 +#: frappe/email/doctype/email_queue/email_queue.py:90 msgid "Only Administrator can delete Email Queue" msgstr "" @@ -17947,7 +18019,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -17970,11 +18042,11 @@ msgstr "" msgid "Only one {0} can be set as primary." msgstr "" -#: frappe/desk/reportview.py:358 +#: frappe/desk/reportview.py:359 msgid "Only reports of type Report Builder can be deleted" msgstr "" -#: frappe/desk/reportview.py:329 +#: frappe/desk/reportview.py:330 msgid "Only reports of type Report Builder can be edited" msgstr "" @@ -18066,7 +18138,7 @@ msgstr "" msgid "Open a dialog with mandatory fields to create a new record quickly. There must be at least one mandatory field to show in dialog." msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:177 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:176 msgid "Open a module or tool" msgstr "" @@ -18127,7 +18199,7 @@ msgstr "" msgid "Operation" msgstr "" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18326,7 +18398,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/printing/page/print/print.js:84 #: frappe/public/js/frappe/form/templates/print_layout.html:44 -#: frappe/public/js/frappe/views/reports/query_report.js:1831 +#: frappe/public/js/frappe/views/reports/query_report.js:1829 msgid "PDF" msgstr "" @@ -18629,7 +18701,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18801,6 +18873,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19125,7 +19201,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19177,7 +19253,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19217,7 +19293,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19333,6 +19409,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19349,11 +19429,11 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:1212 +#: frappe/public/js/frappe/views/reports/query_report.js:1210 msgid "Please select X and Y fields" msgstr "" @@ -19411,11 +19491,11 @@ msgstr "" msgid "Please set a printer mapping for this print format in the Printer Settings" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:1435 +#: frappe/public/js/frappe/views/reports/query_report.js:1433 msgid "Please set filters" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19431,11 +19511,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19455,23 +19535,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19658,7 +19742,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19679,7 +19763,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19733,6 +19817,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19782,10 +19870,10 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 -#: frappe/public/js/frappe/views/reports/query_report.js:1816 +#: frappe/public/js/frappe/views/reports/query_report.js:1814 #: frappe/public/js/frappe/views/reports/report_view.js:1539 #: frappe/public/js/frappe/views/treeview.js:492 frappe/www/printview.html:18 msgid "Print" @@ -19861,7 +19949,7 @@ msgstr "" msgid "Print Format Type" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:1605 +#: frappe/public/js/frappe/views/reports/query_report.js:1603 msgid "Print Format not found" msgstr "" @@ -19896,7 +19984,7 @@ msgstr "" msgid "Print Hide If No Value" msgstr "" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19911,10 +19999,8 @@ msgid "Print Server" msgstr "" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20042,7 +20128,7 @@ msgstr "" msgid "Proceed" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:940 +#: frappe/public/js/frappe/views/reports/query_report.js:938 msgid "Proceed Anyway" msgstr "" @@ -20356,7 +20442,7 @@ msgstr "" msgid "Queue" msgstr "" -#: frappe/utils/background_jobs.py:731 +#: frappe/utils/background_jobs.py:738 msgid "Queue Overloaded" msgstr "" @@ -20377,7 +20463,7 @@ msgstr "" msgid "Queue in Background (BETA)" msgstr "" -#: frappe/utils/background_jobs.py:556 +#: frappe/utils/background_jobs.py:563 msgid "Queue should be one of {0}" msgstr "" @@ -20536,7 +20622,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20547,7 +20633,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20627,7 +20713,7 @@ msgstr "" msgid "Reason" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:894 +#: frappe/public/js/frappe/views/reports/query_report.js:892 msgid "Rebuild" msgstr "" @@ -20786,12 +20872,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21012,7 +21098,7 @@ msgstr "" #: frappe/public/js/frappe/form/form.js:1213 #: frappe/public/js/frappe/form/templates/print_layout.html:6 #: frappe/public/js/frappe/list/base_list.js:66 -#: frappe/public/js/frappe/views/reports/query_report.js:1805 +#: frappe/public/js/frappe/views/reports/query_report.js:1803 #: frappe/public/js/frappe/views/treeview.js:498 #: frappe/public/js/frappe/widgets/chart_widget.js:291 #: frappe/public/js/frappe/widgets/number_card_widget.js:352 @@ -21104,7 +21190,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "" @@ -21135,7 +21221,7 @@ msgstr "" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21215,9 +21301,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21245,7 +21331,7 @@ msgstr "" msgid "Reopen" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21435,7 +21521,7 @@ msgstr "" #: frappe/core/report/prepared_report_analytics/prepared_report_analytics.py:39 #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/desk/doctype/number_card/number_card.json -#: frappe/public/js/frappe/views/reports/query_report.js:1992 +#: frappe/public/js/frappe/views/reports/query_report.js:1990 msgid "Report Name" msgstr "" @@ -21487,7 +21573,7 @@ msgstr "" msgid "Report has no numeric fields, please change the Report Name" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:1021 +#: frappe/public/js/frappe/views/reports/query_report.js:1019 msgid "Report initiated, click to view status" msgstr "" @@ -21495,7 +21581,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21507,7 +21593,7 @@ msgstr "" msgid "Report was not saved (there were errors)" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:2030 +#: frappe/public/js/frappe/views/reports/query_report.js:2028 msgid "Report with more than 10 columns looks better in Landscape mode." msgstr "" @@ -21516,7 +21602,7 @@ msgstr "" msgid "Report {0}" msgstr "" -#: frappe/desk/reportview.py:365 +#: frappe/desk/reportview.py:366 msgid "Report {0} deleted" msgstr "" @@ -21524,7 +21610,7 @@ msgstr "" msgid "Report {0} is disabled" msgstr "" -#: frappe/desk/reportview.py:342 +#: frappe/desk/reportview.py:343 msgid "Report {0} saved" msgstr "" @@ -21543,7 +21629,7 @@ msgstr "" msgid "Reports & Masters" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:937 +#: frappe/public/js/frappe/views/reports/query_report.js:935 msgid "Reports already in Queue" msgstr "" @@ -21689,7 +21775,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21835,8 +21921,8 @@ msgctxt "Title of message showing restrictions in list view" msgid "Restrictions" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:383 -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:398 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:385 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:400 msgid "Result" msgstr "" @@ -21845,7 +21931,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22167,7 +22253,7 @@ msgstr "" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22175,7 +22261,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22400,7 +22486,8 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: cypress/integration/web_form.js:46 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22414,7 +22501,7 @@ msgstr "" #: frappe/public/js/frappe/views/kanban/kanban_settings.js:45 #: frappe/public/js/frappe/views/kanban/kanban_settings.js:189 #: frappe/public/js/frappe/views/kanban/kanban_view.js:357 -#: frappe/public/js/frappe/views/reports/query_report.js:1984 +#: frappe/public/js/frappe/views/reports/query_report.js:1982 #: frappe/public/js/frappe/views/reports/report_view.js:1750 #: frappe/public/js/frappe/views/workspace/workspace.js:335 #: frappe/public/js/frappe/widgets/base_widget.js:142 @@ -22437,7 +22524,7 @@ msgstr "" msgid "Save Customizations" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:1987 +#: frappe/public/js/frappe/views/reports/query_report.js:1985 msgid "Save Report" msgstr "" @@ -22456,13 +22543,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22504,7 +22591,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22568,7 +22655,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22581,7 +22668,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22695,7 +22782,7 @@ msgstr "" msgid "Search Fields" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:187 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:186 msgid "Search Help" msgstr "" @@ -22730,12 +22817,12 @@ msgstr "" msgid "Search for anything" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:301 -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:307 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:300 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:306 msgid "Search for {0}" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:167 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:166 msgid "Search in a document type" msgstr "" @@ -22813,7 +22900,7 @@ msgstr "" msgid "See all Activity" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:863 +#: frappe/public/js/frappe/views/reports/query_report.js:861 msgid "See all past reports." msgstr "" @@ -22882,8 +22969,8 @@ msgstr "" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22949,7 +23036,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -23023,7 +23110,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "" @@ -23237,7 +23324,7 @@ msgstr "" msgid "Send Print as PDF" msgstr "" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "" @@ -23296,11 +23383,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "" @@ -23524,7 +23611,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23569,7 +23656,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -23578,7 +23665,7 @@ msgstr "" msgid "Set Filters for {0}" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:2140 +#: frappe/public/js/frappe/views/reports/query_report.js:2138 msgid "Set Level" msgstr "" @@ -23797,7 +23884,7 @@ msgstr "" msgid "Setup > User Permissions" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:1853 +#: frappe/public/js/frappe/views/reports/query_report.js:1851 #: frappe/public/js/frappe/views/reports/report_view.js:1728 msgid "Setup Auto Email" msgstr "" @@ -23944,7 +24031,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23996,7 +24083,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24071,7 +24158,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "" @@ -24097,7 +24184,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24177,8 +24264,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24366,7 +24453,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24648,7 +24735,7 @@ msgstr "" msgid "Splash Image" msgstr "" -#: frappe/desk/reportview.py:456 +#: frappe/desk/reportview.py:457 #: frappe/public/js/frappe/web_form/web_form_list.js:176 #: frappe/templates/print_formats/standard_macros.html:44 msgid "Sr" @@ -24705,11 +24792,11 @@ msgstr "" msgid "Standard Print Style cannot be changed. Please duplicate to edit." msgstr "" -#: frappe/desk/reportview.py:355 +#: frappe/desk/reportview.py:356 msgid "Standard Reports cannot be deleted" msgstr "" -#: frappe/desk/reportview.py:326 +#: frappe/desk/reportview.py:327 msgid "Standard Reports cannot be edited" msgstr "" @@ -24762,7 +24849,7 @@ msgstr "" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24896,7 +24983,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25063,9 +25150,9 @@ msgstr "" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "" @@ -25209,12 +25296,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25274,11 +25361,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25294,11 +25381,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25433,7 +25520,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25744,7 +25831,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25775,7 +25862,7 @@ msgstr "" #: frappe/public/js/frappe/list/list_sidebar.js:253 #: frappe/public/js/frappe/model/meta.js:215 #: frappe/public/js/frappe/model/model.js:133 -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:172 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:171 msgid "Tags" msgstr "" @@ -25963,7 +26050,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -25975,7 +26062,7 @@ msgid "" "
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26219,12 +26306,12 @@ msgstr "" msgid "There are no {0} for this {1}, why don't you start one!" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:973 +#: frappe/public/js/frappe/views/reports/query_report.js:971 msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26252,7 +26339,7 @@ msgstr "" msgid "There is some problem with the file url: {0}" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:970 +#: frappe/public/js/frappe/views/reports/query_report.js:968 msgid "There is {0} with the same filters already in the queue:" msgstr "" @@ -26276,7 +26363,7 @@ msgstr "" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26353,7 +26440,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26464,7 +26551,7 @@ msgstr "" msgid "This goes above the slideshow." msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:2216 +#: frappe/public/js/frappe/views/reports/query_report.js:2214 msgid "This is a background report. Please set the appropriate filters and then generate a new one." msgstr "" @@ -26514,7 +26601,7 @@ msgstr "" msgid "This month" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:1049 +#: frappe/public/js/frappe/views/reports/query_report.js:1047 msgid "This report contains {0} rows and is too big to display in browser, you can {1} this report instead." msgstr "" @@ -26522,7 +26609,7 @@ msgstr "" msgid "This report was generated on {0}" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:861 +#: frappe/public/js/frappe/views/reports/query_report.js:859 msgid "This report was generated {0}." msgstr "" @@ -26584,6 +26671,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -26927,7 +27016,7 @@ msgstr "" msgid "To generate password click {0}" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:862 +#: frappe/public/js/frappe/views/reports/query_report.js:860 msgid "To get the updated report, click on {0}." msgstr "" @@ -27060,7 +27149,7 @@ msgstr "" msgid "Too many changes to database in single action." msgstr "" -#: frappe/utils/background_jobs.py:730 +#: frappe/utils/background_jobs.py:737 msgid "Too many queued background jobs ({0}). Please retry after some time." msgstr "" @@ -27128,7 +27217,7 @@ msgstr "" #: frappe/desk/query_report.py:587 #: frappe/public/js/frappe/views/reports/print_grid.html:45 -#: frappe/public/js/frappe/views/reports/query_report.js:1351 +#: frappe/public/js/frappe/views/reports/query_report.js:1349 #: frappe/public/js/frappe/views/reports/report_view.js:1553 msgid "Total" msgstr "" @@ -27286,7 +27375,7 @@ msgstr "" msgid "Translatable" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:2271 +#: frappe/public/js/frappe/views/reports/query_report.js:2269 msgid "Translate Data" msgstr "" @@ -27658,15 +27747,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27675,7 +27764,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27714,7 +27803,7 @@ msgstr "" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27942,7 +28031,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28298,7 +28387,7 @@ msgstr "" #. Label of a Link in the Users Workspace #: frappe/core/page/permission_manager/permission_manager_help.html:30 #: frappe/core/workspace/users/users.json -#: frappe/public/js/frappe/views/reports/query_report.js:1971 +#: frappe/public/js/frappe/views/reports/query_report.js:1969 #: frappe/public/js/frappe/views/reports/report_view.js:1776 msgid "User Permissions" msgstr "" @@ -28588,7 +28677,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "" @@ -28666,7 +28755,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28688,7 +28777,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28746,7 +28835,7 @@ msgstr "" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29660,7 +29749,7 @@ msgstr "" #. Label of the y_field (Select) field in DocType 'Dashboard Chart Field' #: frappe/desk/doctype/dashboard_chart_field/dashboard_chart_field.json -#: frappe/public/js/frappe/views/reports/query_report.js:1252 +#: frappe/public/js/frappe/views/reports/query_report.js:1250 msgid "Y Field" msgstr "" @@ -29712,9 +29801,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29722,7 +29811,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:336 #: frappe/public/js/frappe/form/controls/link.js:500 #: frappe/public/js/frappe/list/list_sidebar_group_by.js:223 -#: frappe/public/js/frappe/views/reports/query_report.js:1692 +#: frappe/public/js/frappe/views/reports/query_report.js:1690 #: frappe/website/doctype/help_article/templates/help_article.html:25 msgid "Yes" msgstr "" @@ -29800,7 +29889,7 @@ msgstr "" #: frappe/core/doctype/data_import/exporter.py:121 #: frappe/core/doctype/data_import/exporter.py:125 -#: frappe/desk/reportview.py:445 frappe/desk/reportview.py:448 +#: frappe/desk/reportview.py:446 frappe/desk/reportview.py:449 #: frappe/permissions.py:626 msgid "You are not allowed to export {} doctype" msgstr "" @@ -29809,7 +29898,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -29997,7 +30086,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -30057,7 +30146,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30166,7 +30255,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30324,7 +30413,7 @@ msgstr "" msgid "Your query has been received. We will reply back shortly. If you have any additional information, please reply to this mail." msgstr "" -#: frappe/desk/query_report.py:342 frappe/desk/reportview.py:397 +#: frappe/desk/query_report.py:342 frappe/desk/reportview.py:398 msgid "Your report is being generated in the background. You will receive an email on {0} with a download link once it is ready." msgstr "" @@ -30340,7 +30429,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "" @@ -30368,7 +30457,7 @@ msgstr "" msgid "`as_iterator` only works with `as_list=True` or `as_dict=True`" msgstr "" -#: frappe/utils/background_jobs.py:120 +#: frappe/utils/background_jobs.py:121 msgid "`job_id` paramater is required for deduplication." msgstr "" @@ -30383,7 +30472,7 @@ msgstr "" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "" @@ -30445,7 +30534,7 @@ msgstr "" msgid "cyan" msgstr "" -#: frappe/public/js/frappe/form/controls/duration.js:218 +#: frappe/public/js/frappe/form/controls/duration.js:219 #: frappe/public/js/frappe/utils/utils.js:1119 msgctxt "Days (Field: Duration)" msgid "d" @@ -30504,7 +30593,7 @@ msgstr "" msgid "descending" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:164 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:163 msgid "document type..., e.g. customer" msgstr "" @@ -30514,7 +30603,7 @@ msgstr "" msgid "e.g. \"Support\", \"Sales\", \"Jerry Yang\"" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:184 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:183 msgid "e.g. (55 + 434) / 4 or =Math.sin(Math.PI/2)..." msgstr "" @@ -30612,7 +30701,7 @@ msgstr "" msgid "gzip not found in PATH! This is required to take a backup." msgstr "" -#: frappe/public/js/frappe/form/controls/duration.js:219 +#: frappe/public/js/frappe/form/controls/duration.js:220 #: frappe/public/js/frappe/utils/utils.js:1123 msgctxt "Hours (Field: Duration)" msgid "h" @@ -30670,7 +30759,7 @@ msgstr "" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30681,7 +30770,7 @@ msgstr "" msgid "long" msgstr "" -#: frappe/public/js/frappe/form/controls/duration.js:220 +#: frappe/public/js/frappe/form/controls/duration.js:221 #: frappe/public/js/frappe/utils/utils.js:1127 msgctxt "Minutes (Field: Duration)" msgid "m" @@ -30710,7 +30799,7 @@ msgstr "" msgid "module" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:179 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:178 msgid "module name..." msgstr "" @@ -30718,7 +30807,7 @@ msgstr "" msgid "new" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:159 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:158 msgid "new type of document" msgstr "" @@ -30862,7 +30951,7 @@ msgstr "" msgid "restored {0} as {1}" msgstr "" -#: frappe/public/js/frappe/form/controls/duration.js:221 +#: frappe/public/js/frappe/form/controls/duration.js:222 #: frappe/public/js/frappe/utils/utils.js:1131 msgctxt "Seconds (Field: Duration)" msgid "s" @@ -30947,11 +31036,11 @@ msgstr "" msgid "submit" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:174 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:173 msgid "tag name..., e.g. #tag" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:169 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:168 msgid "text in document type" msgstr "" @@ -31008,7 +31097,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31098,8 +31187,8 @@ msgstr "" msgid "{0} ({1}) - {2}%" msgstr "" -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:375 -#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:378 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:376 +#: frappe/public/js/frappe/ui/toolbar/awesome_bar.js:380 msgid "{0} = {1}" msgstr "" @@ -31169,7 +31258,7 @@ msgstr "" msgid "{0} Report" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:964 +#: frappe/public/js/frappe/views/reports/query_report.js:962 msgid "{0} Reports" msgstr "" @@ -31217,7 +31306,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "" @@ -31242,7 +31331,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31555,7 +31644,7 @@ msgstr "" msgid "{0} months ago" msgstr "" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31612,12 +31701,12 @@ msgstr "" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "" @@ -31662,7 +31751,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "" @@ -31905,7 +31994,7 @@ msgstr "" msgid "{0}: {1} is set to state {2}" msgstr "" -#: frappe/public/js/frappe/views/reports/query_report.js:1310 +#: frappe/public/js/frappe/views/reports/query_report.js:1308 msgid "{0}: {1} vs {2}" msgstr "" @@ -31941,11 +32030,11 @@ msgstr "" msgid "{} Complete" msgstr "" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/my.po b/frappe/locale/my.po index 0b2bd4616b..084aff2134 100644 --- a/frappe/locale/my.po +++ b/frappe/locale/my.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:49\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Burmese\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "" msgid "1 Report" msgstr "" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "" @@ -231,7 +231,7 @@ msgstr "" msgid "5 Records" msgstr "" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "" @@ -502,7 +502,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -902,7 +902,7 @@ msgstr "" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "" @@ -1039,7 +1039,7 @@ msgstr "" msgid "Add A New Rule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "" @@ -1144,7 +1144,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "" @@ -1172,7 +1172,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1579,6 +1579,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1593,7 +1594,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2195,7 +2198,7 @@ msgstr "" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2357,7 +2360,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "" @@ -2393,7 +2396,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "" @@ -2639,10 +2642,15 @@ msgstr "" msgid "Attach" msgstr "" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2725,6 +2733,11 @@ msgstr "" msgid "Attachment Removed" msgstr "" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2902,7 +2915,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3136,7 +3149,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3154,7 +3167,7 @@ msgstr "" msgid "Back to Home" msgstr "" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3594,7 +3607,7 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3717,7 +3730,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "" @@ -3912,6 +3925,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3949,11 +3970,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4056,7 +4077,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4081,7 +4102,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4101,7 +4122,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4129,7 +4150,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4474,11 +4495,11 @@ msgstr "" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4512,7 +4533,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4565,7 +4586,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4576,7 +4597,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4753,7 +4774,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "" @@ -4877,7 +4898,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5120,7 +5141,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5457,7 +5478,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6068,13 +6089,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "" @@ -6727,7 +6748,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7080,7 +7101,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7236,7 +7257,7 @@ msgstr "" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7325,7 +7346,7 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7487,7 +7508,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7508,11 +7529,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7623,7 +7644,7 @@ msgstr "" msgid "Document Name" msgstr "" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7799,7 +7820,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7827,11 +7848,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7847,7 +7868,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8074,7 +8095,7 @@ msgid "Due Date Based On" msgstr "" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "" @@ -8189,7 +8210,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8238,7 +8259,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "" @@ -8423,7 +8444,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8482,7 +8503,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8632,7 +8653,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8664,7 +8685,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -8861,7 +8882,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9034,7 +9055,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9172,9 +9193,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9194,7 +9215,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9376,7 +9397,7 @@ msgstr "" msgid "Expand" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "" @@ -9473,7 +9494,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9483,7 +9504,7 @@ msgstr "" msgid "Export From" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9659,7 +9680,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9696,11 +9717,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9730,7 +9751,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9790,6 +9811,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9894,7 +9919,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10127,7 +10152,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10387,7 +10412,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10395,7 +10420,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10859,11 +10884,16 @@ msgstr "" msgid "From" msgstr "" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10879,6 +10909,11 @@ msgstr "" msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11040,7 +11075,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11132,7 +11167,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11180,7 +11215,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11877,7 +11912,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12560,11 +12595,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13067,7 +13102,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13161,6 +13196,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13175,7 +13212,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13297,7 +13334,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13832,6 +13869,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13840,16 +13878,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -14901,7 +14945,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15036,7 +15080,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15073,7 +15117,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15543,7 +15587,7 @@ msgstr "" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15579,7 +15623,7 @@ msgstr "" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "" @@ -15604,16 +15648,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15650,7 +15694,7 @@ msgstr "" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15658,7 +15702,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15844,7 +15888,7 @@ msgstr "" msgid "Missing Fields" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -15979,7 +16023,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -15987,7 +16031,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16501,7 +16545,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "" @@ -16603,10 +16647,10 @@ msgid "New value to be set" msgstr "" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16691,6 +16735,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16758,8 +16806,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16795,7 +16843,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16935,7 +16983,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -16975,6 +17023,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -16995,7 +17047,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17058,7 +17110,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17095,7 +17147,7 @@ msgstr "" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17236,8 +17288,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17290,7 +17342,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17322,7 +17374,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17445,15 +17497,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17567,7 +17619,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17676,14 +17728,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17799,7 +17867,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17859,7 +17927,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" @@ -17897,7 +17965,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18077,7 +18145,7 @@ msgstr "" msgid "Operation" msgstr "" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18579,7 +18647,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18751,6 +18819,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19075,7 +19147,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19127,7 +19199,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19167,7 +19239,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19283,6 +19355,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19299,7 +19375,7 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" @@ -19365,7 +19441,7 @@ msgstr "" msgid "Please set filters" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19381,11 +19457,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19405,23 +19481,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19608,7 +19688,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19629,7 +19709,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19683,6 +19763,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19732,8 +19816,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19846,7 +19930,7 @@ msgstr "" msgid "Print Hide If No Value" msgstr "" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19861,10 +19945,8 @@ msgid "Print Server" msgstr "" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20486,7 +20568,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20497,7 +20579,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20736,12 +20818,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21054,7 +21136,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "" @@ -21085,7 +21167,7 @@ msgstr "" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21165,9 +21247,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21195,7 +21277,7 @@ msgstr "" msgid "Reopen" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21445,7 +21527,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21639,7 +21721,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21795,7 +21877,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22117,7 +22199,7 @@ msgstr "" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22125,7 +22207,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22350,7 +22432,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22406,13 +22488,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22454,7 +22536,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22518,7 +22600,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22531,7 +22613,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22832,8 +22914,8 @@ msgstr "" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22899,7 +22981,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -22973,7 +23055,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "" @@ -23187,7 +23269,7 @@ msgstr "" msgid "Send Print as PDF" msgstr "" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "" @@ -23246,11 +23328,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "" @@ -23474,7 +23556,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23519,7 +23601,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -23891,7 +23973,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23943,7 +24025,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24018,7 +24100,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "" @@ -24044,7 +24126,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24124,8 +24206,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24313,7 +24395,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24709,7 +24791,7 @@ msgstr "" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24843,7 +24925,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25010,9 +25092,9 @@ msgstr "" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "" @@ -25156,12 +25238,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25221,11 +25303,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25241,11 +25323,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25380,7 +25462,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25691,7 +25773,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25906,7 +25988,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -25917,7 +25999,7 @@ msgid "The Client ID obtained from the Google Cloud Console under " msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26164,7 +26246,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26216,7 +26298,7 @@ msgstr "" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26293,7 +26375,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26522,6 +26604,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -27590,15 +27674,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27607,7 +27691,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27645,7 +27729,7 @@ msgstr "" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27873,7 +27957,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28519,7 +28603,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "" @@ -28597,7 +28681,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28619,7 +28703,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28677,7 +28761,7 @@ msgstr "" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29643,9 +29727,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29740,7 +29824,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -29928,7 +30012,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -29988,7 +30072,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30097,7 +30181,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30271,7 +30355,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "" @@ -30314,7 +30398,7 @@ msgstr "" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "" @@ -30601,7 +30685,7 @@ msgstr "" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30939,7 +31023,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31148,7 +31232,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "" @@ -31173,7 +31257,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31486,7 +31570,7 @@ msgstr "" msgid "{0} months ago" msgstr "" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31543,12 +31627,12 @@ msgstr "" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "" @@ -31593,7 +31677,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "" @@ -31872,11 +31956,11 @@ msgstr "" msgid "{} Complete" msgstr "" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/nb.po b/frappe/locale/nb.po index f8a63978f7..9102bb0671 100644 --- a/frappe/locale/nb.po +++ b/frappe/locale/nb.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:49\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Norwegian Bokmal\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "1 Google Kalender-hendelse synkronisert." msgid "1 Report" msgstr "1 Rapport" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "1 dag siden" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 time" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "1 time siden" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "1 minutt siden" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "1 måned siden" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "1 rad til {0}" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "1 sekund siden" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "1 uke siden" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "1 år siden" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "2 timer siden" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "2 måneder siden" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "2 uker siden" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "2 år siden" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "3 minutter siden" @@ -232,7 +232,7 @@ msgstr "4 timer" msgid "5 Records" msgstr "5 oppføringer" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "5 dager siden" @@ -664,7 +664,7 @@ msgstr "

For å samhandle med HTML-koden ovenfor må du bruke `root_element` s "some_class_element.textContent = \"Nytt innhold\";\n" "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "

Din OTP-hemmelighet på {0} er tilbakestilt. Dersom du ikke foretok denne tilbakestillingen og ikke har bedt om det, vennligst kontakt systemadministratoren umiddelbart.

" @@ -1089,7 +1089,7 @@ msgstr "Handling / Rute" msgid "Action Complete" msgstr "Handlingen er fullført" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Handlingen mislyktes" @@ -1226,7 +1226,7 @@ msgstr "Legg til / Oppdater" msgid "Add A New Rule" msgstr "Legg til en ny regel" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Legg til vedlegg" @@ -1331,7 +1331,7 @@ msgstr "Legg til Rad" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Legg til signatur" @@ -1359,7 +1359,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "Legg til stikkord" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "Legg til mal" @@ -1766,6 +1766,7 @@ msgstr "Juster verdi" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1780,7 +1781,9 @@ msgstr "Juster verdi" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2383,7 +2386,7 @@ msgstr "Appnavn" msgid "App Name (Client Name)" msgstr "Appnavn (klientnavn)" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "Appen ble ikke funnet for modulen: {0}" @@ -2545,7 +2548,7 @@ msgstr "Er du sikker på at du vil avbryte invitasjonen?" msgid "Are you sure you want to clear the assignments?" msgstr "Er du sikker på at du vil slette de tildelte oppgavene?" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "Er du sikker på at du vil slette alle radene?" @@ -2581,7 +2584,7 @@ msgstr "Er du sikker på at du vil forkaste endringene?" msgid "Are you sure you want to generate a new report?" msgstr "Er du sikker på at du vil generere en ny rapport?" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "Er du sikker på at du vil slå sammen {0} med {1}?" @@ -2827,10 +2830,15 @@ msgstr "Minst ett felt av overordnet dokumenttype (DocType) er påkrevd" msgid "Attach" msgstr "Legg ved" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Legg ved dokumentutskrift" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2913,6 +2921,11 @@ msgstr "Vedleggslenke" msgid "Attachment Removed" msgstr "Vedlegg fjernet" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -3090,7 +3103,7 @@ msgstr "Dag for automatisk repetisjon {0} {1} er blitt gjentatt." msgid "Auto Repeat Document Creation Failed" msgstr "Automatisk repetisjon av dokumentopprettelse feilet" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "Plan for automatisk repetisjon" @@ -3324,7 +3337,7 @@ msgstr "B9" msgid "BCC" msgstr "BCC" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "BCC" @@ -3342,7 +3355,7 @@ msgstr "Tilbake til skrivebordet" msgid "Back to Home" msgstr "Tilbake til hjem" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "Tilbake til innlogging" @@ -3782,7 +3795,7 @@ msgstr "Massesletting" msgid "Bulk Edit" msgstr "Masseredigering" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "Masseredigering {0}" @@ -3905,7 +3918,7 @@ msgstr "ABRUTT" msgid "CC" msgstr "CC" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "CC" @@ -4100,6 +4113,14 @@ msgstr "Avbryt alt" msgid "Cancel All Documents" msgstr "Avbryt alle dokumenter" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4137,11 +4158,11 @@ msgstr "Avbryter dokumenter" msgid "Cancelling {0}" msgstr "Avbryter" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "Kan ikke laste ned rapporten på grunn av manglende tillatelser" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "Kan ikke hente verdier" @@ -4244,7 +4265,7 @@ msgstr "Kan ikke slette {0} siden den har underordnede noder" msgid "Cannot edit Standard Dashboards" msgstr "Kan ikke redigere standard oversiktspanel" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "Kan ikke redigere standardvarselet. For å redigere, må du deaktivere dette og kopiere det." @@ -4269,7 +4290,7 @@ msgstr "Kan ikke redigere filtre for standarddiagrammer" msgid "Cannot edit filters for standard number cards" msgstr "Kan ikke redigere filtre for standard oversikt over nøkkeltall" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "Kan ikke redigere standardfelt" @@ -4289,7 +4310,7 @@ msgstr "Kan ikke hente filinnholdet i en mappe" msgid "Cannot have multiple printers mapped to a single print format." msgstr "Kan ikke ha flere skrivere tilordnet til ett og samme utskriftsformat." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "Kan ikke importere tabell med mer enn 5000 rader." @@ -4317,7 +4338,7 @@ msgstr "Kan ikke fjerne ID-feltet" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "Kan ikke angi tillatelsen «Rapporter» hvis tillatelsen «Bare hvis oppretter» er angitt" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "Kan ikke angi varsling med hendelse {0} på dokumenttype (DocType) {1}" @@ -4663,11 +4684,11 @@ msgstr "By/sted" msgid "Clear" msgstr "Tøm" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "Fjern og legg til mal" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "Fjern og legg til mal" @@ -4701,7 +4722,7 @@ msgstr "Tøm logger etter (dager)" msgid "Clear User Permissions" msgstr "Slett brukertillatelser" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "Fjern e-postmeldingen og legg til malen" @@ -4754,7 +4775,7 @@ msgstr "Klikk på {0} for å generere oppdateringstoken." #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "Klikk på tabellen for å redigere" @@ -4765,7 +4786,7 @@ msgstr "Klikk for å angi dynamiske filtre" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "Klikk for å angi filtre" @@ -4942,7 +4963,7 @@ msgstr "Metode for Code Challenge" msgid "Collapse" msgstr "Fold sammen alle" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Fold sammen kodefeltet" @@ -5066,7 +5087,7 @@ msgstr "Kolonnebredde" msgid "Column width cannot be zero." msgstr "Kolonnebredden kan ikke være null." -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "Kolonne {0}" @@ -5309,7 +5330,7 @@ msgstr "Komprimert" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "Betingelse" @@ -5648,7 +5669,7 @@ msgstr "Kopier innbyggingskode" msgid "Copy error to clipboard" msgstr "Kopier feil til utklippstavlen" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "Kopier til utklippstavlen" @@ -6259,13 +6280,13 @@ msgstr "Forkastet egendefineringer" msgid "Customizations Reset" msgstr "Nullstilling av egendefineringer" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "Egendefinering for {0} eksportert til:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Egendefiner" @@ -6918,7 +6939,7 @@ msgstr "Forsinket" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7271,7 +7292,7 @@ msgstr "Skrivebordsikonet finnes allerede" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "Detaljer" @@ -7427,7 +7448,7 @@ msgstr "Deaktivert" msgid "Disabled Auto Reply" msgstr "Deaktivert automatisk svar" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7516,7 +7537,7 @@ msgstr "Ikke opprett ny bruker" msgid "Do not create new user if user with email does not exist in the system" msgstr "Ikke opprett ny bruker hvis bruker med e-postadresse ikke finnes i systemet." -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "Ikke rediger overskrifter som er forhåndsinnstilte i malen" @@ -7681,7 +7702,7 @@ msgstr "En dokumenttype (DocType) er en tabell eller et skjema i applikasjonen." msgid "DocType must be Submittable for the selected Doc Event" msgstr "Dokumenttypen (DocType) må kunne sendes inn for den valgte (DocType-) hendelsen" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "Dokumenttype (DocType) må være en streng" @@ -7702,11 +7723,11 @@ msgstr "Dokumenttypen (DocType) denne arbeidsflyten gjelder for." msgid "DocType required" msgstr "Dokumenttype (DocType) er påkrevd" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "Dokumenttype (DocType) {0} finnes ikke." -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "Dokumenttype (DocType) {} ble ikke funnet" @@ -7817,7 +7838,7 @@ msgstr "Rad #{0} for dokumentkoblinger: Tabellfeltnavn er påkrevd for interne k msgid "Document Name" msgstr "Dokumentnavn" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "Dokumentnavnet må være en streng" @@ -7993,7 +8014,7 @@ msgid "Document Types and Permissions" msgstr "Dokumenttyper (DocType) og rettigheter" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "Dokument ulåst" @@ -8021,11 +8042,11 @@ msgstr "Dokumentet kan bare redigeres av brukere med rolle" msgid "Document not Relinked" msgstr "Dokumentet er ikke lenket på nytt" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "Dokument endret navn fra {0} til {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "Dokumentnavnendring fra {0} til {1} er blitt satt i kø" @@ -8041,7 +8062,7 @@ msgstr "Dokument {0} allerede gjenopprettet" msgid "Document {0} has been set to state {1} by {2}" msgstr "Dokument {0} har blitt satt til tilstanden {1} av {2}" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "Dokumentet {0} {1} finnes ikke" @@ -8268,7 +8289,7 @@ msgid "Due Date Based On" msgstr "Forfallsdato basert på" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Dupliser" @@ -8383,7 +8404,7 @@ msgstr "ESC" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8432,7 +8453,7 @@ msgstr "Rediger egendefinert blokk" msgid "Edit Custom HTML" msgstr "Rediger egendefinert HTML" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "Rediger dokumenttype (DocType)" @@ -8617,7 +8638,7 @@ msgstr "Elementvelger" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8676,7 +8697,7 @@ msgstr "E-postkonto {0} Deaktivert" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "E-postadresse" @@ -8826,7 +8847,7 @@ msgstr "Alternativ for e-postsynkronisering" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "Mal for e-post" @@ -8858,7 +8879,7 @@ msgstr "E-posten er flyttet til papirkurven" msgid "Email is mandatory to create User Email" msgstr "Brukeren må ha en e-postadresse for å motta varsler." -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "E-posten er ikke sendt til {0} (avmeldt / deaktivert)" @@ -9055,7 +9076,7 @@ msgstr "Aktiver sporing av sidevisninger" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "Aktiver tofaktorautentisering" @@ -9229,7 +9250,7 @@ msgstr "Skriv inn klient-ID og klienthemmelighet i Google-innstillinger." msgid "Enter Code displayed in OTP App." msgstr "Skriv inn koden som vises i OTP-appen." -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "Skriv inn e-postmottaker(e)" @@ -9367,9 +9388,9 @@ msgstr "Feil i klientskriptet." msgid "Error in Header/Footer Script" msgstr "Feil i topptekst-/bunntekstskript" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "Feil i varselet" @@ -9389,7 +9410,7 @@ msgstr "Feil ved parsing av nestede filtre: {0}" msgid "Error while connecting to email account {0}" msgstr "Feil under tilkobling til e-postkonto {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "Feil under evaluering av varsel {0}. Vennligst rett malen din." @@ -9571,7 +9592,7 @@ msgstr "Eksisterende rolle" msgid "Expand" msgstr "Utvid" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Utvid" @@ -9668,7 +9689,7 @@ msgstr "Eksporter egendefinisjoner" msgid "Export Data" msgstr "Eksporter data" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "Eksporter feilaktige rader" @@ -9678,7 +9699,7 @@ msgstr "Eksporter feilaktige rader" msgid "Export From" msgstr "Eksporter fra" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "Eksporter importlogg" @@ -9854,7 +9875,7 @@ msgstr "Mislyktes med å slette {0} dokumenter: {1}" msgid "Failed to enable scheduler: {0}" msgstr "Mislyktes med å aktivere planleggeren: {0}" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "Mislyktes med å evaluere betingelser: {}" @@ -9891,11 +9912,11 @@ msgstr "Kunne ikke importere virtuell dokumenttype (DocType) {}. Finnes kontroll msgid "Failed to optimize image: {0}" msgstr "Kunne ikke optimalisere bilde: {0}" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "Kunne ikke gjengi melding: {}" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "Kunne ikke gjengi emne: {}" @@ -9925,7 +9946,7 @@ msgstr "Mislyktes under kalling av API {0}" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "Mislykkede planlagte jobber (siste 7 dager)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "Feil" @@ -9985,6 +10006,10 @@ msgstr "Hent ved lagring hvis tom" msgid "Fetching default Global Search documents." msgstr "Henter standard globale søkedokumenter." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -10089,7 +10114,7 @@ msgstr "" msgid "Field {0} not found." msgstr "Felt {0} ble ikke funnet." -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "Feltet {0} på dokumentet {1} er verken et mobilnummerfelt eller en kunde- eller brukerlenke" @@ -10322,7 +10347,7 @@ msgstr "Filer" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "Filter" @@ -10582,7 +10607,7 @@ msgid "Folio" msgstr "Folio" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "Følg" @@ -10590,7 +10615,7 @@ msgstr "Følg" msgid "Followed by" msgstr "Fulgt av" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "Følgende rapportfiltre mangler verdier:" @@ -11055,11 +11080,16 @@ msgstr "Fredag" msgid "From" msgstr "Fra" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "Fra" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -11075,6 +11105,11 @@ msgstr "Felt for fradato" msgid "From Document Type" msgstr "Fra dokumenttype (DocType)" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11236,7 +11271,7 @@ msgstr "Geolokalisering" msgid "Geolocation Settings" msgstr "Innstillinger for geolokalisering" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "Få varsler for i dag" @@ -11328,7 +11363,7 @@ msgstr "Globale hurtigtaster" msgid "Global Unsubscribe" msgstr "Global avmelding" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "Gå" @@ -11376,7 +11411,7 @@ msgstr "Gå til denne URL-en etter at du har fullført skjemaet" msgid "Go to {0}" msgstr "Gå til {0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -12073,7 +12108,7 @@ msgstr "Skjul helger" msgid "Hide descendant records of For Value." msgstr "Skjul underordnede poster for For-verdi." -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "Skjul detaljer" @@ -12756,11 +12791,11 @@ msgstr "Importmalen må være av typen .csv, .xlsx eller .xls" msgid "Import template should contain a Header and atleast one row." msgstr "Importmalen må inneholde en overskrift og minst én rad." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "Importen ble tidsavbrudt, prøv på nytt." -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "Importering av {0} er ikke tillatt." @@ -13263,7 +13298,7 @@ msgstr "Ugyldig" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "Ugyldig «depends_on»-uttrykk" @@ -13357,6 +13392,8 @@ msgstr "Ugyldig e-postserver. Vennligst rett opp og prøv igjen." msgid "Invalid Naming Series: {}" msgstr "Ugyldig nummerserie: {}" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13371,7 +13408,7 @@ msgstr "Ugyldig alternativ" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "Ugyldig utgående e-postserver eller port: {0}" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "Ugyldig utdataformat" @@ -13493,7 +13530,7 @@ msgstr "Ugyldig feltformat i {0}: {1}. Bruk 'field', 'link_field.field' eller 'c msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "Ugyldig feltnavn i funksjon: {0}. Bare enkle feltnavn er tillatt." -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "Ugyldig feltnavn {0}" @@ -14028,6 +14065,7 @@ msgstr "Jobbnavn" msgid "Job Status" msgstr "Jobbstatus" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "Jobben ble vellykket avsluttet" @@ -14036,16 +14074,22 @@ msgstr "Jobben ble vellykket avsluttet" msgid "Job is in {0} state and can't be cancelled" msgstr "Jobben er i tilstand {0} og kan ikke avbrytes" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "Jobben kjører ikke." +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "Delta i videokonferanse med {0}" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "Hopp til felt" @@ -15097,7 +15141,7 @@ msgstr "Laster inn" msgid "Loading Filters..." msgstr "Laster inn filtre ..." -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "Laster inn importfilen..." @@ -15232,7 +15276,7 @@ msgstr "Verifiseringskode for innlogging fra {}" msgid "Login and view in Browser" msgstr "Logg inn og se i nettleser" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "Innlogging er påkrevd for å se webskjemaets listevisning. Aktiver {0} for å se listeinnstillinger" @@ -15269,7 +15313,7 @@ msgstr "Logg inn på {0}" msgid "Login token required" msgstr "Påloggingstoken kreves" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "Logg inn med e-postlenke" @@ -15739,7 +15783,7 @@ msgstr "Medium" msgid "Meeting" msgstr "Møte" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "Oppfylles betingelsen?" @@ -15775,7 +15819,7 @@ msgstr "Omtaler" msgid "Menu" msgstr "Meny" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Slå sammen med eksisterende" @@ -15800,16 +15844,16 @@ msgstr "Det er kun mulig å slå sammen gruppe med gruppe eller bladnode med bla #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15846,7 +15890,7 @@ msgstr "Melding sendt" msgid "Message Type" msgstr "Meldingstype" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "Melding kuttet" @@ -15854,7 +15898,7 @@ msgstr "Melding kuttet" msgid "Message from server: {0}" msgstr "Melding fra serveren: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "Melding ikke konfigurert" @@ -16040,7 +16084,7 @@ msgstr "Manglende felt" msgid "Missing Fields" msgstr "Manglende felt" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "Manglende filtre er påkrevd" @@ -16175,7 +16219,7 @@ msgstr "Modulprofil" msgid "Module Profile Name" msgstr "Navn på modulprofil" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "Nullstilling av prosess for onboarding av modul" @@ -16183,7 +16227,7 @@ msgstr "Nullstilling av prosess for onboarding av modul" msgid "Module to Export" msgstr "Modul for eksport" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "Modul {} ble ikke funnet" @@ -16699,7 +16743,7 @@ msgstr "Ny melding fra nettstedets kontaktside" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "Nytt navn" @@ -16803,10 +16847,10 @@ msgid "New value to be set" msgstr "Ny verdi som skal angis" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16891,6 +16935,10 @@ msgstr "Neste handling i e-postmal" msgid "Next Actions HTML" msgstr "Neste handlinger HTML" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16958,8 +17006,8 @@ msgstr "Neste ved klikk" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16995,7 +17043,7 @@ msgid "No Copy" msgstr "Ingen kopi" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17135,7 +17183,7 @@ msgstr "Ingen kommende hendelser" msgid "No address added yet." msgstr "Ingen adresse lagt til ennå." -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "Ingen varsler for i dag" @@ -17175,6 +17223,10 @@ msgstr "Ingen kontakter lagt til ennå." msgid "No contacts linked to document" msgstr "Ingen kontakter koblet til dokumentet" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "Ingen data å eksportere" @@ -17195,7 +17247,7 @@ msgstr "Ingen e-postkonto tilknyttet brukeren. Vennligst legg til en konto under msgid "No email addresses to invite" msgstr "Ingen e-postadresser å invitere" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "Ingen mislykkede logger" @@ -17258,7 +17310,7 @@ msgstr "Antall rader (maks. 500)" msgid "No of Sent SMS" msgstr "Antall sendte SMS" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "Ingen rettigheter for {0}" @@ -17295,7 +17347,7 @@ msgstr "Ingen oppføringer eksporteres" msgid "No rows" msgstr "Ingen rader" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "Ikke noe emne" @@ -17436,8 +17488,8 @@ msgstr "Ingen rettigheter til å lese {0}" msgid "Not Published" msgstr "Ikke publisert" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17490,7 +17542,7 @@ msgstr "Ikke aktiv" msgid "Not allowed for {0}: {1}" msgstr "Ikke tillatt for {0}: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "Det er ikke tillatt å legge ved et {0} -dokument. Vennligst aktiver Tillat utskrift for {0} i utskriftsinnstillingene." @@ -17522,7 +17574,7 @@ msgstr "Ikke i utviklermodus" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "Ikke i utviklermodus! Angi i site_config.json, eller opprett en egendefinert dokumenttype (DocType)." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17645,15 +17697,15 @@ msgstr "Dokument med abbonnert varsling" msgid "Notification sent to" msgstr "Varsel sendt til" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "Varsel: kunden {0} har ikke angitt noe mobilnummer" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "Varsling: dokumentet {0} har ikke angitt noe {1} -tall (felt: {2})" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "Varsel: bruker {0} har ikke angitt noe mobilnummer" @@ -17767,7 +17819,7 @@ msgstr "Antall spørringer" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "Antall vedleggsfelt er større enn {}, grensen er oppdatert til {}." -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "Antall sikkerhetskopier må være større enn null." @@ -17876,14 +17928,30 @@ msgstr "OTP-app" msgid "OTP Issuer Name" msgstr "OTP-utsteders navn" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "Tilbakestilling av OTP-hemmelighet – {0}" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "Engangspassordet er tilbakestilt. Ny registrering kreves ved neste pålogging." +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "OTP-oppsettet med OTP-appen ble ikke fullført. Kontakt administratoren." @@ -17999,7 +18067,7 @@ msgstr "På eller etter" msgid "On or Before" msgstr "På eller før" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "På {0}skrev {1} :" @@ -18059,7 +18127,7 @@ msgstr "Registreringskode for engangspassord (OTP) fra {}" msgid "One of" msgstr "En av" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "Maks 200 innsettinger per forespørsel" @@ -18097,7 +18165,7 @@ msgstr "Send bare poster som er oppdatert i løpet av de siste X timene" msgid "Only Workspace Manager can edit public workspaces" msgstr "Bare Administrator for arbeidsområder kan redigere offentlige arbeidsområder" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "Kun tillatt å eksportere tilpasninger i utviklermodus" @@ -18277,7 +18345,7 @@ msgstr "Åpnet" msgid "Operation" msgstr "Operasjon" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "Operatøren må være en av {0}" @@ -18779,7 +18847,7 @@ msgstr "Overordnet-til-underordnet eller underordnet-til-annen-underordnet grupp msgid "Parentfield not specified in {0}: {1}" msgstr "Overordnet felt ikke spesifisert i {0}: {1}" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "Parenttype, Parent og Parentfield er påkrevd for å sette inn en underordnet post" @@ -18951,6 +19019,10 @@ msgstr "Sti til serversertifikat" msgid "Path to private Key File" msgstr "Sti til privat nøkkelfil" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "Sti {0} er ikke en gyldig sti" @@ -19275,7 +19347,7 @@ msgstr "Angi diagram" msgid "Please Update SMS Settings" msgstr "Oppdater SMS-innstillingene" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "Legg til et emne i e-posten din" @@ -19327,7 +19399,7 @@ msgstr "Sjekk din registrerte e-postadresse for å finne instruksjoner om hvorda msgid "Please click Edit on the Workspace for best results" msgstr "Bruk «Rediger» på arbeidsområdet for best resultat." -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "Klikk på «Eksporter feilaktige rader», rett feilene og importer på nytt." @@ -19367,7 +19439,7 @@ msgstr "Ikke endre overskriftene i malen." msgid "Please duplicate this to make changes" msgstr "Dupliser dette for å gjøre endringer" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "Aktiver minst én sosial påloggingsnøkkel eller LDAP- eller logg inn med e-postlenke før du deaktiverer brukernavn-/passordbasert pålogging." @@ -19483,6 +19555,10 @@ msgstr "Lagre dokumentet før tildeling" msgid "Please save the document before removing assignment" msgstr "Lagre dokumentet før du fjerner tildeling" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "Lagre rapporten først" @@ -19499,7 +19575,7 @@ msgstr "Velg dokumenttype (DocType) først" msgid "Please select Entity Type first" msgstr "Velg enhetstype først" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "Velg minimum passordpoengsum" @@ -19565,7 +19641,7 @@ msgstr "Angi en skrivertilordning for dette utskriftsformatet i skriverinnstilli msgid "Please set filters" msgstr "Angi filtre" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "Angi filterverdi i rapportfiltertabellen." @@ -19581,11 +19657,11 @@ msgstr "Angi følgende dokumenter i dette oversiktspanelet som standard først." msgid "Please set the series to be used." msgstr "Angi hvilken serie som skal brukes." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "Konfigurer SMS før du angir det som autentiseringsmetode, via SMS-innstillinger" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "Opprett en melding først" @@ -19605,23 +19681,27 @@ msgstr "Spesifiser" msgid "Please specify a valid parent DocType for {0}" msgstr "Spesifiser en gyldig overordnet dokumenttype (DocType) for {0}" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "Spesifiser minst 10 minutter på grunn av utløserkadensen til planleggeren." -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "Spesifiser minuttforskyvningen" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "Spesifiser hvilket datofelt som skal krysses av" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "Spesifiser hvilket datetime-felt som må sjekkes" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "Spesifiser hvilket verdifelt som skal krysses av" @@ -19808,7 +19888,7 @@ msgstr "Rendring av forhåndsgenerert rapport feilet" msgid "Preparing Report" msgstr "Forhåndsgenerert rapport" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "Sett malen øverst i e-postmeldingen" @@ -19829,7 +19909,7 @@ msgstr "Trykk Enter for å lagre" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19883,6 +19963,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Tidligere" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "Tidligere registrering" @@ -19932,8 +20016,8 @@ msgstr "Primærnøkkelen til dokumenttypen (DocType) {0} kan ikke endres da det #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -20046,7 +20130,7 @@ msgstr "Skjul i utskrift" msgid "Print Hide If No Value" msgstr "Skjul i utskrift hvis ingen verdi" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "Utskriftsspråk" @@ -20061,10 +20145,8 @@ msgid "Print Server" msgstr "Utskriftsserver" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20686,7 +20768,7 @@ msgstr "Sv:" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "Sv: {0}" @@ -20697,7 +20779,7 @@ msgstr "Sv: {0}" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20936,12 +21018,12 @@ msgstr "Omdirigeringer" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "Redis-mellomlager kjører ikke. Kontakt administrator eller brukerstøtte" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "Gjenta" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "Gjenta siste handling" @@ -21254,7 +21336,7 @@ msgstr "Koblet på nytt" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Last inn på nytt" @@ -21285,7 +21367,7 @@ msgstr "Husk sist valgte verdi" msgid "Remind At" msgstr "Påminn på" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "Påminn meg" @@ -21365,9 +21447,9 @@ msgid "Removed" msgstr "Fjernet" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21395,7 +21477,7 @@ msgstr "Gjengi etiketter til venstre og verdier til høyre i denne delen" msgid "Reopen" msgstr "Gjenåpne" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "Gjenta" @@ -21645,7 +21727,7 @@ msgstr "Rapport påbegynt, klikk for å se status" msgid "Report limit reached" msgstr "Rapportgrensen er nådd" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "Rapporten ble tidsavbrutt." @@ -21839,7 +21921,7 @@ msgstr "Tilbakestill oppsett" msgid "Reset OTP Secret" msgstr "Tilbakestill OTP-hemmelighet" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21995,7 +22077,7 @@ msgid "Resume Sending" msgstr "Gjenoppta sending" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22317,7 +22399,7 @@ msgstr "Radindekser" msgid "Row Name" msgstr "Radnavn" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "Radnummer" @@ -22325,7 +22407,7 @@ msgstr "Radnummer" msgid "Row Values Changed" msgstr "Radverdier endret" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "Rad {0}" @@ -22550,7 +22632,7 @@ msgid "Saturday" msgstr "Lørdag" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22606,13 +22688,13 @@ msgstr "Lagre dokumentet." #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "Lagret" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "Lagrede filtre" @@ -22654,7 +22736,7 @@ msgstr "Skann QR-koden, og skriv inn koden som vises." msgid "Schedule" msgstr "Tidsplan" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "Planlegg Send på" @@ -22718,7 +22800,7 @@ msgstr "Planlegger" msgid "Scheduler Event" msgstr "Planlagt hendelse" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "Planleggeren er inaktiv" @@ -22731,7 +22813,7 @@ msgstr "Planleggerstatus" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "Planleggeren kan ikke aktiveres på nytt når vedlikeholdsmodus er aktiv." -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "Planleggeren er inaktiv. Kan ikke importere data." @@ -23032,8 +23114,8 @@ msgstr "Velg" msgid "Select All" msgstr "Velg alle" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -23099,7 +23181,7 @@ msgstr "Velg dokumenttyper (DocType) for å angi hvilke brukertillatelser som br #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "Velg felt" @@ -23173,7 +23255,7 @@ msgid "Select Page" msgstr "Velg side" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Velg utskriftsformat" @@ -23387,7 +23469,7 @@ msgstr "Send nå" msgid "Send Print as PDF" msgstr "Send utskrift som PDF" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "Send lesebekreftelse" @@ -23446,11 +23528,11 @@ msgstr "Send e-post når dokumentet går over til denne tilstanden." msgid "Send enquiries to this email address" msgstr "Send forespørsler til denne e-postadressen" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "Send påloggingslenke" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "Send meg en kopi" @@ -23674,7 +23756,7 @@ msgstr "Økten er utløpt på grunn av inaktivitet" msgid "Session Expiry (idle timeout)" msgstr "Utløpstid for økter (ved inaktivitet)" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "Utløpstid for økter må være på format {0}" @@ -23719,7 +23801,7 @@ msgstr "Angi dynamiske filtre" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "Angi filtere" @@ -24115,7 +24197,7 @@ msgstr "Vis feil" msgid "Show External Link Warning" msgstr "Vis ekstern kobling advarsel" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "Vis feltnavn (klikk for å kopiere til utklippstavlen)" @@ -24167,7 +24249,7 @@ msgstr "Vis språkvelger" msgid "Show Line Breaks after Sections" msgstr "Vis linjeskift etter seksjoner" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "Vis lenker" @@ -24242,7 +24324,7 @@ msgstr "Vis sidefelt" msgid "Show Social Login Key as Authorization Server" msgstr "Vis sosial påloggingsnøkkel som autorisasjonsserver" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "Vis stikkord" @@ -24268,7 +24350,7 @@ msgstr "Vis totalsummer" msgid "Show Tour" msgstr "Vis omvisning" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "Vis tilbakesporing" @@ -24348,8 +24430,8 @@ msgstr "Vis lenke til dokument" msgid "Show list" msgstr "Vis liste" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "Vis flere detaljer" @@ -24537,7 +24619,7 @@ msgstr "Hopper over kolonne uten navn" msgid "Skipping column {0}" msgstr "Hopper over kolonne {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "Hopper over synkronisering av fixture for dokumenttype (DocType) {0} fra fil {1}" @@ -24933,7 +25015,7 @@ msgstr "Startdato" msgid "Start Date Field" msgstr "Felt for startdato" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "Start import" @@ -25067,7 +25149,7 @@ msgstr "Tidsintervall for statistikk" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25234,9 +25316,9 @@ msgstr "Underdomenet" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Emne" @@ -25380,12 +25462,12 @@ msgstr "Undertittel" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25445,11 +25527,11 @@ msgstr "Vellykket: {0} til {1}" msgid "Successfully Updated" msgstr "Vellykket oppdatert" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "Vellykket import av {0}" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "Vellykket import av {0} ut av {1}-oppføringer." @@ -25465,11 +25547,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "Vellykket oppdatering av oversettelser" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "Vellykket oppdatering av {0}" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "Vellykket oppdatering av {0} av {1}}-oppføringer." @@ -25604,7 +25686,7 @@ msgstr "Synkronisering" msgid "Syncing {0} of {1}" msgstr "Synkronisering {0} av {1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "Syntaksfeil" @@ -25915,7 +25997,7 @@ msgstr "Flervalg av tabeller" msgid "Table Trimmed" msgstr "Tabellen er forkortet" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "Tabellen er oppdatert" @@ -26132,7 +26214,7 @@ msgstr "Takk" msgid "The Auto Repeat for this document has been disabled." msgstr "Automatisk gjentakelse for dette dokumentet er deaktivert." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "CSV-formatet skiller mellom store og små bokstaver" @@ -26145,7 +26227,7 @@ msgstr "Klient-ID-en som ble hentet fra Google Cloud Console under
" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "Betingelsen '{0}' er ugyldig" @@ -26396,7 +26478,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "Det finnes allerede {0} med de samme filtrene i køen:" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "Det kan bare være 9 sideskiftfelt i et webskjema" @@ -26448,7 +26530,7 @@ msgstr "Det oppstod feil" msgid "There were errors while creating the document. Please try again." msgstr "Det oppsto feil under oppretting av dokumentet. Prøv på nytt." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "Det oppsto feil under sending av e-post. Prøv på nytt." @@ -26525,7 +26607,7 @@ msgstr "Denne handlingen kan ikke angres. Vil du fortsette?" msgid "This action is only allowed for {}" msgstr "Denne handlingen er kun tillatt for {}" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "Dette kan ikke angres." @@ -26757,6 +26839,8 @@ msgstr "Dette vil fjerne dataene dine permanent." msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "Dette vil tilbakestille denne omvisningen og vise den til alle brukere. Er du sikker?" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Dette vil avslutte jobben umiddelbart og kan være risikabelt, er du sikker?" @@ -27833,15 +27917,15 @@ msgstr "Tilordne betingelse" msgid "Uncaught Exception" msgstr "Ubehandlet unntak" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "Uendret" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "Angre" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "Angre siste handling" @@ -27850,7 +27934,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "Ubeskyttede anførselstegn i strengliteral: {0} ✅" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "Stopp å følge" @@ -27890,7 +27974,7 @@ msgstr "Ukjent" msgid "Unknown Column: {0}" msgstr "Ukjent kolonne: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "Ukjent avrundingsmetode: {}" @@ -28118,7 +28202,7 @@ msgstr "Oppdaterer globale innstillinger" msgid "Updating naming series options" msgstr "Oppdaterer alternativer for nummerserier" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "Oppdaterer relaterte felt..." @@ -28764,7 +28848,7 @@ msgstr "Gyldighet" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Verdi" @@ -28842,7 +28926,7 @@ msgstr "For stor verdi" msgid "Value {0} missing for {1}" msgstr "Verdien {0} mangler for {1}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "Verdien {0} må være i gyldig varighetsformat: d h m s (dager, timer, minutter, sekunder)" @@ -28864,7 +28948,7 @@ msgstr "Verdana" msgid "Verification" msgstr "Verifisering" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "Verifiseringskode" @@ -28922,7 +29006,7 @@ msgstr "Vis" msgid "View All" msgstr "Vis alle" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "Vis revisjonsspor" @@ -29888,9 +29972,9 @@ msgstr "Gul" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29985,7 +30069,7 @@ msgstr "Du har ikke rettigheter til å eksportere {} dokumenttype (DocType)" msgid "You are not allowed to print this report" msgstr "Du har ikke rettigheter til å skrive ut denne rapporten" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "Du har ikke rettigheter til å sende e-poster om dette dokumentet" @@ -30173,7 +30257,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "Du opprettet dette dokumentet {0}" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "Du har ikke lese- eller valgtillatelser for {}" @@ -30233,7 +30317,7 @@ msgstr "Du har nådd grensen for radstørrelse i databasetabellen: {0}" msgid "You have not entered a value. The field will be set to empty." msgstr "Du har ikke angitt noen verdi. Feltet vil bli satt til tomt." -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "Du må aktivere tofaktorautentisering fra systeminnstillinger." @@ -30342,7 +30426,7 @@ msgstr "Du trenger skriverettighet på {0} {1} for å slå sammen" msgid "You need write permission on {0} {1} to rename" msgstr "Du trenger skriverettighet på {0} {1} for å gi nytt navn til" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "Du må ha rettighet fra {0} for å hente verdier fra {1} {2}" @@ -30516,7 +30600,7 @@ msgstr "Nettstedet ditt er under vedlikehold eller oppdatering." msgid "Your verification code is {0}" msgstr "Din verifiseringskode er {0}" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "Null" @@ -30559,7 +30643,7 @@ msgstr "etter_innsetting" msgid "amend" msgstr "korriger" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "og" @@ -30846,7 +30930,7 @@ msgstr "liste" msgid "logged in" msgstr "innlogget" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "login_required" @@ -31184,7 +31268,7 @@ msgstr "via dataimport" msgid "via Google Meet" msgstr "via Google Meet" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "via varsel" @@ -31393,7 +31477,7 @@ msgstr "{0} allerede avmeldt" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} allerede avmeldt for {1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} og {1}" @@ -31418,7 +31502,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "{0} lagt ved {1}" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "{0} kan ikke være mer enn {1}" @@ -31731,7 +31815,7 @@ msgstr "{0} minutter siden" msgid "{0} months ago" msgstr "{0} måneder siden" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} må være etter {1}" @@ -31788,12 +31872,12 @@ msgstr "{0} av {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} av {1} ({2} rader med underordnede)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "Bare {0} ." -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} eller {1}" @@ -31838,7 +31922,7 @@ msgstr "{0} fjernet {1} rader fra {2}" msgid "{0} role does not have permission on any doctype" msgstr "{0}-rollen har ikke tillatelse til noen dokumenttype (DocType)" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} rad #{1}:" @@ -32117,11 +32201,11 @@ msgstr "{{{0}}} er ikke et gyldig feltnavnmønster. Det må være {{field_name}} msgid "{} Complete" msgstr "{} Fullført" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "{} Ugyldig python-kode på linje {}" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "{} Muligens ugyldig python-kode.
{}" diff --git a/frappe/locale/nl.po b/frappe/locale/nl.po index b9ac651bdd..b3ca8f2d8a 100644 --- a/frappe/locale/nl.po +++ b/frappe/locale/nl.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Dutch\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "1 Google Agenda-evenement gesynchroniseerd." msgid "1 Report" msgstr "1 rapport" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "1 dag geleden" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "1 uur" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "1 uur geleden" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "1 minuut geleden" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "1 maand geleden" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "1 seconde geleden" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "1 week geleden" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "1 jaar geleden" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "2 uur geleden" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "2 maanden geleden" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "2 weken geleden" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "2 jaren geleden" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "3 minuten geleden" @@ -231,7 +231,7 @@ msgstr "4 uren" msgid "5 Records" msgstr "5 records" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "5 dagen geleden" @@ -502,7 +502,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -902,7 +902,7 @@ msgstr "" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Actie is mislukt" @@ -1039,7 +1039,7 @@ msgstr "Toevoegen / bijwerken" msgid "Add A New Rule" msgstr "Voeg een nieuwe regel toe" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Voeg bijlage toe" @@ -1144,7 +1144,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Handtekening toevoegen" @@ -1172,7 +1172,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1579,6 +1579,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1593,7 +1594,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2195,7 +2198,7 @@ msgstr "App Naam" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2357,7 +2360,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "Weet u zeker dat u alle rijen wilt verwijderen?" @@ -2393,7 +2396,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "" @@ -2639,10 +2642,15 @@ msgstr "" msgid "Attach" msgstr "" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Toevoegen Document Print" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2725,6 +2733,11 @@ msgstr "" msgid "Attachment Removed" msgstr "" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2902,7 +2915,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3136,7 +3149,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3154,7 +3167,7 @@ msgstr "" msgid "Back to Home" msgstr "" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3594,7 +3607,7 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3717,7 +3730,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "" @@ -3912,6 +3925,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3949,11 +3970,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4056,7 +4077,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4081,7 +4102,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4101,7 +4122,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4129,7 +4150,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4474,11 +4495,11 @@ msgstr "" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4512,7 +4533,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4565,7 +4586,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4576,7 +4597,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4753,7 +4774,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "" @@ -4877,7 +4898,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5120,7 +5141,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5457,7 +5478,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6068,13 +6089,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "" @@ -6727,7 +6748,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7080,7 +7101,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7236,7 +7257,7 @@ msgstr "" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7325,7 +7346,7 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7487,7 +7508,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7508,11 +7529,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7623,7 +7644,7 @@ msgstr "" msgid "Document Name" msgstr "" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7799,7 +7820,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7827,11 +7848,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7847,7 +7868,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8074,7 +8095,7 @@ msgid "Due Date Based On" msgstr "" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "" @@ -8189,7 +8210,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8238,7 +8259,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "" @@ -8423,7 +8444,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8482,7 +8503,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8632,7 +8653,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8664,7 +8685,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -8861,7 +8882,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9034,7 +9055,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9172,9 +9193,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9194,7 +9215,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9376,7 +9397,7 @@ msgstr "" msgid "Expand" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "" @@ -9473,7 +9494,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9483,7 +9504,7 @@ msgstr "" msgid "Export From" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9659,7 +9680,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9696,11 +9717,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9730,7 +9751,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9790,6 +9811,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9894,7 +9919,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10127,7 +10152,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10387,7 +10412,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10395,7 +10420,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10859,11 +10884,16 @@ msgstr "" msgid "From" msgstr "" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10879,6 +10909,11 @@ msgstr "" msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11040,7 +11075,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11132,7 +11167,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11180,7 +11215,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11877,7 +11912,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12560,11 +12595,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13067,7 +13102,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13161,6 +13196,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13175,7 +13212,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13297,7 +13334,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13832,6 +13869,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13840,16 +13878,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -14901,7 +14945,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15036,7 +15080,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15073,7 +15117,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15543,7 +15587,7 @@ msgstr "" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15579,7 +15623,7 @@ msgstr "" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "" @@ -15604,16 +15648,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15650,7 +15694,7 @@ msgstr "" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15658,7 +15702,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15844,7 +15888,7 @@ msgstr "" msgid "Missing Fields" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -15979,7 +16023,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -15987,7 +16031,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16501,7 +16545,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "" @@ -16603,10 +16647,10 @@ msgid "New value to be set" msgstr "" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16691,6 +16735,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16758,8 +16806,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16795,7 +16843,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16935,7 +16983,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -16975,6 +17023,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -16995,7 +17047,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17058,7 +17110,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17095,7 +17147,7 @@ msgstr "" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17236,8 +17288,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17290,7 +17342,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17322,7 +17374,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17445,15 +17497,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17567,7 +17619,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17676,14 +17728,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17799,7 +17867,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17859,7 +17927,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" @@ -17897,7 +17965,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18077,7 +18145,7 @@ msgstr "" msgid "Operation" msgstr "" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18579,7 +18647,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18751,6 +18819,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19075,7 +19147,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19127,7 +19199,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19167,7 +19239,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19283,6 +19355,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19299,7 +19375,7 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" @@ -19365,7 +19441,7 @@ msgstr "" msgid "Please set filters" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19381,11 +19457,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19405,23 +19481,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19608,7 +19688,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19629,7 +19709,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19683,6 +19763,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19732,8 +19816,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19846,7 +19930,7 @@ msgstr "" msgid "Print Hide If No Value" msgstr "" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19861,10 +19945,8 @@ msgid "Print Server" msgstr "" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20486,7 +20568,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20497,7 +20579,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20736,12 +20818,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21054,7 +21136,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "" @@ -21085,7 +21167,7 @@ msgstr "" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21165,9 +21247,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21195,7 +21277,7 @@ msgstr "" msgid "Reopen" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21445,7 +21527,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21639,7 +21721,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21795,7 +21877,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22117,7 +22199,7 @@ msgstr "" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22125,7 +22207,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22350,7 +22432,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22406,13 +22488,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22454,7 +22536,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22518,7 +22600,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22531,7 +22613,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22832,8 +22914,8 @@ msgstr "" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22899,7 +22981,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -22973,7 +23055,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "" @@ -23187,7 +23269,7 @@ msgstr "" msgid "Send Print as PDF" msgstr "" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "" @@ -23246,11 +23328,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "" @@ -23474,7 +23556,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23519,7 +23601,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -23891,7 +23973,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23943,7 +24025,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24018,7 +24100,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "" @@ -24044,7 +24126,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24124,8 +24206,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24313,7 +24395,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24709,7 +24791,7 @@ msgstr "" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24843,7 +24925,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25010,9 +25092,9 @@ msgstr "" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "" @@ -25156,12 +25238,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25221,11 +25303,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25241,11 +25323,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25380,7 +25462,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25691,7 +25773,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25906,7 +25988,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -25917,7 +25999,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26164,7 +26246,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26216,7 +26298,7 @@ msgstr "" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26293,7 +26375,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26522,6 +26604,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -27590,15 +27674,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27607,7 +27691,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27645,7 +27729,7 @@ msgstr "" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27873,7 +27957,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28519,7 +28603,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "" @@ -28597,7 +28681,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28619,7 +28703,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28677,7 +28761,7 @@ msgstr "" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29643,9 +29727,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29740,7 +29824,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -29928,7 +30012,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -29988,7 +30072,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30097,7 +30181,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30271,7 +30355,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "" @@ -30314,7 +30398,7 @@ msgstr "" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "" @@ -30601,7 +30685,7 @@ msgstr "" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30939,7 +31023,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31148,7 +31232,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "" @@ -31173,7 +31257,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31486,7 +31570,7 @@ msgstr "" msgid "{0} months ago" msgstr "" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31543,12 +31627,12 @@ msgstr "" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "" @@ -31593,7 +31677,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "" @@ -31872,11 +31956,11 @@ msgstr "" msgid "{} Complete" msgstr "" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/pl.po b/frappe/locale/pl.po index 5883445be8..acb703dbf1 100644 --- a/frappe/locale/pl.po +++ b/frappe/locale/pl.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Polish\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "" msgid "1 Report" msgstr "1 raport" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "1 dzień temu" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 godzina" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "Godzinę temu" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "Minutę temu" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "Miesiąc temu" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "1 wiersz do {0}" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "Sekundę temu" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "Tydzień temu" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "Rok temu" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "2 godziny temu" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "2 miesiące temu" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "2 tygodnie temu" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "2 lata temu" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "3 minuty temu" @@ -232,7 +232,7 @@ msgstr "4 godziny" msgid "5 Records" msgstr "5 rekordów" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "5 dni temu" @@ -516,7 +516,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -927,7 +927,7 @@ msgstr "Akcja / Trasa" msgid "Action Complete" msgstr "Akcja ukończona" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Akcja nie powiodła się" @@ -1064,7 +1064,7 @@ msgstr "Dodaj / Aktualizuj" msgid "Add A New Rule" msgstr "Dodaj nową regułę" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Dodać załącznik" @@ -1169,7 +1169,7 @@ msgstr "Dodaj wiersz" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Dodaj podpis" @@ -1197,7 +1197,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "Dodaj tagi" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "Dodaj szablon" @@ -1604,6 +1604,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1618,7 +1619,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2221,7 +2224,7 @@ msgstr "Nazwa aplikacji" msgid "App Name (Client Name)" msgstr "Nazwa aplikacji (Nazwa klienta)" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "Nie znaleziono aplikacji dla modułu: {0}" @@ -2383,7 +2386,7 @@ msgstr "Czy na pewno chcesz anulować zaproszenie?" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "Czy na pewno chcesz usunąć wszystkie wiersze?" @@ -2419,7 +2422,7 @@ msgstr "Czy na pewno chcesz odrzucić zmiany?" msgid "Are you sure you want to generate a new report?" msgstr "Czy na pewno chcesz wygenerować nowy raport?" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "Czy na pewno chcesz połączyć {0} z {1}?" @@ -2665,10 +2668,15 @@ msgstr "" msgid "Attach" msgstr "Załącz" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Załącz wydruk dokumentu" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2751,6 +2759,11 @@ msgstr "" msgid "Attachment Removed" msgstr "Usunięto Attachment" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2928,7 +2941,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3162,7 +3175,7 @@ msgstr "B9" msgid "BCC" msgstr "BCC" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "BCC" @@ -3180,7 +3193,7 @@ msgstr "" msgid "Back to Home" msgstr "Powrót do strony głównej" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "Powrót do logowania" @@ -3620,7 +3633,7 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3743,7 +3756,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "DW" @@ -3938,6 +3951,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3975,11 +3996,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4082,7 +4103,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4107,7 +4128,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4127,7 +4148,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4155,7 +4176,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4500,11 +4521,11 @@ msgstr "Miasto/Miejscowość" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4538,7 +4559,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4591,7 +4612,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4602,7 +4623,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4779,7 +4800,7 @@ msgstr "" msgid "Collapse" msgstr "Zwiń" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Zwiń" @@ -4903,7 +4924,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5146,7 +5167,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5483,7 +5504,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6094,13 +6115,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Dostosuj" @@ -6753,7 +6774,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7106,7 +7127,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7262,7 +7283,7 @@ msgstr "" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7351,7 +7372,7 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7513,7 +7534,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7534,11 +7555,11 @@ msgstr "DocType, na którym ma zastosowanie ten przepływ pracy." msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7649,7 +7670,7 @@ msgstr "" msgid "Document Name" msgstr "" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7825,7 +7846,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7853,11 +7874,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7873,7 +7894,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8100,7 +8121,7 @@ msgid "Due Date Based On" msgstr "Termin wykonania oparty na" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "" @@ -8215,7 +8236,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8264,7 +8285,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "Edytuj DocType" @@ -8449,7 +8470,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8508,7 +8529,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8658,7 +8679,7 @@ msgstr "Opcja synchronizacji poczty elektronicznej" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8690,7 +8711,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -8887,7 +8908,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9060,7 +9081,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9198,9 +9219,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9220,7 +9241,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9402,7 +9423,7 @@ msgstr "" msgid "Expand" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "" @@ -9499,7 +9520,7 @@ msgstr "" msgid "Export Data" msgstr "Eksport danych" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9509,7 +9530,7 @@ msgstr "" msgid "Export From" msgstr "Eksportuj z" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9685,7 +9706,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9722,11 +9743,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9756,7 +9777,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9816,6 +9837,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9920,7 +9945,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10153,7 +10178,7 @@ msgstr "Pliki" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "Filtr" @@ -10413,7 +10438,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10421,7 +10446,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10885,11 +10910,16 @@ msgstr "" msgid "From" msgstr "" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10905,6 +10935,11 @@ msgstr "Od pola daty" msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11066,7 +11101,7 @@ msgstr "Geolokalizacja" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11158,7 +11193,7 @@ msgstr "Skróty globalne" msgid "Global Unsubscribe" msgstr "Globalny Wyrejestrowanie" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11206,7 +11241,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11903,7 +11938,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12586,11 +12621,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13093,7 +13128,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13187,6 +13222,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13201,7 +13238,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13323,7 +13360,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13858,6 +13895,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13866,16 +13904,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -14927,7 +14971,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15062,7 +15106,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15099,7 +15143,7 @@ msgstr "Logowanie do {0}" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "Logowanie przez link" @@ -15569,7 +15613,7 @@ msgstr "" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15605,7 +15649,7 @@ msgstr "Wzmianki" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "" @@ -15630,16 +15674,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15676,7 +15720,7 @@ msgstr "Widomość wysłana" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15684,7 +15728,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15870,7 +15914,7 @@ msgstr "" msgid "Missing Fields" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -16005,7 +16049,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -16013,7 +16057,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16527,7 +16571,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "" @@ -16629,10 +16673,10 @@ msgid "New value to be set" msgstr "Nowa wartość do ustawienia" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16717,6 +16761,10 @@ msgstr "Następny szablon wiadomości e-mail" msgid "Next Actions HTML" msgstr "Następne działania HTML" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16784,8 +16832,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16821,7 +16869,7 @@ msgid "No Copy" msgstr "Brak kopii" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16961,7 +17009,7 @@ msgstr "Brak nadchodzących wydarzeń" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -17001,6 +17049,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -17021,7 +17073,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17084,7 +17136,7 @@ msgstr "Nie rzędów (max 500)" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17121,7 +17173,7 @@ msgstr "" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17262,8 +17314,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17316,7 +17368,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17348,7 +17400,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17471,15 +17523,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17593,7 +17645,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17702,14 +17754,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "Nazwa Emitenta OTP" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17825,7 +17893,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17885,7 +17953,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" @@ -17923,7 +17991,7 @@ msgstr "Tylko wysyłanie rekordów z ostatnich X godzin" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18103,7 +18171,7 @@ msgstr "Otwarty" msgid "Operation" msgstr "Operacja" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18605,7 +18673,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18777,6 +18845,10 @@ msgstr "Ścieżka do certyfikatu serwera" msgid "Path to private Key File" msgstr "Ścieżka do prywatnego pliku kluczy" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "Ścieżka {0} nie jest poprawną ścieżką" @@ -19101,7 +19173,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19153,7 +19225,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19193,7 +19265,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19309,6 +19381,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19325,7 +19401,7 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" @@ -19391,7 +19467,7 @@ msgstr "" msgid "Please set filters" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19407,11 +19483,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19431,23 +19507,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19634,7 +19714,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19655,7 +19735,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19709,6 +19789,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Poprzedni" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19758,8 +19842,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19872,7 +19956,7 @@ msgstr "Ukryj Druk" msgid "Print Hide If No Value" msgstr "Wydrukuj \"Ukryte\" jeżeli nie została podana wartość" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19887,10 +19971,8 @@ msgid "Print Server" msgstr "Serwer druku" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20512,7 +20594,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20523,7 +20605,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20762,12 +20844,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21080,7 +21162,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Odśwież" @@ -21111,7 +21193,7 @@ msgstr "Pamiętaj ostatnio wybrane wartości" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21191,9 +21273,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21221,7 +21303,7 @@ msgstr "" msgid "Reopen" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21471,7 +21553,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21665,7 +21747,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21821,7 +21903,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22143,7 +22225,7 @@ msgstr "" msgid "Row Name" msgstr "Nazwa wiersza" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22151,7 +22233,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22376,7 +22458,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22432,13 +22514,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "Zapisane filtry" @@ -22480,7 +22562,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22544,7 +22626,7 @@ msgstr "" msgid "Scheduler Event" msgstr "Harmonogram wydarzenia" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22557,7 +22639,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22858,8 +22940,8 @@ msgstr "" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22925,7 +23007,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -22999,7 +23081,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Wybierz format wydruku" @@ -23213,7 +23295,7 @@ msgstr "" msgid "Send Print as PDF" msgstr "Wyślij Druk w formacie PDF" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "" @@ -23272,11 +23354,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "Wyślij zapytania na te adresy e-mail" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "" @@ -23500,7 +23582,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23545,7 +23627,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -23917,7 +23999,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23969,7 +24051,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24044,7 +24126,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "Pokaż tagi" @@ -24070,7 +24152,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24150,8 +24232,8 @@ msgstr "" msgid "Show list" msgstr "Pokaż listę" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24339,7 +24421,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24735,7 +24817,7 @@ msgstr "" msgid "Start Date Field" msgstr "Pole daty rozpoczęcia" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24869,7 +24951,7 @@ msgstr "Statystyki Interwał czasowy" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25036,9 +25118,9 @@ msgstr "Subdomena" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Temat" @@ -25182,12 +25264,12 @@ msgstr "Podtytuł" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25247,11 +25329,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25267,11 +25349,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25406,7 +25488,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25717,7 +25799,7 @@ msgstr "Tabela MultiSelect" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25932,7 +26014,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -25943,7 +26025,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26190,7 +26272,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26242,7 +26324,7 @@ msgstr "Wystąpiły błędy" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26319,7 +26401,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26548,6 +26630,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -27616,15 +27700,15 @@ msgstr "Stan niepodpisania" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27633,7 +27717,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27671,7 +27755,7 @@ msgstr "Nieznany" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27899,7 +27983,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28545,7 +28629,7 @@ msgstr "Ważność" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Wartość" @@ -28623,7 +28707,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28645,7 +28729,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28703,7 +28787,7 @@ msgstr "" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29669,9 +29753,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29766,7 +29850,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -29954,7 +30038,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -30014,7 +30098,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30123,7 +30207,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30297,7 +30381,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "" @@ -30340,7 +30424,7 @@ msgstr "po" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "" @@ -30627,7 +30711,7 @@ msgstr "lista" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30965,7 +31049,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31174,7 +31258,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "" @@ -31199,7 +31283,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31512,7 +31596,7 @@ msgstr "" msgid "{0} months ago" msgstr "" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31569,12 +31653,12 @@ msgstr "{0} z {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "" @@ -31619,7 +31703,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "" @@ -31898,11 +31982,11 @@ msgstr "" msgid "{} Complete" msgstr "" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/pt.po b/frappe/locale/pt.po index adc9de750b..baa1bc01d2 100644 --- a/frappe/locale/pt.po +++ b/frappe/locale/pt.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Portuguese\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "1 evento do Google Calendar sincronizado." msgid "1 Report" msgstr "1 Relatório" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "há 1 dia" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "1 hora" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "há 1 hora atrás" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "há 1 minuto atrás" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "1 mês atrás" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "há 1 segundo" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "há 1 semana" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "1 ano atrás" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "há 2 horas" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "há 2 meses" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "há 2 semanas" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "há 2 anos" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "há 3 minutos" @@ -231,7 +231,7 @@ msgstr "4 horas" msgid "5 Records" msgstr "5 registos" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "há 5 dias" @@ -504,7 +504,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -904,7 +904,7 @@ msgstr "" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "" @@ -1041,7 +1041,7 @@ msgstr "" msgid "Add A New Rule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "" @@ -1146,7 +1146,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "" @@ -1174,7 +1174,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1581,6 +1581,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1595,7 +1596,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2197,7 +2200,7 @@ msgstr "" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2359,7 +2362,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "" @@ -2395,7 +2398,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "" @@ -2641,10 +2644,15 @@ msgstr "" msgid "Attach" msgstr "Anexar" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2727,6 +2735,11 @@ msgstr "" msgid "Attachment Removed" msgstr "" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2904,7 +2917,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3138,7 +3151,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3156,7 +3169,7 @@ msgstr "" msgid "Back to Home" msgstr "" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3596,7 +3609,7 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3719,7 +3732,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "" @@ -3914,6 +3927,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3951,11 +3972,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4058,7 +4079,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4083,7 +4104,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4103,7 +4124,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4131,7 +4152,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4477,11 +4498,11 @@ msgstr "" msgid "Clear" msgstr "Claro" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4515,7 +4536,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4568,7 +4589,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4579,7 +4600,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4756,7 +4777,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "" @@ -4880,7 +4901,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5123,7 +5144,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5460,7 +5481,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6071,13 +6092,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "" @@ -6730,7 +6751,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7083,7 +7104,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7239,7 +7260,7 @@ msgstr "" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7328,7 +7349,7 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7490,7 +7511,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7511,11 +7532,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7626,7 +7647,7 @@ msgstr "" msgid "Document Name" msgstr "" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7802,7 +7823,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7830,11 +7851,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7850,7 +7871,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8077,7 +8098,7 @@ msgid "Due Date Based On" msgstr "" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Duplicar" @@ -8192,7 +8213,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8241,7 +8262,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "" @@ -8426,7 +8447,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8485,7 +8506,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8635,7 +8656,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8667,7 +8688,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -8864,7 +8885,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9037,7 +9058,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9175,9 +9196,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9197,7 +9218,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9379,7 +9400,7 @@ msgstr "" msgid "Expand" msgstr "Expandir" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Expandir" @@ -9476,7 +9497,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9486,7 +9507,7 @@ msgstr "" msgid "Export From" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9662,7 +9683,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9699,11 +9720,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9733,7 +9754,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9793,6 +9814,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9897,7 +9922,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10130,7 +10155,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "Filtro" @@ -10390,7 +10415,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10398,7 +10423,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10862,11 +10887,16 @@ msgstr "" msgid "From" msgstr "De" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "De" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10882,6 +10912,11 @@ msgstr "" msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11043,7 +11078,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11135,7 +11170,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11183,7 +11218,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11880,7 +11915,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12563,11 +12598,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13070,7 +13105,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13164,6 +13199,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13178,7 +13215,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13300,7 +13337,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13835,6 +13872,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13843,16 +13881,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -14904,7 +14948,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15039,7 +15083,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15076,7 +15120,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15546,7 +15590,7 @@ msgstr "Médio" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15582,7 +15626,7 @@ msgstr "" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "" @@ -15607,16 +15651,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15653,7 +15697,7 @@ msgstr "" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15661,7 +15705,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15847,7 +15891,7 @@ msgstr "" msgid "Missing Fields" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -15982,7 +16026,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -15990,7 +16034,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16504,7 +16548,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "" @@ -16606,10 +16650,10 @@ msgid "New value to be set" msgstr "" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16694,6 +16738,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16761,8 +16809,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16798,7 +16846,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16938,7 +16986,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -16978,6 +17026,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -16998,7 +17050,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17061,7 +17113,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17098,7 +17150,7 @@ msgstr "" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17239,8 +17291,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17293,7 +17345,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17325,7 +17377,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17448,15 +17500,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17570,7 +17622,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17679,14 +17731,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17802,7 +17870,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17862,7 +17930,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" @@ -17900,7 +17968,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18080,7 +18148,7 @@ msgstr "" msgid "Operation" msgstr "" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18582,7 +18650,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18754,6 +18822,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19078,7 +19150,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19130,7 +19202,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19170,7 +19242,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19286,6 +19358,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19302,7 +19378,7 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" @@ -19368,7 +19444,7 @@ msgstr "" msgid "Please set filters" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19384,11 +19460,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19408,23 +19484,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19611,7 +19691,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19632,7 +19712,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19686,6 +19766,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19735,8 +19819,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19849,7 +19933,7 @@ msgstr "" msgid "Print Hide If No Value" msgstr "" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19864,10 +19948,8 @@ msgid "Print Server" msgstr "" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20489,7 +20571,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20500,7 +20582,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20739,12 +20821,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21057,7 +21139,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "" @@ -21088,7 +21170,7 @@ msgstr "" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21168,9 +21250,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21198,7 +21280,7 @@ msgstr "" msgid "Reopen" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21448,7 +21530,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21642,7 +21724,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21798,7 +21880,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22120,7 +22202,7 @@ msgstr "" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22128,7 +22210,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22353,7 +22435,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22409,13 +22491,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22457,7 +22539,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22521,7 +22603,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22534,7 +22616,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22835,8 +22917,8 @@ msgstr "" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22902,7 +22984,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -22976,7 +23058,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "" @@ -23190,7 +23272,7 @@ msgstr "" msgid "Send Print as PDF" msgstr "" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "" @@ -23249,11 +23331,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "" @@ -23477,7 +23559,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23522,7 +23604,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -23894,7 +23976,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23946,7 +24028,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24021,7 +24103,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "" @@ -24047,7 +24129,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24127,8 +24209,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24316,7 +24398,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24712,7 +24794,7 @@ msgstr "" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24846,7 +24928,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25013,9 +25095,9 @@ msgstr "" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Assunto" @@ -25159,12 +25241,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25224,11 +25306,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25244,11 +25326,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25383,7 +25465,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25694,7 +25776,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25909,7 +25991,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -25920,7 +26002,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26167,7 +26249,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26219,7 +26301,7 @@ msgstr "" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26296,7 +26378,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26525,6 +26607,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -27593,15 +27677,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27610,7 +27694,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27648,7 +27732,7 @@ msgstr "Desconhecido" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27876,7 +27960,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28522,7 +28606,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Valor" @@ -28600,7 +28684,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28622,7 +28706,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28680,7 +28764,7 @@ msgstr "" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29646,9 +29730,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29743,7 +29827,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -29931,7 +30015,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -29991,7 +30075,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30100,7 +30184,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30274,7 +30358,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "" @@ -30317,7 +30401,7 @@ msgstr "" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "" @@ -30604,7 +30688,7 @@ msgstr "" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30942,7 +31026,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31151,7 +31235,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} e {1}" @@ -31176,7 +31260,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31489,7 +31573,7 @@ msgstr "há {0} minutos" msgid "{0} months ago" msgstr "há {0} meses" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} deve ser posterior a {1}" @@ -31546,12 +31630,12 @@ msgstr "{0} de {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} ou {1}" @@ -31596,7 +31680,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} linha #{1}:" @@ -31875,11 +31959,11 @@ msgstr "" msgid "{} Complete" msgstr "{} Concluído" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/pt_BR.po b/frappe/locale/pt_BR.po index 5d4982a3df..64b6609cee 100644 --- a/frappe/locale/pt_BR.po +++ b/frappe/locale/pt_BR.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Portuguese, Brazilian\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "" msgid "1 Report" msgstr "" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "" @@ -231,7 +231,7 @@ msgstr "" msgid "5 Records" msgstr "" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "" @@ -502,7 +502,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -902,7 +902,7 @@ msgstr "Ação / Rota" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "" @@ -1039,7 +1039,7 @@ msgstr "" msgid "Add A New Rule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "" @@ -1144,7 +1144,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "" @@ -1172,7 +1172,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1579,6 +1579,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1593,7 +1594,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2195,7 +2198,7 @@ msgstr "" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2357,7 +2360,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "" @@ -2393,7 +2396,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "" @@ -2639,10 +2642,15 @@ msgstr "" msgid "Attach" msgstr "" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2725,6 +2733,11 @@ msgstr "Link de Anexo" msgid "Attachment Removed" msgstr "Anexo Removido" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2902,7 +2915,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3136,7 +3149,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "CCO" @@ -3154,7 +3167,7 @@ msgstr "" msgid "Back to Home" msgstr "" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3594,7 +3607,7 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3717,7 +3730,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "Cc" @@ -3912,6 +3925,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3949,11 +3970,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4056,7 +4077,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4081,7 +4102,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4101,7 +4122,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4129,7 +4150,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4474,11 +4495,11 @@ msgstr "Cidade/Município" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4512,7 +4533,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4565,7 +4586,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4576,7 +4597,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4753,7 +4774,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "" @@ -4877,7 +4898,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5120,7 +5141,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5457,7 +5478,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6068,13 +6089,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "" @@ -6727,7 +6748,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7080,7 +7101,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7236,7 +7257,7 @@ msgstr "Desativado" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7325,7 +7346,7 @@ msgstr "Não criar novo usuário" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7487,7 +7508,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7508,11 +7529,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7623,7 +7644,7 @@ msgstr "" msgid "Document Name" msgstr "Nome do Documento" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7799,7 +7820,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7827,11 +7848,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7847,7 +7868,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8074,7 +8095,7 @@ msgid "Due Date Based On" msgstr "Data de vencimento baseada em" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Duplicar" @@ -8189,7 +8210,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8238,7 +8259,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "" @@ -8423,7 +8444,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8482,7 +8503,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8632,7 +8653,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8664,7 +8685,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -8861,7 +8882,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9034,7 +9055,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9172,9 +9193,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9194,7 +9215,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9376,7 +9397,7 @@ msgstr "" msgid "Expand" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "" @@ -9473,7 +9494,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9483,7 +9504,7 @@ msgstr "" msgid "Export From" msgstr "Exportar de" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9659,7 +9680,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9696,11 +9717,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9730,7 +9751,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9790,6 +9811,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9894,7 +9919,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10127,7 +10152,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10387,7 +10412,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10395,7 +10420,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10859,11 +10884,16 @@ msgstr "" msgid "From" msgstr "De" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "De" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10879,6 +10909,11 @@ msgstr "Do campo de data" msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11040,7 +11075,7 @@ msgstr "Geolocalização" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11132,7 +11167,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "Cancelar Inscrição Global" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11180,7 +11215,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11877,7 +11912,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12560,11 +12595,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13067,7 +13102,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13161,6 +13196,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13175,7 +13212,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13297,7 +13334,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13832,6 +13869,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13840,16 +13878,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -14901,7 +14945,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15036,7 +15080,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15073,7 +15117,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15543,7 +15587,7 @@ msgstr "Médio" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15579,7 +15623,7 @@ msgstr "Menções" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Mesclar com existente" @@ -15604,16 +15648,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15650,7 +15694,7 @@ msgstr "Mensagem Enviada" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15658,7 +15702,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15844,7 +15888,7 @@ msgstr "" msgid "Missing Fields" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -15979,7 +16023,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -15987,7 +16031,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16501,7 +16545,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "" @@ -16603,10 +16647,10 @@ msgid "New value to be set" msgstr "Novo valor a ser definido" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16691,6 +16735,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16758,8 +16806,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16795,7 +16843,7 @@ msgid "No Copy" msgstr "Nenhuma Cópia" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16935,7 +16983,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -16975,6 +17023,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "Nenhum dado para exportar" @@ -16995,7 +17047,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17058,7 +17110,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17095,7 +17147,7 @@ msgstr "" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17236,8 +17288,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17290,7 +17342,7 @@ msgstr "Inativo" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17322,7 +17374,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17445,15 +17497,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17567,7 +17619,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17676,14 +17728,30 @@ msgstr "Aplicação OTP" msgid "OTP Issuer Name" msgstr "Nome da Emissora OTP" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17799,7 +17867,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17859,7 +17927,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" @@ -17897,7 +17965,7 @@ msgstr "Somente Enviar Registros Atualizados em Últimas X Horas" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18077,7 +18145,7 @@ msgstr "Inaugurado" msgid "Operation" msgstr "Operação" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18579,7 +18647,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18751,6 +18819,10 @@ msgstr "Caminho para o certificado do servidor" msgid "Path to private Key File" msgstr "Caminho para o arquivo de chaves privado" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19075,7 +19147,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19127,7 +19199,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19167,7 +19239,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19283,6 +19355,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19299,7 +19375,7 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" @@ -19365,7 +19441,7 @@ msgstr "" msgid "Please set filters" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19381,11 +19457,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19405,23 +19481,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19608,7 +19688,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19629,7 +19709,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19683,6 +19763,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19732,8 +19816,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19846,7 +19930,7 @@ msgstr "Ocultar Impressão" msgid "Print Hide If No Value" msgstr "Ocultar Impressão se não Preenchido" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19861,10 +19945,8 @@ msgid "Print Server" msgstr "Servidor de impressão" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20486,7 +20568,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20497,7 +20579,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20736,12 +20818,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21054,7 +21136,7 @@ msgstr "Religado" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "" @@ -21085,7 +21167,7 @@ msgstr "Lembrar última seleção" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21165,9 +21247,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21195,7 +21277,7 @@ msgstr "" msgid "Reopen" msgstr "Reabrir" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21445,7 +21527,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21639,7 +21721,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21795,7 +21877,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22117,7 +22199,7 @@ msgstr "" msgid "Row Name" msgstr "Nome da Linha" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22125,7 +22207,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22350,7 +22432,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22406,13 +22488,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22454,7 +22536,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22518,7 +22600,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "Agendador Inativo" @@ -22531,7 +22613,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "O agendador está inativo. Não é possível importar dados." @@ -22832,8 +22914,8 @@ msgstr "Selecionar" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22899,7 +22981,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -22973,7 +23055,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "" @@ -23187,7 +23269,7 @@ msgstr "Enviar Agora" msgid "Send Print as PDF" msgstr "Enviar impressão como PDF" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "" @@ -23246,11 +23328,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "" @@ -23474,7 +23556,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23519,7 +23601,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -23891,7 +23973,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23943,7 +24025,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "Mostrar quebras de linha após seções" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24018,7 +24100,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "" @@ -24044,7 +24126,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24124,8 +24206,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24313,7 +24395,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24709,7 +24791,7 @@ msgstr "Data de Início" msgid "Start Date Field" msgstr "Campo de Data de Início" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24843,7 +24925,7 @@ msgstr "Intervalo de tempo das estatísticas" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25010,9 +25092,9 @@ msgstr "Subdomínio" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Assunto" @@ -25156,12 +25238,12 @@ msgstr "Subtítulo" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25221,11 +25303,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25241,11 +25323,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25380,7 +25462,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25691,7 +25773,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25906,7 +25988,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -25917,7 +25999,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26164,7 +26246,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26216,7 +26298,7 @@ msgstr "" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26293,7 +26375,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26522,6 +26604,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Isso encerrará o trabalho imediatamente e pode ser perigoso, tem certeza?" @@ -27590,15 +27674,15 @@ msgstr "Desatribuir condição" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27607,7 +27691,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27645,7 +27729,7 @@ msgstr "Desconhecido" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27873,7 +27957,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28519,7 +28603,7 @@ msgstr "Validade" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Valor" @@ -28597,7 +28681,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28619,7 +28703,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28677,7 +28761,7 @@ msgstr "Visão" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29643,9 +29727,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29740,7 +29824,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -29928,7 +30012,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -29988,7 +30072,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30097,7 +30181,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30271,7 +30355,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "" @@ -30314,7 +30398,7 @@ msgstr "" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "e" @@ -30601,7 +30685,7 @@ msgstr "" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30939,7 +31023,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31148,7 +31232,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "" @@ -31173,7 +31257,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31486,7 +31570,7 @@ msgstr "" msgid "{0} months ago" msgstr "" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31543,12 +31627,12 @@ msgstr "" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "" @@ -31593,7 +31677,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} linha #{1}:" @@ -31872,11 +31956,11 @@ msgstr "" msgid "{} Complete" msgstr "" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/ru.po b/frappe/locale/ru.po index c09fde606c..3b47aa8bf6 100644 --- a/frappe/locale/ru.po +++ b/frappe/locale/ru.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Russian\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "" msgid "1 Report" msgstr "" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "" @@ -231,7 +231,7 @@ msgstr "" msgid "5 Records" msgstr "" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "" @@ -502,7 +502,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -902,7 +902,7 @@ msgstr "" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "" @@ -1039,7 +1039,7 @@ msgstr "" msgid "Add A New Rule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "" @@ -1144,7 +1144,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "" @@ -1172,7 +1172,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1579,6 +1579,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1593,7 +1594,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2195,7 +2198,7 @@ msgstr "" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2357,7 +2360,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "" @@ -2393,7 +2396,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "" @@ -2639,10 +2642,15 @@ msgstr "" msgid "Attach" msgstr "" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2725,6 +2733,11 @@ msgstr "" msgid "Attachment Removed" msgstr "" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2902,7 +2915,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3136,7 +3149,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3154,7 +3167,7 @@ msgstr "" msgid "Back to Home" msgstr "" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3594,7 +3607,7 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3717,7 +3730,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "" @@ -3912,6 +3925,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3949,11 +3970,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4056,7 +4077,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4081,7 +4102,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4101,7 +4122,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4129,7 +4150,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4475,11 +4496,11 @@ msgstr "" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4513,7 +4534,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4566,7 +4587,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4577,7 +4598,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4754,7 +4775,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "" @@ -4878,7 +4899,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5121,7 +5142,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5458,7 +5479,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6069,13 +6090,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "" @@ -6728,7 +6749,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7081,7 +7102,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7237,7 +7258,7 @@ msgstr "" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7326,7 +7347,7 @@ msgstr "Не создавать нового пользователя" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7488,7 +7509,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7509,11 +7530,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7624,7 +7645,7 @@ msgstr "" msgid "Document Name" msgstr "" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7800,7 +7821,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7828,11 +7849,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7848,7 +7869,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8075,7 +8096,7 @@ msgid "Due Date Based On" msgstr "" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "" @@ -8190,7 +8211,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8239,7 +8260,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "" @@ -8424,7 +8445,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8483,7 +8504,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8633,7 +8654,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8665,7 +8686,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -8862,7 +8883,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9035,7 +9056,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9173,9 +9194,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9195,7 +9216,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9377,7 +9398,7 @@ msgstr "" msgid "Expand" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "" @@ -9474,7 +9495,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9484,7 +9505,7 @@ msgstr "" msgid "Export From" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9660,7 +9681,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9697,11 +9718,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9731,7 +9752,7 @@ msgstr "Неудача при вызове API {0}" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9791,6 +9812,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9895,7 +9920,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10128,7 +10153,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10388,7 +10413,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10396,7 +10421,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10860,11 +10885,16 @@ msgstr "" msgid "From" msgstr "" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10880,6 +10910,11 @@ msgstr "" msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11041,7 +11076,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11133,7 +11168,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11181,7 +11216,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11878,7 +11913,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12561,11 +12596,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13068,7 +13103,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13162,6 +13197,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13176,7 +13213,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13298,7 +13335,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13833,6 +13870,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13841,16 +13879,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -14902,7 +14946,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15037,7 +15081,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15074,7 +15118,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15544,7 +15588,7 @@ msgstr "" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15580,7 +15624,7 @@ msgstr "" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "" @@ -15605,16 +15649,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15651,7 +15695,7 @@ msgstr "" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15659,7 +15703,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15845,7 +15889,7 @@ msgstr "" msgid "Missing Fields" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -15980,7 +16024,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -15988,7 +16032,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16502,7 +16546,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "" @@ -16604,10 +16648,10 @@ msgid "New value to be set" msgstr "" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16692,6 +16736,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16759,8 +16807,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16796,7 +16844,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16936,7 +16984,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -16976,6 +17024,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -16996,7 +17048,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17059,7 +17111,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17096,7 +17148,7 @@ msgstr "" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17237,8 +17289,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17291,7 +17343,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17323,7 +17375,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17446,15 +17498,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17568,7 +17620,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17677,14 +17729,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17800,7 +17868,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17860,7 +17928,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" @@ -17898,7 +17966,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18078,7 +18146,7 @@ msgstr "" msgid "Operation" msgstr "" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18580,7 +18648,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18752,6 +18820,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19076,7 +19148,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19128,7 +19200,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19168,7 +19240,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19284,6 +19356,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19300,7 +19376,7 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" @@ -19366,7 +19442,7 @@ msgstr "" msgid "Please set filters" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19382,11 +19458,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19406,23 +19482,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19609,7 +19689,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19630,7 +19710,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19684,6 +19764,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19733,8 +19817,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19847,7 +19931,7 @@ msgstr "" msgid "Print Hide If No Value" msgstr "" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19862,10 +19946,8 @@ msgid "Print Server" msgstr "" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20487,7 +20569,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20498,7 +20580,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20737,12 +20819,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21055,7 +21137,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "" @@ -21086,7 +21168,7 @@ msgstr "" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21166,9 +21248,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21196,7 +21278,7 @@ msgstr "" msgid "Reopen" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21446,7 +21528,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21640,7 +21722,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21796,7 +21878,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22118,7 +22200,7 @@ msgstr "" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22126,7 +22208,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22351,7 +22433,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22407,13 +22489,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22455,7 +22537,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22519,7 +22601,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22532,7 +22614,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22833,8 +22915,8 @@ msgstr "" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22900,7 +22982,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -22974,7 +23056,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "" @@ -23188,7 +23270,7 @@ msgstr "" msgid "Send Print as PDF" msgstr "" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "" @@ -23247,11 +23329,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "" @@ -23475,7 +23557,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23520,7 +23602,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -23892,7 +23974,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23944,7 +24026,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24019,7 +24101,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "" @@ -24045,7 +24127,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24125,8 +24207,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24314,7 +24396,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24710,7 +24792,7 @@ msgstr "" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24844,7 +24926,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25011,9 +25093,9 @@ msgstr "" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "" @@ -25157,12 +25239,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25222,11 +25304,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25242,11 +25324,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25381,7 +25463,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25692,7 +25774,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25907,7 +25989,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -25918,7 +26000,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26165,7 +26247,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26217,7 +26299,7 @@ msgstr "" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26294,7 +26376,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26523,6 +26605,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Это приведет к немедленному прекращению работы и может быть опасно, вы уверены?" @@ -27591,15 +27675,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27608,7 +27692,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27646,7 +27730,7 @@ msgstr "" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27874,7 +27958,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28520,7 +28604,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "" @@ -28598,7 +28682,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28620,7 +28704,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28678,7 +28762,7 @@ msgstr "" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29644,9 +29728,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29741,7 +29825,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -29929,7 +30013,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -29989,7 +30073,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30098,7 +30182,7 @@ msgstr "Для объединения необходимо разрешение msgid "You need write permission on {0} {1} to rename" msgstr "Чтобы переименовать {0} {1} , вам нужно разрешение на запись." -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30272,7 +30356,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "" @@ -30315,7 +30399,7 @@ msgstr "" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "" @@ -30602,7 +30686,7 @@ msgstr "" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30940,7 +31024,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31149,7 +31233,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "" @@ -31174,7 +31258,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31487,7 +31571,7 @@ msgstr "" msgid "{0} months ago" msgstr "" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31544,12 +31628,12 @@ msgstr "" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "" @@ -31594,7 +31678,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} ряд #{1}:" @@ -31873,11 +31957,11 @@ msgstr "" msgid "{} Complete" msgstr "" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/sr.po b/frappe/locale/sr.po index 0e373f2c6f..884dfd56c8 100644 --- a/frappe/locale/sr.po +++ b/frappe/locale/sr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Serbian (Cyrillic)\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "1 догађај из Google Calendar-а је синхронизован msgid "1 Report" msgstr "1 извештај" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "пре 1 дан" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 сат" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "пре 1 сата" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "пре 1 минут" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "пре 1 месец" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "1 ред у {0}" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "пре 1 секунде" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "пре 1 недељу" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "пре 1 годину" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "пре 2 сата" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "пре 2 месеца" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "пре 2 недеље" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "пре 2 године" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "пре 3 минута" @@ -232,7 +232,7 @@ msgstr "4 сата" msgid "5 Records" msgstr "5 записа" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "пре 5 дана" @@ -620,7 +620,8 @@ msgstr "
Пример поруке
\n\n" msgid "

Condition Examples:

\n" "
doc.status==\"Open\"
doc.due_date==nowdate()
doc.total > 40000\n" "
\n" -msgstr "" +msgstr "

Примери услова:

doc.status==\"Open\"
doc.due_date==nowdate()
doc.total > 40000\n" +"
\n" #. Content of the 'html_condition' (HTML) field in DocType 'Webhook' #: frappe/integrations/doctype/webhook/webhook.json @@ -662,7 +663,7 @@ msgstr "

За интеракцију са горе наведеним HTML-о "some_class_element.textContent = \"New content\";\n" "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "

Ваша тајна једнократне лозинке на {0} је ресетована. Уколико нисте извршили ово постављање и нисте га захтевали, одмах контактирајте свог систем администратора.

" @@ -1086,7 +1087,7 @@ msgstr "Радња / Путања" msgid "Action Complete" msgstr "Радња завршена" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Радња неуспешна" @@ -1223,7 +1224,7 @@ msgstr "Додај / Ажурирај" msgid "Add A New Rule" msgstr "Додај ново правило" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Додај прилог" @@ -1328,7 +1329,7 @@ msgstr "Додај ред" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Додај потпис" @@ -1356,7 +1357,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "Додај ознаке" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "Додај шаблон" @@ -1763,6 +1764,7 @@ msgstr "Поравнај вредности" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1777,7 +1779,9 @@ msgstr "Поравнај вредности" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2380,7 +2384,7 @@ msgstr "Назив апликације" msgid "App Name (Client Name)" msgstr "Назив апликације (назив клијента)" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "Апликација није пронађена за модул: {0}" @@ -2542,7 +2546,7 @@ msgstr "Да ли сте сигурни да желите да откажете msgid "Are you sure you want to clear the assignments?" msgstr "Да ли сте сигурни да желите да очистите додељене задатке?" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "Да ли сте сигурни да желите да обришете све редове?" @@ -2578,7 +2582,7 @@ msgstr "Да ли сте сигурни да желите да одбаците msgid "Are you sure you want to generate a new report?" msgstr "Да ли сте сигурни да желите да генеришете нови извештај?" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "Да ли сте сигурни да желите да спојите {0} са {1}?" @@ -2612,7 +2616,7 @@ msgstr "Да ли сте сигурни да желите да сачувате #: frappe/public/js/frappe/form/workflow.js:114 msgid "Are you sure you want to {0}?" -msgstr "" +msgstr "Да ли сте сигурни да желите да {0}?" #: frappe/core/doctype/document_naming_rule/document_naming_rule.js:16 #: frappe/core/doctype/user_permission/user_permission_list.js:165 @@ -2824,10 +2828,15 @@ msgstr "Барем једно поље матичне врсте докумен msgid "Attach" msgstr "Приложи" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Приложи штампану верзију документа" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "Приложи фајлове" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2910,6 +2919,11 @@ msgstr "Веза ка прилогу" msgid "Attachment Removed" msgstr "Прилог уклоњен" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "Подешавање прилога" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -3087,7 +3101,7 @@ msgstr "Дан аутоматског понављања {0} {1} је понов msgid "Auto Repeat Document Creation Failed" msgstr "Креирање документа за аутоматско понављање није успело" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "Распоред аутоматског понављања" @@ -3321,7 +3335,7 @@ msgstr "Б9" msgid "BCC" msgstr "BCC" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "BCC" @@ -3339,7 +3353,7 @@ msgstr "Назад на радну површину" msgid "Back to Home" msgstr "Назад на почетну страницу" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "Назад на пријављивање" @@ -3780,7 +3794,7 @@ msgstr "Масовно брисање" msgid "Bulk Edit" msgstr "Масовно уређивање" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "Масовно уређивање {0}" @@ -3903,7 +3917,7 @@ msgstr "ОТКАЗАНО" msgid "CC" msgstr "CC" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "CC" @@ -4098,6 +4112,14 @@ msgstr "Откажи све" msgid "Cancel All Documents" msgstr "Откажи све документе" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "Откажи увоз" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "Откажи припремљен извештај" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4135,11 +4157,11 @@ msgstr "Отказивање докумената" msgid "Cancelling {0}" msgstr "Отказивање {0}" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "Није могуће преузети извештај због недовољних дозвола" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "Није могуће преузети вредности" @@ -4242,7 +4264,7 @@ msgstr "Није могуће обрисати {0} јер има зависне msgid "Cannot edit Standard Dashboards" msgstr "Није могуће уредити стандардне контролне табле" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "Није могуће уредити стандардна обавештења. Да бисте их уредили, прво их онемогућите и направите дупликат" @@ -4267,7 +4289,7 @@ msgstr "Није могуће уредити филтере за стандар msgid "Cannot edit filters for standard number cards" msgstr "Није могуће уредити филтере за стандардне бројчане картице" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "Није могуће уредити стандардна поља" @@ -4287,7 +4309,7 @@ msgstr "Није могуће преузети садржај фајла из д msgid "Cannot have multiple printers mapped to a single print format." msgstr "Није могуће мапирати више штампача на један формат за штампу." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "Није могуће увозити табелу са више од 5000 редова." @@ -4315,7 +4337,7 @@ msgstr "Није могуће уклонити ИД поље" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "Није могуће поставити дозволу за 'Извештај' уколико је постављена дозвола за 'Искључиво уколико је аутор'" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "Није могуће подесити обавештење са догађајем {0} за врсту документа {1}" @@ -4605,7 +4627,7 @@ msgstr "Зависни DocType" #: frappe/core/doctype/doctype/doctype.py:1647 msgid "Child Table {0} for field {1} must be virtual" -msgstr "" +msgstr "Зависна табела {0} за поље {1} мора бити виртуелна" #. Description of the 'Is Child Table' (Check) field in DocType 'DocType' #: frappe/core/doctype/doctype/doctype.json @@ -4643,7 +4665,7 @@ msgstr "Изабери метод аутентификације који ће #: frappe/utils/pdf_generator/chrome_pdf_generator.py:94 msgid "Chromium is not downloaded. Please run the setup first." -msgstr "" +msgstr "Chromium није преузет. Молимо Вас да најпре покренете поставку." #. Label of the city (Data) field in DocType 'Contact Us Settings' #: frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py:39 @@ -4661,11 +4683,11 @@ msgstr "Град/Насељено место" msgid "Clear" msgstr "Очисти" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "Очисти и додај шаблон" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "Очисти и додај шаблон" @@ -4699,7 +4721,7 @@ msgstr "Очисти евиденције након (дана)" msgid "Clear User Permissions" msgstr "Очисти корисничке дозволе" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "Очисти имејл поруке и додај шаблон" @@ -4752,7 +4774,7 @@ msgstr "Кликните на {0} да генеришете токен за ос #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "Кликните на табелу да бисте је уредили" @@ -4763,7 +4785,7 @@ msgstr "Кликните да поставите динамичке филтер #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "Кликните да поставите филтере" @@ -4940,7 +4962,7 @@ msgstr "Метода изазова у програмирању" msgid "Collapse" msgstr "Сажми" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Сажми" @@ -5064,7 +5086,7 @@ msgstr "Ширина колоне" msgid "Column width cannot be zero." msgstr "Ширина колоне не може бити нула." -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "Колона {0}" @@ -5307,7 +5329,7 @@ msgstr "Компримовати" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "Услов" @@ -5646,7 +5668,7 @@ msgstr "Копирај embedded code" msgid "Copy error to clipboard" msgstr "Копирај грешку у међуспремник" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "Копирај у међуспремник" @@ -5689,7 +5711,7 @@ msgstr "Није могуће обрадити поље: {0}" #: frappe/utils/pdf_generator/chrome_pdf_generator.py:199 msgid "Could not start Chromium. Check logs for details." -msgstr "" +msgstr "Није могуће покренути Chromium. Проверите евиденцију за детаље." #: frappe/desk/page/setup_wizard/setup_wizard.js:234 msgid "Could not start up:" @@ -6257,13 +6279,13 @@ msgstr "Прилагођавање одбачено" msgid "Customizations Reset" msgstr "Ресетуј прилагођавање" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "Прилагођавање за {0} су извезена:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Прилагоди" @@ -6916,7 +6938,7 @@ msgstr "Кашњење" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7269,7 +7291,7 @@ msgstr "Иконица радне површине већ постоји" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "Детаљи" @@ -7425,7 +7447,7 @@ msgstr "Онемогућено" msgid "Disabled Auto Reply" msgstr "Онемогући аутоматски одговор" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7514,7 +7536,7 @@ msgstr "Немој креирати новог корисника" msgid "Do not create new user if user with email does not exist in the system" msgstr "Немој креирати новог корисника уколико корисник са тим имејлом не постоји у систему" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "Немој уређивати заглавља која су унапред постављена у шаблону" @@ -7679,7 +7701,7 @@ msgstr "DocType је табела / образац у апликацији." msgid "DocType must be Submittable for the selected Doc Event" msgstr "DocType мора бити подложан подношењу за одабрани догађај документа" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "DocType мора бити текст" @@ -7700,11 +7722,11 @@ msgstr "DocType на који је радни ток примењив." msgid "DocType required" msgstr "DocType је неопходан" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "DocType {0} не постоји." -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "DocType {} није пронађен" @@ -7815,7 +7837,7 @@ msgstr "Ред повезаних докумената #{0}: Назив поља msgid "Document Name" msgstr "Назив документа" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "Назив документа мора бити текст" @@ -7991,7 +8013,7 @@ msgid "Document Types and Permissions" msgstr "Врсте и дозволе документа" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "Документ је откључан" @@ -8019,11 +8041,11 @@ msgstr "Документ је могуће уређивати само од ст msgid "Document not Relinked" msgstr "Документ није поново повезиван" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "Документ је преименован из {0} у {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "Преименовање документа из {0} у {1} је стављено у ред за обраду" @@ -8039,7 +8061,7 @@ msgstr "Документ {0} је већ обновљен" msgid "Document {0} has been set to state {1} by {2}" msgstr "Документ {0} је постављен у стање {1} од стране {2}" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "Документ {0} {1} не постоји" @@ -8266,7 +8288,7 @@ msgid "Due Date Based On" msgstr "Датум доспећа заснован на" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Дупликат" @@ -8381,7 +8403,7 @@ msgstr "ИЗЛАЗ" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8430,7 +8452,7 @@ msgstr "Уреди прилагођени блок" msgid "Edit Custom HTML" msgstr "Уреди прилагођени HTML" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "Уреди DocType" @@ -8615,7 +8637,7 @@ msgstr "Избор елемента" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8674,7 +8696,7 @@ msgstr "Имејл налог {0} је онемогућен" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "Имејл адреса" @@ -8824,7 +8846,7 @@ msgstr "Опција за синхронизацију имејла" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "Имејл шаблон" @@ -8856,7 +8878,7 @@ msgstr "Имејл је премештен у отпад" msgid "Email is mandatory to create User Email" msgstr "Имејл је обавезан за креирање корисничког имејла" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "Имејл није послат {0} (отказана претплата / онемогућено)" @@ -8919,7 +8941,7 @@ msgstr "Омогући" #. Label of the enable_action_confirmation (Check) field in DocType 'Workflow' #: frappe/workflow/doctype/workflow/workflow.json msgid "Enable Action Confirmation" -msgstr "" +msgstr "Омогући потврду радње" #. Label of the enable_address_autocompletion (Check) field in DocType #. 'Geolocation Settings' @@ -9053,7 +9075,7 @@ msgstr "Омогући праћење прегледа страница" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "Омогући двофакторску верификацију" @@ -9227,7 +9249,7 @@ msgstr "Унесите клијентски ИД и тајну клијента msgid "Enter Code displayed in OTP App." msgstr "Унесите шифру приказану у апликацији за једнократну лозинку." -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "Унесите примаоце имејла" @@ -9365,9 +9387,9 @@ msgstr "Грешка у клијентској скрипти." msgid "Error in Header/Footer Script" msgstr "Грешка у скрипти заглавља/подножја" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "Грешка у обавештењу" @@ -9387,7 +9409,7 @@ msgstr "Грешка приликом обраде угњеждених филт msgid "Error while connecting to email account {0}" msgstr "Грешка при повезивању са имејл налогом {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "Грешка при обради обавештења {0}. Молимо Вас да исправите Ваш шаблон." @@ -9569,7 +9591,7 @@ msgstr "Постојећа улога" msgid "Expand" msgstr "Прошири" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Прошири" @@ -9666,7 +9688,7 @@ msgstr "Извоз прилагођавања" msgid "Export Data" msgstr "Извоз података" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "Извоз редова који садрже грешку" @@ -9676,7 +9698,7 @@ msgstr "Извоз редова који садрже грешку" msgid "Export From" msgstr "Извоз из" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "Евиденција увоза и извоза" @@ -9852,7 +9874,7 @@ msgstr "Неуспешно брисање {0} докумената: {1}" msgid "Failed to enable scheduler: {0}" msgstr "Неуспешно омогућавање планера: {0}" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "Неуспешна евалуација услова: {}" @@ -9889,11 +9911,11 @@ msgstr "Неуспешан покушај увоза виртуелног doctyp msgid "Failed to optimize image: {0}" msgstr "Неуспешно оптимизовање слике: {0}" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "Неуспешно рендеровање поруке: {0}" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "Није могуће приказати наслов: {0}" @@ -9923,7 +9945,7 @@ msgstr "Неуспех приликом позивања API-ја {0}" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "Неуспешни заказани задаци (последњих 7 дана)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "Неуспех" @@ -9983,6 +10005,10 @@ msgstr "Преузми при чувању уколико је празно" msgid "Fetching default Global Search documents." msgstr "Преузми подразумеване документе за глобалну претрагу." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "Преузимање поља из {0}..." + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -10081,13 +10107,13 @@ msgstr "Поље {0} се односи на непостојећи доцтyпе #: frappe/core/doctype/doctype/doctype.py:1655 msgid "Field {0} must be a virtual field to support virtual doctype." -msgstr "" +msgstr "Поље {0} мора бити виртуелно да би подржавало виртуелни DocType." #: frappe/public/js/frappe/form/form.js:1768 msgid "Field {0} not found." msgstr "Поље {0} није пронађено." -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "Поље {0} у документу {1} није ни поље за мобилни број, ни линк за купца или корисника" @@ -10320,7 +10346,7 @@ msgstr "Фајлови" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "Филтер" @@ -10580,7 +10606,7 @@ msgid "Folio" msgstr "Фолио" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "Прати" @@ -10588,7 +10614,7 @@ msgstr "Прати" msgid "Followed by" msgstr "Праћен од стране" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "Следећи филтери извештаја имају недостајуће вредности:" @@ -10776,7 +10802,7 @@ msgstr "За вредност" #. Description of the 'Subject' (Data) field in DocType 'Notification' #: frappe/email/doctype/notification/notification.json msgid "For a dynamic subject, use Jinja tags like this: {{ doc.name }} Delivered" -msgstr "" +msgstr "За динамички наслов користите Jinja ознаке попут ове: {{ doc.name }} Delivered" #: frappe/public/js/frappe/views/reports/query_report.js:2156 #: frappe/public/js/frappe/views/reports/report_view.js:108 @@ -11053,11 +11079,16 @@ msgstr "Петак" msgid "From" msgstr "Од" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "Од" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "Из поља за прилог" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -11073,6 +11104,11 @@ msgstr "Поље за датум почетка" msgid "From Document Type" msgstr "Од врсте документа" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "Из поља" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11234,7 +11270,7 @@ msgstr "Геолокација" msgid "Geolocation Settings" msgstr "Подешавање геолокације" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "Прикажи данашња обавештења" @@ -11326,7 +11362,7 @@ msgstr "Глобалне пречице" msgid "Global Unsubscribe" msgstr "Глобално отказивање претплате" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "Крени" @@ -11374,7 +11410,7 @@ msgstr "Идите на ову URL адресу након што завршит msgid "Go to {0}" msgstr "Иди на {0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -12071,7 +12107,7 @@ msgstr "Сакриј викенде" msgid "Hide descendant records of For Value." msgstr "Сакриј потомке записа за Вредност." -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "Сакриј детаље" @@ -12332,7 +12368,7 @@ msgstr "Уколико улога нема приступ на нивоу 0, в #. 'Workflow' #: frappe/workflow/doctype/workflow/workflow.json msgid "If checked, a confirmation will be required before performing workflow actions." -msgstr "" +msgstr "Уколико је означено, биће потребна потврда пре извршавања радњи у радном току." #. Description of the 'Is Active' (Check) field in DocType 'Workflow' #: frappe/workflow/doctype/workflow/workflow.json @@ -12754,11 +12790,11 @@ msgstr "Шаблон за увоз треба да буде врсте .csv, .xl msgid "Import template should contain a Header and atleast one row." msgstr "Шаблон за увоз треба да садржи заглавље и барем један ред." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "Увоз је истекао, молимо Вас да покушате поново." -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "Увоз {0} није дозвољен." @@ -13261,7 +13297,7 @@ msgstr "Неважеће" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "Неважећи \"depends_on\" израз" @@ -13355,6 +13391,8 @@ msgstr "Неважећи имејл сервер. Исправите и поку msgid "Invalid Naming Series: {}" msgstr "Неважећа серија именовања: {}" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13369,7 +13407,7 @@ msgstr "Неважећа опција" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "Неважећи излазни имејл сервер или порт: {0}" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "Неважећи излазни формат" @@ -13491,7 +13529,7 @@ msgstr "Неважећи формат поља у {0}: {1}. Користите ' msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "Неважећи назив поља у функцији: {0}. Дозвољени су само једноставни називи поља." -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "Неважећи назив поља {0}" @@ -13704,7 +13742,7 @@ msgstr "Завршено" #. Label of the is_current (Check) field in DocType 'User Session Display' #: frappe/core/doctype/user_session_display/user_session_display.json msgid "Is Current" -msgstr "" +msgstr "Активно" #. Label of the is_custom (Check) field in DocType 'Role' #. Label of the is_custom (Check) field in DocType 'User Document Type' @@ -14026,6 +14064,7 @@ msgstr "Назив задатка" msgid "Job Status" msgstr "Статус задатка" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "Задатак је успешно заустављен" @@ -14034,16 +14073,22 @@ msgstr "Задатак је успешно заустављен" msgid "Job is in {0} state and can't be cancelled" msgstr "Задатак је у стању {0} и не може бити отказан" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "Задатак није покренут." +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "Задатак је успешно заустављен" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "Придружи се видео-конференцији са {0}" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "Иди на поље" @@ -14521,7 +14566,7 @@ msgstr "Последња синхронизација на" #. Label of the last_updated (Datetime) field in DocType 'User Session Display' #: frappe/core/doctype/user_session_display/user_session_display.json msgid "Last Updated" -msgstr "" +msgstr "Последње ажурирање" #: frappe/model/meta.py:57 frappe/public/js/frappe/model/meta.js:213 #: frappe/public/js/frappe/model/model.js:130 @@ -15095,7 +15140,7 @@ msgstr "Учитавање" msgid "Loading Filters..." msgstr "Учитавање филтера..." -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "Учитавање фајлова за увоз..." @@ -15230,7 +15275,7 @@ msgstr "Верификациони код за пријаву од {}" msgid "Login and view in Browser" msgstr "Пријавите се и погледајте у интернет претраживачу" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "Пријављивање је неопходно да бисте видели листу веб-образаца. Омогућите {0} да бисте видели подешавања листе" @@ -15267,7 +15312,7 @@ msgstr "Пријављивање на {0}" msgid "Login token required" msgstr "Неопходан је токен за пријаву" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "Пријављивање путем линка из имејла" @@ -15737,7 +15782,7 @@ msgstr "Средње" msgid "Meeting" msgstr "Састанак" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "Испуњава услов?" @@ -15773,7 +15818,7 @@ msgstr "Помињања" msgid "Menu" msgstr "Мени" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Споји са постојећим" @@ -15798,16 +15843,16 @@ msgstr "Спајање је могуће само између групе и г #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15844,7 +15889,7 @@ msgstr "Порука послата" msgid "Message Type" msgstr "Врста поруке" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "Порука је скраћена" @@ -15852,7 +15897,7 @@ msgstr "Порука је скраћена" msgid "Message from server: {0}" msgstr "Порука са сервера: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "Поруке нису постављене" @@ -16038,7 +16083,7 @@ msgstr "Недостајуће поље" msgid "Missing Fields" msgstr "Недостајућа поља" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "Недостајући обавезни филтери" @@ -16173,7 +16218,7 @@ msgstr "Профил модула" msgid "Module Profile Name" msgstr "Назив профила модула" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "Напредак модула уводне обуке је ресетован" @@ -16181,7 +16226,7 @@ msgstr "Напредак модула уводне обуке је ресето msgid "Module to Export" msgstr "Модул за извоз" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "Модул {} није пронађен" @@ -16697,7 +16742,7 @@ msgstr "Нова порука са контакт странице веб-сај #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "Нови назив" @@ -16801,10 +16846,10 @@ msgid "New value to be set" msgstr "Нова вредност треба да буде постављена" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16889,6 +16934,10 @@ msgstr "Шаблон за следећу радњу путем имејла" msgid "Next Actions HTML" msgstr "HTML за следеће радње" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "Следећи документ" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16956,8 +17005,8 @@ msgstr "Следеће на клик" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16993,7 +17042,7 @@ msgid "No Copy" msgstr "Без копирања" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17133,7 +17182,7 @@ msgstr "Нема предстојећих догађаја" msgid "No address added yet." msgstr "Ниједна адреса још увек није додата." -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "Нема упозорења за данас" @@ -17173,6 +17222,10 @@ msgstr "Нема додатих контакта." msgid "No contacts linked to document" msgstr "Ниједан контакт није повезан са документом" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "Нема поља за валуту у {0}" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "Нема података за извоз" @@ -17193,7 +17246,7 @@ msgstr "Ниједан имејл налог није повезан са кор msgid "No email addresses to invite" msgstr "Није пронађена имејл адреса за позивање" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "Нема неуспешних евиденција" @@ -17256,7 +17309,7 @@ msgstr "Број редова (максимално 500)" msgid "No of Sent SMS" msgstr "Број послатих SMS порука" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "Не постоји дозвола за {0}" @@ -17293,7 +17346,7 @@ msgstr "Ниједан запис неће бити извезен" msgid "No rows" msgstr "Нема редова" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "Нема наслова" @@ -17434,8 +17487,8 @@ msgstr "Није дозвољено за читање {0}" msgid "Not Published" msgstr "Није објављено" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17488,7 +17541,7 @@ msgstr "Није активно" msgid "Not allowed for {0}: {1}" msgstr "Није дозвољено за {0}: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "Није дозвољено приложити документа врсте {0}, молимо Вас да омогућите Дозволи штампу за {0} у подешавањима штампе" @@ -17520,7 +17573,7 @@ msgstr "Није у развојном режиму" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "Није у развојном режиму! Поставите у ситецонфиг.јсон или направите 'Прилагођени' DocType." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17643,15 +17696,15 @@ msgstr "Документ на који је корисник претплаће msgid "Notification sent to" msgstr "Обавештење послато ка" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "Обавештење: купац {0} нема подешен број мобилног телефона" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "Обавештење: документ {0} нема подешен {1} број (поље: {2})" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "Обавештење: корисник {0} нема подешен број мобилног телефона" @@ -17765,7 +17818,7 @@ msgstr "Број упита" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "Број поља за приложене фајлове је већи од {}, ограничење је ажурирано на {}." -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "Број резервних копија мора бити већи од нуле." @@ -17874,14 +17927,30 @@ msgstr "Апликација за једнократну лозинку" msgid "OTP Issuer Name" msgstr "Назив издаваоца једнократне лозинке" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "SMS шаблон за једнократну лозинку" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "SMS шаблон за једнократну лозинку мора да садржи резервисани текст {0} како би се уметнула једнократна лозинка." + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "Ресетовање тајне за једнократну лозинку - {0}" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "Тајна за једнократну лозинку је ресетована. Поновна регистрација биће неопходна приликом следећег пријављивања." +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "Резервисани текст за једнократну лозинку треба да буде дефинисан као {{ otp }} " + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "Поставке једнократне лозинке помоћу апликације за једнократну лозинку нису завршене. Молимо Вас да контактирате администратора." @@ -17997,7 +18066,7 @@ msgstr "На или након" msgid "On or Before" msgstr "На или пре" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "На {0}, {1} је написао/ла:" @@ -18057,7 +18126,7 @@ msgstr "Код за регистрацију једнократне лозинк msgid "One of" msgstr "Један од" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "Дозвољено је искључиво 200 уноса по захтеву" @@ -18095,7 +18164,7 @@ msgstr "Пошаљите само записе ажуриране у после msgid "Only Workspace Manager can edit public workspaces" msgstr "Искључиво менаџер радног простора може да уређује јавне радне просторе" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "Извоз прилагођавања је дозвољен само у развојном режиму" @@ -18275,7 +18344,7 @@ msgstr "Отворено" msgid "Operation" msgstr "Операција" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "Оператор мора бити један од следећих {0}" @@ -18777,7 +18846,7 @@ msgstr "Груписање матичног са зависним или два msgid "Parentfield not specified in {0}: {1}" msgstr "Матично поље није наведено у {0}: {1}" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "Матична врста, матични ентитет и матично поље су неопходни за унос зависног записа" @@ -18949,6 +19018,10 @@ msgstr "Путања до сервер сертификата" msgid "Path to private Key File" msgstr "Путања до фајла са приватним кључем" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "Путања {0} се не налази у оквиру модула {1}" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "Путања {0} није важећа путања" @@ -19273,7 +19346,7 @@ msgstr "Молимо Вас да поставите графикон" msgid "Please Update SMS Settings" msgstr "Молимо Вас да ажурирате SMS подешавања" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "Молимо Вас да додате наслов у Ваш имејл" @@ -19325,7 +19398,7 @@ msgstr "Молимо Вас да проверите своју регистро msgid "Please click Edit on the Workspace for best results" msgstr "Молимо Вас да кликнете на уреди у радном простору за најбоље резултате" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "Молимо Вас да кликнете на 'Извоз редова који садрже грешку', исправите грешке и поново увезете." @@ -19365,7 +19438,7 @@ msgstr "Молимо Вас да не мењате наслове шаблона msgid "Please duplicate this to make changes" msgstr "Молимо Вас да дуплирате ово како бисте направили измене" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "Молимо Вас да омогућите барем један кључ за пријављивање путем друштвених мрежа или LDAP или пријављивање путем имејл линка пре него што онемогућите пријаву помоћу корисничког имена и лозинке." @@ -19481,6 +19554,10 @@ msgstr "Молимо Вас да сачувате документ пре дод msgid "Please save the document before removing assignment" msgstr "Молимо Вас да сачувате документ пре уклањања додељивања" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "Молимо Вас да сачувате образац пре прегледа поруке" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "Молимо Вас да прво сачувате извештај" @@ -19497,7 +19574,7 @@ msgstr "Молимо Вас да прво изаберете DocType" msgid "Please select Entity Type first" msgstr "Молимо Вас да прво изаберете врсту ентитета" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "Молимо Вас да одаберете минималну оцену јачине лозинке" @@ -19563,7 +19640,7 @@ msgstr "Молимо Вас да поставите мапирање штамп msgid "Please set filters" msgstr "Молимо Вас да поставите филтере" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "Молимо Вас да поставите вредности филтера у табели филтер извештаја." @@ -19579,11 +19656,11 @@ msgstr "Молимо Вас да прво поставите следећа до msgid "Please set the series to be used." msgstr "Молимо Вас да поставите серију која ће се користити." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "Молимо Вас да поставите SMS пре него што га поставите као метод аутентификације, путем SMS подешавања" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "Молимо Вас да прво поставите поруку" @@ -19603,23 +19680,27 @@ msgstr "Молимо Вас да наведете" msgid "Please specify a valid parent DocType for {0}" msgstr "Молимо Вас да наведете важећи матични DocType за {0}" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "Молимо Вас да наведете најмање 10 минута због учесталости покретања планера" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "Молимо Вас да наведете из ког поља желите да приложите фајлове" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "Молимо Вас да наведете одступање и минутима" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "Молимо Вас да наведете које поље за датум мора бити проверено" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "Молимо Вас да наведете које поље за датум и време мора бити проверено" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "Молимо Вас да наведете које поље за вредност мора бити проверено" @@ -19806,7 +19887,7 @@ msgstr "Приказ припремљеног извештаја није усп msgid "Preparing Report" msgstr "Припрема извештаја" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "Додај шаблон на почетак имејл поруке" @@ -19827,7 +19908,7 @@ msgstr "Притисните Enter да сачувате" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19881,6 +19962,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Претходно" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "Претходни документ" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "Претходно подношење" @@ -19930,8 +20015,8 @@ msgstr "Примарни кључ за DocType {0} не може бити про #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -20044,7 +20129,7 @@ msgstr "Сакриј штампу" msgid "Print Hide If No Value" msgstr "Сакриј штампу уколико нема вредности" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "Језик штампе" @@ -20059,10 +20144,8 @@ msgid "Print Server" msgstr "Сервер за штампу" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20684,7 +20767,7 @@ msgstr "Re:" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "Re: {0}" @@ -20695,7 +20778,7 @@ msgstr "Re: {0}" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20934,12 +21017,12 @@ msgstr "Преусмеравања" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "Redis cache сервер није покренут. Молимо Вас да контактирате администратор / техничку подршку" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "Врати" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "Врати последњу радњу" @@ -21252,7 +21335,7 @@ msgstr "Поново повезано" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Поновно учитавање" @@ -21283,7 +21366,7 @@ msgstr "Запамти последњу изабрану вредност" msgid "Remind At" msgstr "Подсетник у" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "Подсети ме" @@ -21363,9 +21446,9 @@ msgid "Removed" msgstr "Уклоњено" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21393,7 +21476,7 @@ msgstr "Приказивања ознака са леве стране и вре msgid "Reopen" msgstr "Поново отвори" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "Понови" @@ -21643,7 +21726,7 @@ msgstr "Извештај је покренут, кликните да бисте msgid "Report limit reached" msgstr "Достигнуто је ограничење извештаја" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "Извештај је истекао." @@ -21837,7 +21920,7 @@ msgstr "Ресетуј распоред" msgid "Reset OTP Secret" msgstr "Ресетуј тајну једнократне лозинке" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21993,7 +22076,7 @@ msgid "Resume Sending" msgstr "Настави слање" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22315,7 +22398,7 @@ msgstr "Индекси реда" msgid "Row Name" msgstr "Назив реда" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "Број реда" @@ -22323,7 +22406,7 @@ msgstr "Број реда" msgid "Row Values Changed" msgstr "Вредности у реду су измењене" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "Ред {0}" @@ -22548,7 +22631,7 @@ msgid "Saturday" msgstr "Субота" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22604,13 +22687,13 @@ msgstr "Сачувај документ." #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "Сачувано" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "Сачувани филтери" @@ -22652,7 +22735,7 @@ msgstr "Скенирај QR код и унеси приказани код." msgid "Schedule" msgstr "Распоред" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "Заказати слање у" @@ -22716,7 +22799,7 @@ msgstr "Планер" msgid "Scheduler Event" msgstr "Догађај планера" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "Планер је неактиван" @@ -22729,7 +22812,7 @@ msgstr "Статус планера" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "Планер се не може поново омогућити док је режим одржавања активан." -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "Планер је неактиван. Нема могућности увоза података." @@ -23030,8 +23113,8 @@ msgstr "Изабери" msgid "Select All" msgstr "Изабери све" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -23097,7 +23180,7 @@ msgstr "Изаберите врсте докумената како бисте #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "Изабери поље" @@ -23171,7 +23254,7 @@ msgid "Select Page" msgstr "Изабери страницу" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Изабери формат штампе" @@ -23385,7 +23468,7 @@ msgstr "Пошаљи сада" msgid "Send Print as PDF" msgstr "Пошаљи као PDF за штампу" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "Пошаљи потврду о читању" @@ -23444,11 +23527,11 @@ msgstr "Пошаљи имејл када документ пређе у стањ msgid "Send enquiries to this email address" msgstr "Пошаљи упите на ову имејл адресу" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "Пошаљи линк за пријаву" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "Пошаљи ми копију" @@ -23638,7 +23721,7 @@ msgstr "Услуга" #. Display' #: frappe/core/doctype/user_session_display/user_session_display.json msgid "Session Created" -msgstr "" +msgstr "Сесија креирана" #. Name of a DocType #: frappe/core/doctype/session_default/session_default.json @@ -23672,14 +23755,14 @@ msgstr "Сесија је истекла" msgid "Session Expiry (idle timeout)" msgstr "Истек сесије (време неактивности)" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "Истек сесије мора бити у формату {0}" #. Label of the sessions_tab (Tab Break) field in DocType 'User' #: frappe/core/doctype/user/user.json msgid "Sessions" -msgstr "" +msgstr "Сесије" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:400 #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:487 @@ -23717,7 +23800,7 @@ msgstr "Постави динамичке филтере" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "Постави филтере" @@ -24113,7 +24196,7 @@ msgstr "Прикажи грешку" msgid "Show External Link Warning" msgstr "Прикажи упозорење за екстерне линкове" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "Прикажи назив поља (кликни за копирање)" @@ -24165,7 +24248,7 @@ msgstr "Прикажи избор језика" msgid "Show Line Breaks after Sections" msgstr "Прикажи прелом линије након одељка" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "Прикажи линкове" @@ -24240,7 +24323,7 @@ msgstr "Прикажи бочну траку" msgid "Show Social Login Key as Authorization Server" msgstr "Прикажи кључ за пријављивање путем друштвених мрежа као ауторизациони сервер" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "Прикажи ознаке" @@ -24266,7 +24349,7 @@ msgstr "Прикажи укупне вредности" msgid "Show Tour" msgstr "Прикажи обилазак" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "Прикажи след грешке" @@ -24346,8 +24429,8 @@ msgstr "Прикажи линк ка документу" msgid "Show list" msgstr "Прикажи листу" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "Прикажи више детаља" @@ -24408,7 +24491,7 @@ msgstr "Бочна трака и коментари" #. Label of the sign_out (Button) field in DocType 'User Session Display' #: frappe/core/doctype/user_session_display/user_session_display.json msgid "Sign Out" -msgstr "" +msgstr "Одјава" #. Label of the sign_up_and_confirmation_section (Section Break) field in #. DocType 'Email Group' @@ -24535,7 +24618,7 @@ msgstr "Прескакање колона без назива" msgid "Skipping column {0}" msgstr "Прескакање колоне {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "Прескакање синхронизације података за доцтyпе {0} из фајла {1}" @@ -24931,7 +25014,7 @@ msgstr "Датум почетка" msgid "Start Date Field" msgstr "Поље за датум почетка" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "Почетак увоза" @@ -25065,7 +25148,7 @@ msgstr "Временски интервал статистике" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25232,9 +25315,9 @@ msgstr "Поддомен" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Наслов" @@ -25378,12 +25461,12 @@ msgstr "Поднаслов" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25443,11 +25526,11 @@ msgstr "Успешно: {0} до {1}" msgid "Successfully Updated" msgstr "Успешно ажурирано" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "Успешно увезено {0}" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "Успешно увезено {0} од {1} записа." @@ -25457,17 +25540,17 @@ msgstr "Успешно је ресетован статус уводне обу #: frappe/core/doctype/user/user.py:1451 msgid "Successfully signed out" -msgstr "" +msgstr "Успешно одјављивање" #: frappe/public/js/frappe/views/translation_manager.js:22 msgid "Successfully updated translations" msgstr "Успешно ажурирани преводи" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "Успешно ажурирано {0}" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "Успешно ажурирано {0} од {1} записа." @@ -25602,7 +25685,7 @@ msgstr "Синхронизовање" msgid "Syncing {0} of {1}" msgstr "Синхронизовање {0} од {1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "Грешка у синтакси" @@ -25913,7 +25996,7 @@ msgstr "Вишеструки одабир у табели" msgid "Table Trimmed" msgstr "Скраћена табела" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "Табела ажурирана" @@ -26130,7 +26213,7 @@ msgstr "Хвала" msgid "The Auto Repeat for this document has been disabled." msgstr "Аутоматско понављање за овај документ је онемогућено." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "CSV формат разликује велика и мала слова" @@ -26143,7 +26226,7 @@ msgstr "ИД клијента добијен путем Google Cloud конзо "\"APIs & Services\" > \"Credentials\"\n" "
" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "Услов '{0}' је неважећи" @@ -26394,7 +26477,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "Већ постоји {0} са истим филтерима у реду чекања:" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "У веб-обрасцу може бити највише 9 поља за прелом странице" @@ -26446,7 +26529,7 @@ msgstr "Дошло је до грешака" msgid "There were errors while creating the document. Please try again." msgstr "Дошло је до грешака приликом креирања документа. Молимо Вас да покушате поново." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "Дошло је до грешке приликом слања имејла. Молимо Вас да покушате поново." @@ -26523,7 +26606,7 @@ msgstr "Ова радња је неповратна. Да ли желите да msgid "This action is only allowed for {}" msgstr "Ова радња је дозвољена само за {}" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "Ово се не може опозвати" @@ -26756,6 +26839,8 @@ msgstr "Ово ће трајно обрисати Ваше податке." msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "Ово ће ресетовати обилазак и приказати је свим корисницима. Да ли сте сигурни?" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Ово ће тренутно прекинути задатак и може бити ризично, да ли сте сигурни?" @@ -27832,15 +27917,15 @@ msgstr "Уклони додељивање услова" msgid "Uncaught Exception" msgstr "Неухваћени изузетак" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "Неизмењено" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "Поништи" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "Поништи последњу радњу" @@ -27849,7 +27934,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "Наводници нису правилно избегнути у текстуалном изразу: {0}" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "Заустави праћење" @@ -27889,7 +27974,7 @@ msgstr "Непознат" msgid "Unknown Column: {0}" msgstr "Непозната колона: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "Непознат метод заокруживања: {}" @@ -28117,7 +28202,7 @@ msgstr "Ажурирање глобалних подешавања" msgid "Updating naming series options" msgstr "Ажурирање опција за серију именовања" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "Ажурирање повезаних поља..." @@ -28511,7 +28596,7 @@ msgstr "Корисник бира врсту документа" #. Name of a DocType #: frappe/core/doctype/user_session_display/user_session_display.json msgid "User Session Display" -msgstr "" +msgstr "Приказ корисничке сесије" #. Label of a standard navbar item #. Type: Action @@ -28763,7 +28848,7 @@ msgstr "Важење" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Вредност" @@ -28841,7 +28926,7 @@ msgstr "Вредност је превелика" msgid "Value {0} missing for {1}" msgstr "Вредност {0} недостаје за {1}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "Вредност {0} мора бити у важећем формату трајања: д х м с" @@ -28863,7 +28948,7 @@ msgstr "Вердана" msgid "Verification" msgstr "Верификација" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "Верификациони код" @@ -28921,7 +29006,7 @@ msgstr "Приказ" msgid "View All" msgstr "Прикажи све" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "Прикажи историју измена" @@ -29032,7 +29117,7 @@ msgstr "Виртуелни DocType {} захтева редефинисање и #: frappe/core/doctype/doctype/doctype.py:1658 msgid "Virtual tables must be virtual fields" -msgstr "" +msgstr "Виртуелне табеле морају бити виртуелна поља" #. Label of the visibility_section (Section Break) field in DocType 'DocField' #: frappe/core/doctype/docfield/docfield.json @@ -29887,9 +29972,9 @@ msgstr "Жута" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29984,7 +30069,7 @@ msgstr "Немате дозволу да извезете DocType {}" msgid "You are not allowed to print this report" msgstr "Немате дозволу да одштампате овај извештај" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "Немате дозволу да пошаљете имејл везан за овај документ" @@ -30172,7 +30257,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "Ви сте креирали овај документ {0}" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "Немате дозволу за читање или избор за {}" @@ -30232,7 +30317,7 @@ msgstr "Достигли сте ограничење броја редова у msgid "You have not entered a value. The field will be set to empty." msgstr "Нисте унели вредност. Поље ће бити постављено као празно." -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "Морате омогућити двофакторску аутентификацију у подешавањима система." @@ -30341,7 +30426,7 @@ msgstr "Потребна Вам је дозвола за измену на {0} { msgid "You need write permission on {0} {1} to rename" msgstr "Потребна Вам је дозвола за измену на {0} {1} за преименовање" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "Потребна Вам је дозвола {0} да бисте преузели вредности из {1} {2}" @@ -30515,7 +30600,7 @@ msgstr "Ваш сајт је тренутно на одржавању или с msgid "Your verification code is {0}" msgstr "Ваш верификациони код је {0}" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "Нула" @@ -30558,7 +30643,7 @@ msgstr "афтеринсерт" msgid "amend" msgstr "измени" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "и" @@ -30599,7 +30684,7 @@ msgstr "отказано" #. Option for the 'PDF Generator' (Select) field in DocType 'Print Format' #: frappe/printing/doctype/print_format/print_format.json msgid "chrome" -msgstr "" +msgstr "chrome" #: frappe/templates/includes/list/filters.html:19 msgid "clear" @@ -30845,7 +30930,7 @@ msgstr "листа" msgid "logged in" msgstr "пријављен" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "login_required" @@ -31183,7 +31268,7 @@ msgstr "путем увоза података" msgid "via Google Meet" msgstr "путем Google Meet" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "путем обавештења" @@ -31392,7 +31477,7 @@ msgstr "{0} је већ отказао претплату" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} је већ отказао претплату за {1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} и {1}" @@ -31417,7 +31502,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "{0} приложен {1}" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "{0} не може бити веће од {1}" @@ -31730,7 +31815,7 @@ msgstr "пре {0} минута" msgid "{0} months ago" msgstr "пре {0} месеци" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} мора бити након {1}" @@ -31787,12 +31872,12 @@ msgstr "{0} од {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} од {1} ({2} редова са зависним подацима)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "само {0}." -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} или {1}" @@ -31837,7 +31922,7 @@ msgstr "{0} је уклонио {1} редова из {2}" msgid "{0} role does not have permission on any doctype" msgstr "Улога {0} нема дозволе ни за једну врсту документа" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} ред#{1}:" @@ -32116,11 +32201,11 @@ msgstr "{{{0}}} није исправан формат назива поља. Т msgid "{} Complete" msgstr "{} завршено" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "{} Неважећи пyтхон код на линији {}" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "{} Потенцијално неважећи пyтхон код.
{}" diff --git a/frappe/locale/sr_CS.po b/frappe/locale/sr_CS.po index c85531d8b3..5c207bc8d3 100644 --- a/frappe/locale/sr_CS.po +++ b/frappe/locale/sr_CS.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:49\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Serbian (Latin)\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "1 događaj iz Google Calendar-a je sinhronizovan." msgid "1 Report" msgstr "1 izveštaj" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "pre 1 dan" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 sat" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "pre 1 sata" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "pre 1 minut" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "pre 1 mesec" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "1 red u {0}" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "pre 1 sekunde" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "pre 1 nedelju" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "pre 1 godinu" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "pre 2 sata" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "pre 2 meseca" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "pre 2 nedelje" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "pre 2 godine" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "pre 3 minuta" @@ -232,7 +232,7 @@ msgstr "4 sata" msgid "5 Records" msgstr "5 zapisa" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "pre 5 dana" @@ -620,7 +620,8 @@ msgstr "
Primer poruke
\n\n" msgid "

Condition Examples:

\n" "
doc.status==\"Open\"
doc.due_date==nowdate()
doc.total > 40000\n" "
\n" -msgstr "" +msgstr "

Primeri uslova:

doc.status==\"Open\"
doc.due_date==nowdate()
doc.total > 40000\n" +"
\n" #. Content of the 'html_condition' (HTML) field in DocType 'Webhook' #: frappe/integrations/doctype/webhook/webhook.json @@ -662,7 +663,7 @@ msgstr "

Za interakciju sa gore navedenim HTML-om neophodno je da koristite `r "some_class_element.textContent = \"Novi sadržaj\";\n" "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "

Vaša tajna jednokratne lozinke na {0} je resetovana. Ukoliko niste izvršili ovo postavljanje i niste ga zahtevali, odmah kontaktirajte svog sistem administratora.

" @@ -1087,7 +1088,7 @@ msgstr "Radnja / Putanja" msgid "Action Complete" msgstr "Radnja završena" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Radnja neuspešna" @@ -1224,7 +1225,7 @@ msgstr "Dodaj / Ažuriraj" msgid "Add A New Rule" msgstr "Dodaj novo pravilo" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Dodaj prilog" @@ -1329,7 +1330,7 @@ msgstr "Dodaj red" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Dodaj potpis" @@ -1357,7 +1358,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "Dodaj oznake" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "Dodaj šablon" @@ -1764,6 +1765,7 @@ msgstr "Poravnaj vrednosti" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1778,7 +1780,9 @@ msgstr "Poravnaj vrednosti" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2381,7 +2385,7 @@ msgstr "Naziv aplikacije" msgid "App Name (Client Name)" msgstr "Naziv aplikacije (naziv klijenta)" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "Aplikacija nije pronađena za modul: {0}" @@ -2543,7 +2547,7 @@ msgstr "Da li ste sigurni da želite da otkažete pozivnicu?" msgid "Are you sure you want to clear the assignments?" msgstr "Da li ste sigurni da želite da očistite dodeljene zadatke?" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "Da li ste sigurni da želite da obrišete sve redove?" @@ -2579,7 +2583,7 @@ msgstr "Da li ste sigurni da želite da odbacite promene?" msgid "Are you sure you want to generate a new report?" msgstr "Da li ste sigurni da želite da generišete novi izveštaj?" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "Da li ste sigurni da želite da spojite {0} sa {1}?" @@ -2613,7 +2617,7 @@ msgstr "Da li ste sigurni da želite da sačuvate ovaj dokument?" #: frappe/public/js/frappe/form/workflow.js:114 msgid "Are you sure you want to {0}?" -msgstr "" +msgstr "Da li ste sigurni da želite da {0}?" #: frappe/core/doctype/document_naming_rule/document_naming_rule.js:16 #: frappe/core/doctype/user_permission/user_permission_list.js:165 @@ -2825,10 +2829,15 @@ msgstr "Barem jedno polje matične vrste dokumenta je obavezno" msgid "Attach" msgstr "Priloži" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Priloži štampanu verziju dokumenta" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "Priloži fajlove" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2911,6 +2920,11 @@ msgstr "Veza ka prilogu" msgid "Attachment Removed" msgstr "Prilog uklonjen" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "Podešavanje priloga" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -3088,7 +3102,7 @@ msgstr "Dan automatskog ponavljanja {0} {1} je ponovljen." msgid "Auto Repeat Document Creation Failed" msgstr "Kreiranje dokumenta za automatsko ponavljanje nije uspelo" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "Raspored automatskog ponavljanja" @@ -3322,7 +3336,7 @@ msgstr "B9" msgid "BCC" msgstr "BCC" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "BCC" @@ -3340,7 +3354,7 @@ msgstr "Nazad na radnu površinu" msgid "Back to Home" msgstr "Nazad na početnu stranicu" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "Nazad na prijavljivanje" @@ -3781,7 +3795,7 @@ msgstr "Masovno brisanje" msgid "Bulk Edit" msgstr "Masovno uređivanje" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "Masovno uređivanje {0}" @@ -3904,7 +3918,7 @@ msgstr "OTKAZANO" msgid "CC" msgstr "CC" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "CC" @@ -4099,6 +4113,14 @@ msgstr "Otkaži sve" msgid "Cancel All Documents" msgstr "Otkaži sve dokumente" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "Otkaži uvoz" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "Otkaži pripremljen izveštaj" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4136,11 +4158,11 @@ msgstr "Otkazivanje dokumenata" msgid "Cancelling {0}" msgstr "Otkazivanje {0}" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "Nije moguće preuzeti izveštaj zbog nedovoljnih dozvola" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "Nije moguće preuzeti vrednosti" @@ -4243,7 +4265,7 @@ msgstr "Nije moguće obrisati {0} jer ima zavisne čvorove" msgid "Cannot edit Standard Dashboards" msgstr "Nije moguće urediti standardne kontrolne table" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "Nije moguće urediti standardna obaveštenja. Da biste ih uredili, prvo ih onemogućite i napravite duplikat" @@ -4268,7 +4290,7 @@ msgstr "Nije moguće urediti filtere za standardne grafikone" msgid "Cannot edit filters for standard number cards" msgstr "Nije moguće urediti filtere za standardne brojčane kartice" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "Nije moguće urediti standardna polja" @@ -4288,7 +4310,7 @@ msgstr "Nije moguće preuzeti sadržaj fajla iz datoteke" msgid "Cannot have multiple printers mapped to a single print format." msgstr "Nije moguće mapirati više štampača na jedan format za štampu." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "Nije moguće uvoziti tabelu sa više od 5000 redova." @@ -4316,7 +4338,7 @@ msgstr "Nije moguće ukloniti ID polje" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "Nije moguće postaviti dozvolu za 'Izveštaj' ukoliko je postavljena dozvola za 'Isključivo ukoliko je autor'" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "Nije moguće podesiti obaveštenje sa događajem {0} za vrstu dokumenta {1}" @@ -4606,7 +4628,7 @@ msgstr "Zavisni DocType" #: frappe/core/doctype/doctype/doctype.py:1647 msgid "Child Table {0} for field {1} must be virtual" -msgstr "" +msgstr "Zavisna tabela {0} za polje {1} mora biti virtuelna" #. Description of the 'Is Child Table' (Check) field in DocType 'DocType' #: frappe/core/doctype/doctype/doctype.json @@ -4644,7 +4666,7 @@ msgstr "Izaberi metod autentifikacije koji će koristiti svi korisnici" #: frappe/utils/pdf_generator/chrome_pdf_generator.py:94 msgid "Chromium is not downloaded. Please run the setup first." -msgstr "" +msgstr "Chromium nije preuzet. Molimo Vas da najpre pokrenete postavku." #. Label of the city (Data) field in DocType 'Contact Us Settings' #: frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py:39 @@ -4662,11 +4684,11 @@ msgstr "Grad/Naseljeno mesto" msgid "Clear" msgstr "Očisti" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "Očisti i dodaj šablon" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "Očisti i dodaj šablon" @@ -4700,7 +4722,7 @@ msgstr "Očisti evidencije nakon (dana)" msgid "Clear User Permissions" msgstr "Očisti korisničke dozvole" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "Očisti imejl poruke i dodaj šablon" @@ -4753,7 +4775,7 @@ msgstr "Kliknite na {0} da generišete token za osvežavanje." #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "Kliknite na tabelu da biste je uredili" @@ -4764,7 +4786,7 @@ msgstr "Kliknite da postavite dinamičke filtere" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "Kliknite da postavite filtere" @@ -4941,7 +4963,7 @@ msgstr "Metoda izazova u programiranju" msgid "Collapse" msgstr "Sažmi" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Sažmi" @@ -5065,7 +5087,7 @@ msgstr "Širina kolone" msgid "Column width cannot be zero." msgstr "Širina kolone ne može biti nula." -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "Kolona {0}" @@ -5308,7 +5330,7 @@ msgstr "Komprimovati" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "Uslov" @@ -5647,7 +5669,7 @@ msgstr "Kopiraj embedded code" msgid "Copy error to clipboard" msgstr "Kopiraj grešku u međuspremnik" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "Kopiraj u međuspremnik" @@ -5690,7 +5712,7 @@ msgstr "Nije moguće obraditi polje: {0}" #: frappe/utils/pdf_generator/chrome_pdf_generator.py:199 msgid "Could not start Chromium. Check logs for details." -msgstr "" +msgstr "Nije moguće pokrenuti Chromium. Proverite evidenciju za detalje." #: frappe/desk/page/setup_wizard/setup_wizard.js:234 msgid "Could not start up:" @@ -6258,13 +6280,13 @@ msgstr "Prilagođavanje odbačeno" msgid "Customizations Reset" msgstr "Resetuj prilagođavanje" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "Prilagođavanje za {0} su izvezena:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Prilagodi" @@ -6917,7 +6939,7 @@ msgstr "Kašnjenje" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7270,7 +7292,7 @@ msgstr "Ikonica radne površine već postoji" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "Detalji" @@ -7426,7 +7448,7 @@ msgstr "Onemogućeno" msgid "Disabled Auto Reply" msgstr "Onemogući automatski odgovor" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7515,7 +7537,7 @@ msgstr "Nemoj kreirati novog korisnika" msgid "Do not create new user if user with email does not exist in the system" msgstr "Nemoj kreirati novog korisnika ukoliko korisnik sa tim imejlom ne postoji u sistemu" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "Nemoj uređivati zaglavlja koja su unapred postavljena u šablonu" @@ -7680,7 +7702,7 @@ msgstr "DocType je tabela / obrazac u aplikaciji." msgid "DocType must be Submittable for the selected Doc Event" msgstr "DocType mora biti podložan podnošenju za odabrani događaj dokumenta" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "DocType mora biti tekst" @@ -7701,11 +7723,11 @@ msgstr "DocType na koji je radni tok primenjiv." msgid "DocType required" msgstr "DocType je neophodan" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "DocType {0} ne postoji." -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "DocType {} nije pronađen" @@ -7816,7 +7838,7 @@ msgstr "Red povezanih dokumenata #{0}: Naziv polja tabele je obavezno za interne msgid "Document Name" msgstr "Naziv dokumenta" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "Naziv dokumenta mora biti tekst" @@ -7992,7 +8014,7 @@ msgid "Document Types and Permissions" msgstr "Vrste i dozvole dokumenta" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "Dokument je otključan" @@ -8020,11 +8042,11 @@ msgstr "Dokument je moguće uređivati samo od strane korisnika sa ulogom" msgid "Document not Relinked" msgstr "Dokument nije ponovo povezivan" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "Dokument je preimenovan iz {0} u {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "Preimenovanje dokumenta iz {0} u {1} je stavljeno u red za obradu" @@ -8040,7 +8062,7 @@ msgstr "Dokument {0} je već obnovljen" msgid "Document {0} has been set to state {1} by {2}" msgstr "Dokument {0} je postavljen u stanje {1} od strane {2}" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "Dokument {0} {1} ne postoji" @@ -8267,7 +8289,7 @@ msgid "Due Date Based On" msgstr "Datum dospeća zasnovan na" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Duplikat" @@ -8382,7 +8404,7 @@ msgstr "IZLAZ" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8431,7 +8453,7 @@ msgstr "Uredi prilagođeni blok" msgid "Edit Custom HTML" msgstr "Uredi prilagođeni HTML" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "Uredi DocType" @@ -8616,7 +8638,7 @@ msgstr "Izbor elementa" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8675,7 +8697,7 @@ msgstr "Imejl nalog {0} je onemogućen" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "Imejl adresa" @@ -8825,7 +8847,7 @@ msgstr "Opcija za sinhronizaciju imejla" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "Imejl šablon" @@ -8857,7 +8879,7 @@ msgstr "Imejl je premešten u otpad" msgid "Email is mandatory to create User Email" msgstr "Imejl je obavezan za kreiranje korisničkog imejla" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "Imejl nije poslat {0} (otkazana pretplata / onemogućeno)" @@ -8920,7 +8942,7 @@ msgstr "Omogući" #. Label of the enable_action_confirmation (Check) field in DocType 'Workflow' #: frappe/workflow/doctype/workflow/workflow.json msgid "Enable Action Confirmation" -msgstr "" +msgstr "Omogući potvrdu radnje" #. Label of the enable_address_autocompletion (Check) field in DocType #. 'Geolocation Settings' @@ -9054,7 +9076,7 @@ msgstr "Omogući praćenje pregleda stranica" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "Omogući dvofaktorsku verifikaciju" @@ -9228,7 +9250,7 @@ msgstr "Unesite klijentski ID i tajnu klijenta u Google podešavanja." msgid "Enter Code displayed in OTP App." msgstr "Unesite šifru prikazanu u aplikaciji za jednokratnu lozinku." -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "Unesite primaoce imejla" @@ -9366,9 +9388,9 @@ msgstr "Greška u klijentskoj skripti." msgid "Error in Header/Footer Script" msgstr "Greška u skripti zaglavlja/podnožja" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "Greška u obaveštenju" @@ -9388,7 +9410,7 @@ msgstr "Greška prilikom obrade ugnježdenih filtera: {0}" msgid "Error while connecting to email account {0}" msgstr "Greška pri povezivanju sa imejl nalogom {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "Greška pri obradi obaveštenja {0}. Molimo Vas da ispravite Vaš šablon." @@ -9570,7 +9592,7 @@ msgstr "Postojeća uloga" msgid "Expand" msgstr "Proširi" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Proširi" @@ -9667,7 +9689,7 @@ msgstr "Izvoz prilagođavanja" msgid "Export Data" msgstr "Izvoz podataka" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "Izvoz redova koji sadrže grešku" @@ -9677,7 +9699,7 @@ msgstr "Izvoz redova koji sadrže grešku" msgid "Export From" msgstr "Izvoz iz" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "Evidencija uvoza i izvoza" @@ -9853,7 +9875,7 @@ msgstr "Neuspešno brisanje {0} dokumenata: {1}" msgid "Failed to enable scheduler: {0}" msgstr "Neuspešno omogućavanje planera: {0}" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "Neuspešna evaluacija uslova: {}" @@ -9890,11 +9912,11 @@ msgstr "Neuspešan pokušaj uvoza virtuelnog doctype {}, da li je fajl kontroler msgid "Failed to optimize image: {0}" msgstr "Neuspešno optimizovanje slike: {0}" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "Neuspešno renderovanje poruke: {0}" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "Nije moguće prikazati naslov: {0}" @@ -9924,7 +9946,7 @@ msgstr "Neuspeh prilikom pozivanja API-ja {0}" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "Neuspešni zakazani zadaci (poslednjih 7 dana)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "Neuspeh" @@ -9984,6 +10006,10 @@ msgstr "Preuzmi pri čuvanju ukoliko je prazno" msgid "Fetching default Global Search documents." msgstr "Preuzmi podrazumevane dokumente za globalnu pretragu." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "Preuzimanje polja iz {0}..." + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -10082,13 +10108,13 @@ msgstr "Polje {0} se odnosi na nepostojeći doctype {1}." #: frappe/core/doctype/doctype/doctype.py:1655 msgid "Field {0} must be a virtual field to support virtual doctype." -msgstr "" +msgstr "Polje {0} mora biti virtuelno da bi podržavalo virtuelni DocType." #: frappe/public/js/frappe/form/form.js:1768 msgid "Field {0} not found." msgstr "Polje {0} nije pronađeno." -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "Polje {0} u dokumentu {1} nije ni polje za mobilni broj, ni link za kupca ili korisnika" @@ -10321,7 +10347,7 @@ msgstr "Fajlovi" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "Filter" @@ -10581,7 +10607,7 @@ msgid "Folio" msgstr "Folio" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "Prati" @@ -10589,7 +10615,7 @@ msgstr "Prati" msgid "Followed by" msgstr "Praćen od strane" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "Sledeći filteri izveštaja imaju nedostajuće vrednosti:" @@ -10777,7 +10803,7 @@ msgstr "Za vrednost" #. Description of the 'Subject' (Data) field in DocType 'Notification' #: frappe/email/doctype/notification/notification.json msgid "For a dynamic subject, use Jinja tags like this: {{ doc.name }} Delivered" -msgstr "" +msgstr "Za dinamički naslov koristite Jinja oznake poput ove:{{ doc.name }} Delivered" #: frappe/public/js/frappe/views/reports/query_report.js:2156 #: frappe/public/js/frappe/views/reports/report_view.js:108 @@ -11054,11 +11080,16 @@ msgstr "Petak" msgid "From" msgstr "Od" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "Od" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "Iz polja za prilog" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -11074,6 +11105,11 @@ msgstr "Polje za datum početka" msgid "From Document Type" msgstr "Od vrste dokumenta" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "Iz polja" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11235,7 +11271,7 @@ msgstr "Geolokacija" msgid "Geolocation Settings" msgstr "Podešavanje geolokacije" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "Prikaži današnja obaveštenja" @@ -11327,7 +11363,7 @@ msgstr "Globalne prečice" msgid "Global Unsubscribe" msgstr "Globalno otkazivanje pretplate" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "Kreni" @@ -11375,7 +11411,7 @@ msgstr "Idite na ovu URL adresu nakon što završite obrazac" msgid "Go to {0}" msgstr "Idi na {0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -12072,7 +12108,7 @@ msgstr "Sakrij vikende" msgid "Hide descendant records of For Value." msgstr "Sakrij potomke zapisa za Vrednost." -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "Sakrij detalje" @@ -12333,7 +12369,7 @@ msgstr "Ukoliko uloga nema pristup na nivou 0, viši nivoi nemaju značaj." #. 'Workflow' #: frappe/workflow/doctype/workflow/workflow.json msgid "If checked, a confirmation will be required before performing workflow actions." -msgstr "" +msgstr "Ukoliko je označeno, biće potrebna potvrda pre izvršavanja radnji u radnom toku." #. Description of the 'Is Active' (Check) field in DocType 'Workflow' #: frappe/workflow/doctype/workflow/workflow.json @@ -12755,11 +12791,11 @@ msgstr "Šablon za uvoz treba da bude vrste .csv, .xlsx ili .xls" msgid "Import template should contain a Header and atleast one row." msgstr "Šablon za uvoz treba da sadrži zaglavlje i barem jedan red." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "Uvoz je istekao, molimo Vas da pokušate ponovo." -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "Uvoz {0} nije dozvoljen." @@ -13262,7 +13298,7 @@ msgstr "Nevažeće" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "Nevažeći \"depends_on\" izraz" @@ -13356,6 +13392,8 @@ msgstr "Nevažeći imejl server. Ispravite i pokušajte ponovo." msgid "Invalid Naming Series: {}" msgstr "Nevažeća serija imenovanja: {}" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13370,7 +13408,7 @@ msgstr "Nevažeća opcija" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "Nevažeći izlazni imejl server ili port: {0}" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "Nevažeći izlazni format" @@ -13492,7 +13530,7 @@ msgstr "Nevažeći format polja u {0}: {1}. Koristite 'field', 'link_field.field msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "Nevažeći naziv polja u funkciji: {0}. Dozvoljeni su samo jednostavni nazivi polja." -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "Nevažeći naziv polja {0}" @@ -13705,7 +13743,7 @@ msgstr "Završeno" #. Label of the is_current (Check) field in DocType 'User Session Display' #: frappe/core/doctype/user_session_display/user_session_display.json msgid "Is Current" -msgstr "" +msgstr "Aktivno" #. Label of the is_custom (Check) field in DocType 'Role' #. Label of the is_custom (Check) field in DocType 'User Document Type' @@ -14027,6 +14065,7 @@ msgstr "Naziv zadatka" msgid "Job Status" msgstr "Status zadatka" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "Zadatak je uspešno zaustavljen" @@ -14035,16 +14074,22 @@ msgstr "Zadatak je uspešno zaustavljen" msgid "Job is in {0} state and can't be cancelled" msgstr "Zadatak je u stanju {0} i ne može biti otkazan" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "Zadatak nije pokrenut." +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "Zadatak je uspešno zaustavljen" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "Pridruži se video-konferenciji sa {0}" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "Idi na polje" @@ -14522,7 +14567,7 @@ msgstr "Poslednja sinhronizacija na" #. Label of the last_updated (Datetime) field in DocType 'User Session Display' #: frappe/core/doctype/user_session_display/user_session_display.json msgid "Last Updated" -msgstr "" +msgstr "Poslednje ažuriranje" #: frappe/model/meta.py:57 frappe/public/js/frappe/model/meta.js:213 #: frappe/public/js/frappe/model/model.js:130 @@ -15096,7 +15141,7 @@ msgstr "Učitavanje" msgid "Loading Filters..." msgstr "Učitavanje filtera..." -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "Učitavanje fajlova za uvoz..." @@ -15231,7 +15276,7 @@ msgstr "Verifikacioni kod za prijavu od {}" msgid "Login and view in Browser" msgstr "Prijavite se i pogledajte u internet pretraživaču" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "Prijavljivanje je neophodno da biste videli listu veb-obrazaca. Omogućite {0} da biste videli podešavanja liste" @@ -15268,7 +15313,7 @@ msgstr "Prijavljivanje na {0}" msgid "Login token required" msgstr "Neophodan je token za prijavu" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "Prijavljivanje putem linka iz imejla" @@ -15738,7 +15783,7 @@ msgstr "Srednje" msgid "Meeting" msgstr "Sastanak" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "Ispunjava uslov?" @@ -15774,7 +15819,7 @@ msgstr "Pominjanja" msgid "Menu" msgstr "Meni" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Spoji sa postojećim" @@ -15799,16 +15844,16 @@ msgstr "Spajanje je moguće samo između grupe i grupe ili čvora i čvora" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15845,7 +15890,7 @@ msgstr "Poruka poslata" msgid "Message Type" msgstr "Vrsta poruke" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "Poruka je skraćena" @@ -15853,7 +15898,7 @@ msgstr "Poruka je skraćena" msgid "Message from server: {0}" msgstr "Poruka sa servera: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "Poruke nisu postavljene" @@ -16039,7 +16084,7 @@ msgstr "Nedostajuće polje" msgid "Missing Fields" msgstr "Nedostajuća polja" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "Nedostajući obavezni filteri" @@ -16174,7 +16219,7 @@ msgstr "Profil modula" msgid "Module Profile Name" msgstr "Naziv profila modula" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "Napredak modula uvodne obuke je resetovan" @@ -16182,7 +16227,7 @@ msgstr "Napredak modula uvodne obuke je resetovan" msgid "Module to Export" msgstr "Modul za izvoz" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "Modul {} nije pronađen" @@ -16698,7 +16743,7 @@ msgstr "Nova poruka sa kontakt stranice veb-sajta" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "Novi naziv" @@ -16802,10 +16847,10 @@ msgid "New value to be set" msgstr "Nova vrednost treba da bude postavljena" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16890,6 +16935,10 @@ msgstr "Šablon za sledeću radnju putem imejla" msgid "Next Actions HTML" msgstr "HTML za sledeće radnje" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "Sledeći dokument" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16957,8 +17006,8 @@ msgstr "Sledeće na klik" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16994,7 +17043,7 @@ msgid "No Copy" msgstr "Bez kopiranja" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17134,7 +17183,7 @@ msgstr "Nema predstojećih događaja" msgid "No address added yet." msgstr "Nijedna adresa još uvek nije dodata." -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "Nema upozorenja za danas" @@ -17174,6 +17223,10 @@ msgstr "Nema dodatih kontakta." msgid "No contacts linked to document" msgstr "Nijedan kontakt nije povezan sa dokumentom" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "Nema polja za valutu u {0}" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "Nema podataka za izvoz" @@ -17194,7 +17247,7 @@ msgstr "Nijedan imejl nalog nije povezan sa korisnikom. Molimo Vas da dodate nal msgid "No email addresses to invite" msgstr "Nije pronađena imejl adresa za pozivanje" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "Nema neuspešnih evidencija" @@ -17257,7 +17310,7 @@ msgstr "Broj redova (maksimalno 500)" msgid "No of Sent SMS" msgstr "Broj poslatih SMS poruka" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "Ne postoji dozvola za {0}" @@ -17294,7 +17347,7 @@ msgstr "Nijedan zapis neće biti izvezen" msgid "No rows" msgstr "Nema redova" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "Nema naslova" @@ -17435,8 +17488,8 @@ msgstr "Nije dozvoljeno za čitanje {0}" msgid "Not Published" msgstr "Nije objavljeno" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17489,7 +17542,7 @@ msgstr "Nije aktivno" msgid "Not allowed for {0}: {1}" msgstr "Nije dozvoljeno za {0}: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "Nije dozvoljeno priložiti dokumenta vrste {0}, molimo Vas da omogućite Dozvoli štampu za {0} u podešavanjima štampe" @@ -17521,7 +17574,7 @@ msgstr "Nije u razvojnom režimu" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "Nije u razvojnom režimu! Postavite u site_config.json ili napravite 'Prilagođeni' DocType." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17644,15 +17697,15 @@ msgstr "Dokument na koji je korisnik pretplaćen za obaveštenja" msgid "Notification sent to" msgstr "Obaveštenje poslato ka" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "Obaveštenje: kupac {0} nema podešen broj mobilnog telefona" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "Obaveštenje: dokument {0} nema podešen {1} broj (polje: {2})" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "Obaveštenje: korisnik {0} nema podešen broj mobilnog telefona" @@ -17766,7 +17819,7 @@ msgstr "Broj upita" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "Broj polja za priložene fajlove je veći od {}, ograničenje je ažurirano na {}." -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "Broj rezervnih kopija mora biti veći od nule." @@ -17875,14 +17928,30 @@ msgstr "Aplikacija za jednokratnu lozinku" msgid "OTP Issuer Name" msgstr "Naziv izdavaoca jednokratne lozinke" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "SMS šablon za jednokratnu lozinku" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "SMS šablon za jednokratnu lozinku mora da sadrži rezervisani tekst {0} kako bi se umetnula jednokratna lozinka." + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "Resetovanje tajne za jednokratnu lozinku - {0}" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "Tajna za jednokratnu lozinku je resetovana. Ponovna registracija biće neophodna prilikom sledećeg prijavljivanja." +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "Rezervisani tekst za jednokratnu lozinku treba da bude definisan kao {{ otp }} " + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "Postavke jednokratne lozinke pomoću aplikacije za jednokratnu lozinku nisu završene. Molimo Vas da kontaktirate administratora." @@ -17998,7 +18067,7 @@ msgstr "Na ili nakon" msgid "On or Before" msgstr "Na ili pre" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "Na {0}, {1} je napisao/la:" @@ -18058,7 +18127,7 @@ msgstr "Kod za registraciju jednokratne lozinke (OTP) sa {}" msgid "One of" msgstr "Jedan od" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "Dozvoljeno je isključivo 200 unosa po zahtevu" @@ -18096,7 +18165,7 @@ msgstr "Pošaljite samo zapise ažurirane u poslednji X časova" msgid "Only Workspace Manager can edit public workspaces" msgstr "Isključivo menadžer radnog prostora može da uređuje javne radne prostore" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "Izvoz prilagođavanja je dozvoljen samo u razvojnom režimu" @@ -18276,7 +18345,7 @@ msgstr "Otvoreno" msgid "Operation" msgstr "Operacija" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "Operator mora biti jedan od sledećih {0}" @@ -18778,7 +18847,7 @@ msgstr "Grupisanje matičnog sa zavisnim ili dva različita zavisna entiteta nij msgid "Parentfield not specified in {0}: {1}" msgstr "Matično polje nije navedeno u {0}: {1}" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "Matična vrsta, matični entitet i matično polje su neophodni za unos zavisnog zapisa" @@ -18950,6 +19019,10 @@ msgstr "Putanja do server sertifikata" msgid "Path to private Key File" msgstr "Putanja do fajla sa privatnim ključem" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "Putanja {0} se ne nalazi unutar modula {1}" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "Putanja {0} nije važeća putanja" @@ -19274,7 +19347,7 @@ msgstr "Molimo Vas da postavite grafikon" msgid "Please Update SMS Settings" msgstr "Molimo Vas da ažurirate SMS podešavanja" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "Molimo Vas da dodate naslov u Vaš imejl" @@ -19326,7 +19399,7 @@ msgstr "Molimo Vas da proverite svoju registrovanu imejl adresu za uputstva kako msgid "Please click Edit on the Workspace for best results" msgstr "Molimo Vas da kliknete na uredi u radnom prostoru za najbolje rezultate" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "Molimo Vas da kliknete na 'Izvoz redova koji sadrže grešku', ispravite greške i ponovo uvezete." @@ -19366,7 +19439,7 @@ msgstr "Molimo Vas da ne menjate naslove šablona." msgid "Please duplicate this to make changes" msgstr "Molimo Vas da duplirate ovo kako biste napravili izmene" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "Molimo Vas da omogućite barem jedan ključ za prijavljivanje putem društvenih mreža ili LDAP ili prijavljivanje putem imejl linka pre nego što onemogućite prijavu pomoću korisničkog imena i lozinke." @@ -19482,6 +19555,10 @@ msgstr "Molimo Vas da sačuvate dokument pre dodeljivanja" msgid "Please save the document before removing assignment" msgstr "Molimo Vas da sačuvate dokument pre uklanjanja dodeljivanja" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "Molimo Vas da sačuvate obrazac pre pregleda poruke" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "Molimo Vas da prvo sačuvate izveštaj" @@ -19498,7 +19575,7 @@ msgstr "Molimo Vas da prvo izaberete DocType" msgid "Please select Entity Type first" msgstr "Molimo Vas da prvo izaberete vrstu entiteta" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "Molimo Vas da odaberete minimalnu ocenu jačine lozinke" @@ -19564,7 +19641,7 @@ msgstr "Molimo Vas da postavite mapiranje štampača za ovaj format štampe u po msgid "Please set filters" msgstr "Molimo Vas da postavite filtere" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "Molimo Vas da postavite vrednosti filtera u tabeli filter izveštaja." @@ -19580,11 +19657,11 @@ msgstr "Molimo Vas da prvo postavite sledeća dokumenta u ovoj kontrolnoj tabli msgid "Please set the series to be used." msgstr "Molimo Vas da postavite seriju koja će se koristiti." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "Molimo Vas da postavite SMS pre nego što ga postavite kao metod autentifikacije, putem SMS podešavanja" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "Molimo Vas da prvo postavite poruku" @@ -19604,23 +19681,27 @@ msgstr "Molimo Vas da navedete" msgid "Please specify a valid parent DocType for {0}" msgstr "Molimo Vas da navedete važeći matični DocType za {0}" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "Molimo Vas da navedete najmanje 10 minuta zbog učestalosti pokretanja planera" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "Molimo Vas da navedete iz kog polja želite da priložite fajlove" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "Molimo Vas da navedete odstupanje i minutima" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "Molimo Vas da navedete koje polje za datum mora biti provereno" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "Molimo Vas da navedete koje polje za datum i vreme mora biti provereno" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "Molimo Vas da navedete koje polje za vrednost mora biti provereno" @@ -19807,7 +19888,7 @@ msgstr "Prikaz pripremljenog izveštaja nije uspeo" msgid "Preparing Report" msgstr "Priprema izveštaja" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "Dodaj šablon na početak imejl poruke" @@ -19828,7 +19909,7 @@ msgstr "Pritisnite Enter da sačuvate" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19882,6 +19963,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Prethodno" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "Prethodni dokument" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "Prethodno podnošenje" @@ -19931,8 +20016,8 @@ msgstr "Primarni ključ za doctype {0} ne može biti promenjen jer sadrži posto #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -20045,7 +20130,7 @@ msgstr "Sakrij štampu" msgid "Print Hide If No Value" msgstr "Sakrij štampu ukoliko nema vrednosti" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "Jezik štampe" @@ -20060,10 +20145,8 @@ msgid "Print Server" msgstr "Server za štampu" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20685,7 +20768,7 @@ msgstr "Re:" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "Re: {0}" @@ -20696,7 +20779,7 @@ msgstr "Re: {0}" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20935,12 +21018,12 @@ msgstr "Preusmeravanja" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "Redis cache server nije pokrenut. Molimo Vas da kontaktirate administrator / tehničku podršku" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "Vrati" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "Vrati poslednju radnju" @@ -21253,7 +21336,7 @@ msgstr "Ponovo povezano" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Ponovno učitavanje" @@ -21284,7 +21367,7 @@ msgstr "Zapamti poslednju izabranu vrednost" msgid "Remind At" msgstr "Podsetnik u" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "Podseti me" @@ -21364,9 +21447,9 @@ msgid "Removed" msgstr "Uklonjeno" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21394,7 +21477,7 @@ msgstr "Prikazivanja oznaka sa leve strane i vrednosti sa desne strane u ovom od msgid "Reopen" msgstr "Ponovo otvori" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "Ponovi" @@ -21644,7 +21727,7 @@ msgstr "Izveštaj je pokrenut, kliknite da biste pogledali status" msgid "Report limit reached" msgstr "Dostignuto je ograničenje izveštaja" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "Izveštaj je istekao." @@ -21838,7 +21921,7 @@ msgstr "Resetuj raspored" msgid "Reset OTP Secret" msgstr "Resetuj tajnu jednokratne lozinke" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21994,7 +22077,7 @@ msgid "Resume Sending" msgstr "Nastavi slanje" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22316,7 +22399,7 @@ msgstr "Indeksi reda" msgid "Row Name" msgstr "Naziv reda" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "Broj reda" @@ -22324,7 +22407,7 @@ msgstr "Broj reda" msgid "Row Values Changed" msgstr "Vrednosti u redu su izmenjene" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "Red {0}" @@ -22549,7 +22632,7 @@ msgid "Saturday" msgstr "Subota" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22605,13 +22688,13 @@ msgstr "Sačuvaj dokument." #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "Sačuvano" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "Sačuvani filteri" @@ -22653,7 +22736,7 @@ msgstr "Skeniraj QR kod i unesi prikazani kod." msgid "Schedule" msgstr "Raspored" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "Zakazati slanje u" @@ -22717,7 +22800,7 @@ msgstr "Planer" msgid "Scheduler Event" msgstr "Događaj planera" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "Planer je neaktivan" @@ -22730,7 +22813,7 @@ msgstr "Status planera" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "Planer se ne može ponovo omogućiti dok je režim održavanja aktivan." -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "Planer je neaktivan. Nema mogućnosti uvoza podataka." @@ -23031,8 +23114,8 @@ msgstr "Izaberi" msgid "Select All" msgstr "Izaberi sve" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -23098,7 +23181,7 @@ msgstr "Izaberite vrste dokumenata kako biste postavili koje korisničke dozvole #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "Izaberi polje" @@ -23172,7 +23255,7 @@ msgid "Select Page" msgstr "Izaberi stranicu" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Izaberi format štampe" @@ -23386,7 +23469,7 @@ msgstr "Pošalji sada" msgid "Send Print as PDF" msgstr "Pošalji kao PDF za štampu" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "Pošalji potvrdu o čitanju" @@ -23445,11 +23528,11 @@ msgstr "Pošalji imejl kada dokument pređe u stanje." msgid "Send enquiries to this email address" msgstr "Pošalji upite na ovu imejl adresu" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "Pošalji link za prijavu" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "Pošalji mi kopiju" @@ -23639,7 +23722,7 @@ msgstr "Usluga" #. Display' #: frappe/core/doctype/user_session_display/user_session_display.json msgid "Session Created" -msgstr "" +msgstr "Sesija kreirana" #. Name of a DocType #: frappe/core/doctype/session_default/session_default.json @@ -23673,14 +23756,14 @@ msgstr "Sesija je istekla" msgid "Session Expiry (idle timeout)" msgstr "Istek sesije (vreme neaktivnosti)" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "Istek sesije mora biti u formatu {0}" #. Label of the sessions_tab (Tab Break) field in DocType 'User' #: frappe/core/doctype/user/user.json msgid "Sessions" -msgstr "" +msgstr "Sesije" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:400 #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:487 @@ -23718,7 +23801,7 @@ msgstr "Postavi dinamičke filtere" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "Postavi filtere" @@ -24114,7 +24197,7 @@ msgstr "Prikaži grešku" msgid "Show External Link Warning" msgstr "Prikaži upozorenje za eksterne linkove" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "Prikaži naziv polja (klikni za kopiranje)" @@ -24166,7 +24249,7 @@ msgstr "Prikaži izbor jezika" msgid "Show Line Breaks after Sections" msgstr "Prikaži prelom linije nakon odeljka" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "Prikaži linkove" @@ -24241,7 +24324,7 @@ msgstr "Prikaži bočnu traku" msgid "Show Social Login Key as Authorization Server" msgstr "Prikaži ključ za prijavljivanje putem društvenih mreža kao autorizacioni server" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "Prikaži oznake" @@ -24267,7 +24350,7 @@ msgstr "Prikaži ukupne vrednosti" msgid "Show Tour" msgstr "Prikaži obilazak" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "Prikaži sled greške" @@ -24347,8 +24430,8 @@ msgstr "Prikaži link ka dokumentu" msgid "Show list" msgstr "Prikaži listu" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "Prikaži više detalja" @@ -24409,7 +24492,7 @@ msgstr "Bočna traka i komentari" #. Label of the sign_out (Button) field in DocType 'User Session Display' #: frappe/core/doctype/user_session_display/user_session_display.json msgid "Sign Out" -msgstr "" +msgstr "Odjava" #. Label of the sign_up_and_confirmation_section (Section Break) field in #. DocType 'Email Group' @@ -24536,7 +24619,7 @@ msgstr "Preskakanje kolona bez naziva" msgid "Skipping column {0}" msgstr "Preskakanje kolone {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "Preskakanje sinhronizacije podataka za doctype {0} iz fajla {1}" @@ -24932,7 +25015,7 @@ msgstr "Datum početka" msgid "Start Date Field" msgstr "Polje za datum početka" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "Početak uvoza" @@ -25066,7 +25149,7 @@ msgstr "Vremenski interval statistike" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25233,9 +25316,9 @@ msgstr "Poddomen" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Naslov" @@ -25379,12 +25462,12 @@ msgstr "Podnaslov" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25444,11 +25527,11 @@ msgstr "Uspešno: {0} do {1}" msgid "Successfully Updated" msgstr "Uspešno ažurirano" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "Uspešno uvezeno {0}" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "Uspešno uvezeno {0} od {1} zapisa." @@ -25458,17 +25541,17 @@ msgstr "Uspešno je resetovan status uvodne obuke za sve korisnike." #: frappe/core/doctype/user/user.py:1451 msgid "Successfully signed out" -msgstr "" +msgstr "Uspešno odjavljivanje" #: frappe/public/js/frappe/views/translation_manager.js:22 msgid "Successfully updated translations" msgstr "Uspešno ažurirani prevodi" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "Uspešno ažurirano {0}" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "Uspešno ažurirano {0} od {1} zapisa." @@ -25603,7 +25686,7 @@ msgstr "Sinhronizovanje" msgid "Syncing {0} of {1}" msgstr "Sinhronizovanje {0} od {1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "Greška u sintaksi" @@ -25914,7 +25997,7 @@ msgstr "Višestruki odabir u tabeli" msgid "Table Trimmed" msgstr "Skraćena tabela" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "Tabela ažurirana" @@ -26131,7 +26214,7 @@ msgstr "Hvala" msgid "The Auto Repeat for this document has been disabled." msgstr "Automatsko ponavljanje za ovaj dokument je onemogućeno." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "CSV format razlikuje velika i mala slova" @@ -26144,7 +26227,7 @@ msgstr "ID klijenta dobijen putem Google Cloud konzole u odeljku " -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "Uslov '{0}' je nevažeći" @@ -26395,7 +26478,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "Već postoji {0} sa istim filterima u redu čekanja:" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "U veb-obrascu može biti najviše 9 polja za prelom stranice" @@ -26447,7 +26530,7 @@ msgstr "Došlo je do grešaka" msgid "There were errors while creating the document. Please try again." msgstr "Došlo je do grešaka prilikom kreiranja dokumenta. Molimo Vas da pokušate ponovo." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "Došlo je do greške prilikom slanja imejla. Molimo Vas da pokušate ponovo." @@ -26524,7 +26607,7 @@ msgstr "Ova radnja je nepovratna. Da li želite da nastavite?" msgid "This action is only allowed for {}" msgstr "Ova radnja je dozvoljena samo za {}" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "Ovo se ne može opozvati" @@ -26757,6 +26840,8 @@ msgstr "Ovo će trajno obrisati Vaše podatke." msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "Ovo će resetovati obilazak i prikazati je svim korisnicima. Da li ste sigurni?" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Ovo će trenutno prekinuti zadatak i može biti rizično, da li ste sigurni?" @@ -27833,15 +27918,15 @@ msgstr "Ukloni dodeljivanje uslova" msgid "Uncaught Exception" msgstr "Neuhvaćeni izuzetak" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "Neizmenjeno" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "Poništi" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "Poništi poslednju radnju" @@ -27850,7 +27935,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "Navodnici nisu pravilno izbegnuti u tekstualnom izrazu: {0}" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "Zaustavi praćenje" @@ -27889,7 +27974,7 @@ msgstr "Nepoznat" msgid "Unknown Column: {0}" msgstr "Nepoznata kolona: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "Nepoznat metod zaokruživanja: {}" @@ -28117,7 +28202,7 @@ msgstr "Ažuriranje globalnih podešavanja" msgid "Updating naming series options" msgstr "Ažuriranje opcija za seriju imenovanja" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "Ažuriranje povezanih polja..." @@ -28511,7 +28596,7 @@ msgstr "Korisnik bira vrstu dokumenta" #. Name of a DocType #: frappe/core/doctype/user_session_display/user_session_display.json msgid "User Session Display" -msgstr "" +msgstr "Prikaz korisničke sesije" #. Label of a standard navbar item #. Type: Action @@ -28763,7 +28848,7 @@ msgstr "Važenje" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Vrednost" @@ -28841,7 +28926,7 @@ msgstr "Vrednost je prevelika" msgid "Value {0} missing for {1}" msgstr "Vrednost {0} nedostaje za {1}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "Vrednost {0} mora biti u važećem formatu trajanja: d h m s" @@ -28863,7 +28948,7 @@ msgstr "Verdana" msgid "Verification" msgstr "Verifikacija" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "Verifikacioni kod" @@ -28921,7 +29006,7 @@ msgstr "Prikaz" msgid "View All" msgstr "Prikaži sve" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "Prikaži istoriju izmena" @@ -29032,7 +29117,7 @@ msgstr "Virtuelni DocType {} zahteva redefinisanje instance metode {} pronađene #: frappe/core/doctype/doctype/doctype.py:1658 msgid "Virtual tables must be virtual fields" -msgstr "" +msgstr "Virtuelne tabele moraju biti virtuelna polja" #. Label of the visibility_section (Section Break) field in DocType 'DocField' #: frappe/core/doctype/docfield/docfield.json @@ -29887,9 +29972,9 @@ msgstr "Žuta" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29984,7 +30069,7 @@ msgstr "Nemate dozvolu da izvezete doctype {}" msgid "You are not allowed to print this report" msgstr "Nemate dozvolu da odštampate ovaj izveštaj" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "Nemate dozvolu da pošaljete imejl vezan za ovaj dokument" @@ -30172,7 +30257,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "Vi ste kreirali ovaj dokument {0}" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "Nemate dozvolu za čitanje ili izbor za {}" @@ -30232,7 +30317,7 @@ msgstr "Dostigli ste ograničenje broja redova u tabeli baze podataka: {0}" msgid "You have not entered a value. The field will be set to empty." msgstr "Niste uneli vrednost. Polje će biti postavljeno kao prazno." -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "Morate omogućiti dvofaktorsku autentifikaciju u podešavanjima sistema." @@ -30341,7 +30426,7 @@ msgstr "Potrebna Vam je dozvola za izmenu na {0} {1} za spajanje" msgid "You need write permission on {0} {1} to rename" msgstr "Potrebna Vam je dozvola za izmenu na {0} {1} za preimenovanje" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "Potrebna Vam je dozvola {0} da biste preuzeli vrednosti iz {1} {2}" @@ -30515,7 +30600,7 @@ msgstr "Vaš sajt je trenutno na održavanju ili se ažurira." msgid "Your verification code is {0}" msgstr "Vaš verifikacioni kod je {0}" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "Nula" @@ -30558,7 +30643,7 @@ msgstr "after_insert" msgid "amend" msgstr "izmeni" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "i" @@ -30599,7 +30684,7 @@ msgstr "otkazano" #. Option for the 'PDF Generator' (Select) field in DocType 'Print Format' #: frappe/printing/doctype/print_format/print_format.json msgid "chrome" -msgstr "" +msgstr "chrome" #: frappe/templates/includes/list/filters.html:19 msgid "clear" @@ -30845,7 +30930,7 @@ msgstr "lista" msgid "logged in" msgstr "prijavljen" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "login_required" @@ -31183,7 +31268,7 @@ msgstr "putem uvoza podataka" msgid "via Google Meet" msgstr "putem Google Meet" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "putem obaveštenja" @@ -31392,7 +31477,7 @@ msgstr "{0} je već otkazao pretplatu" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} je već otkazao pretplatu za {1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} i {1}" @@ -31417,7 +31502,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "{0} priložen {1}" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "{0} ne može biti veće od {1}" @@ -31730,7 +31815,7 @@ msgstr "pre {0} minuta" msgid "{0} months ago" msgstr "pre {0} meseci" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} mora biti nakon {1}" @@ -31787,12 +31872,12 @@ msgstr "{0} od {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} od {1} ({2} redova sa zavisnim podacima)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "samo {0}." -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} ili {1}" @@ -31837,7 +31922,7 @@ msgstr "{0} je uklonio {1} redova iz {2}" msgid "{0} role does not have permission on any doctype" msgstr "Uloga {0} nema dozvole ni za jednu vrstu dokumenta" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} red#{1}:" @@ -32116,11 +32201,11 @@ msgstr "{{{0}}} nije ispravan format naziva polja. Trebalo bi da bude {{field_na msgid "{} Complete" msgstr "{} završeno" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "{} Nevažeći python kod na liniji {}" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "{} Potencijalno nevažeći python kod.
{}" diff --git a/frappe/locale/sv.po b/frappe/locale/sv.po index 6ebd14818c..a44c5fb4b7 100644 --- a/frappe/locale/sv.po +++ b/frappe/locale/sv.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Swedish\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "1 Google Kalender Händelse Synkroniserad." msgid "1 Report" msgstr "1 Rapport" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "1 dag sedan" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "1 timme" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "1 timme sedan" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "1 minut sedan" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "1 månad sedan" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "1 rad till {0}" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "1 sekund sedan" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "1 vecka sedan" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "1 år sedan" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "2 timmar sedan" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "2 månader sedan" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "2 veckor sedan" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "2 år sedan" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "3 minuter sedan" @@ -231,7 +231,7 @@ msgstr "4 timmar" msgid "5 Records" msgstr "5 Poster" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "5 dagar sedan" @@ -663,7 +663,7 @@ msgstr "

För att interagera med ovanstående HTML måste du använda `root_el "some_class_element.textContent = \"Ny innehåll\";\n" "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "

Din OTP hemlighet på {0} är återställd. Om du inte begärde återställning kontakta din systemadministratör omedelbart.

" @@ -1088,7 +1088,7 @@ msgstr "Åtgärd / Sökväg" msgid "Action Complete" msgstr "Åtgärd Klar" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Åtgärd Misslyckades" @@ -1225,7 +1225,7 @@ msgstr "Lägg till / Uppdatera" msgid "Add A New Rule" msgstr "Lägg till Ny Regel" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Lägg till Bilaga" @@ -1330,7 +1330,7 @@ msgstr "Lägg till Rad " #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "Lägg till Signatur" @@ -1358,7 +1358,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "Lägg till Taggar" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "Lägg till Mall" @@ -1765,6 +1765,7 @@ msgstr "Justera Värde" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1779,7 +1780,9 @@ msgstr "Justera Värde" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2382,7 +2385,7 @@ msgstr "App Namn" msgid "App Name (Client Name)" msgstr "App Namn (Klient Namn)" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "App hittades inte för modul: {0}" @@ -2544,7 +2547,7 @@ msgstr "Är du säker på att du vill avbryta inbjudan?" msgid "Are you sure you want to clear the assignments?" msgstr "Är du säker på att du vill ta bort tilldelningar?" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "Är du säker på att du vill ta bort alla rader?" @@ -2580,7 +2583,7 @@ msgstr "Är du säker på att du vill ignorera ändringar?" msgid "Are you sure you want to generate a new report?" msgstr "Är du säker på att du vill skapa ny rapport?" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "Är du säker på att du vill slå samman {0} med {1}?" @@ -2826,10 +2829,15 @@ msgstr "Minst ett fält av Överordnad Dokument Typ erfordras" msgid "Attach" msgstr "Bifoga" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Bifoga Dokument Utskrift" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2912,6 +2920,11 @@ msgstr "Bilaga Länk" msgid "Attachment Removed" msgstr "Bilaga Borttagen" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -3089,7 +3102,7 @@ msgstr "Återkommande Händelse Dag{0} {1} är upprepad." msgid "Auto Repeat Document Creation Failed" msgstr "Återkommande Händelse av Dokument Skapande Misslyckades" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "Återkommande Händelse Schema" @@ -3323,7 +3336,7 @@ msgstr "B9" msgid "BCC" msgstr "Hemlig Kopia Till" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "Hemlig Kopia Till" @@ -3341,7 +3354,7 @@ msgstr "Tillbaka till Skrivbord" msgid "Back to Home" msgstr "Hem" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "Tillbaka till Inloggning" @@ -3782,7 +3795,7 @@ msgstr "Massborttagning" msgid "Bulk Edit" msgstr "Mass Redigera" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "Mass Redigera {0}" @@ -3905,7 +3918,7 @@ msgstr "ANNULLERAD" msgid "CC" msgstr "Kopia Till" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "Kopia Till" @@ -4100,6 +4113,14 @@ msgstr "Annullera" msgid "Cancel All Documents" msgstr "Annullera Alla Dokument" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "Avbryt Import" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "Avbryt Förberedd Rapport" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4137,11 +4158,11 @@ msgstr "Annullerar Dokument" msgid "Cancelling {0}" msgstr "Annullerar {0}" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "Kan inte ladda ner Rapport på grund av otillräckliga behörigheter" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "Kan inte Hämta Värden" @@ -4244,7 +4265,7 @@ msgstr "Kan inte ta bort {0} eftersom det har underordnade noder" msgid "Cannot edit Standard Dashboards" msgstr "Kan inte redigera standard översikt panel" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "Kan inte redigera standard avisering. För att redigera, inaktivera detta och kopiera" @@ -4269,7 +4290,7 @@ msgstr "Kan inte redigera filter för standard diagram" msgid "Cannot edit filters for standard number cards" msgstr "Kan inte redigera filter för standard diagram" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "Kan inte redigera standard fält" @@ -4289,7 +4310,7 @@ msgstr "Kan inte hämta fil innehåll från mapp" msgid "Cannot have multiple printers mapped to a single print format." msgstr "Kan inte mappa flera skrivare till enskild utskrift format." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "Kan inte importera tabell med fler än 5000 rader." @@ -4317,7 +4338,7 @@ msgstr "Kan inte ta bort ID fält" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "Kan inte ange \"Rapport\" behörighet om behörighet \"Endast om Ägare\" är angiven" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "Kan inte ange Avisering med händelse {0} på Dokument Typ {1}" @@ -4663,11 +4684,11 @@ msgstr "Stad/Ort" msgid "Clear" msgstr "Rensa" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "Rensa & Lägg till Mall" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "Rensa & Lägg till Mall" @@ -4701,7 +4722,7 @@ msgstr "Rensa Logg Efter (dagar)" msgid "Clear User Permissions" msgstr "Rensa Användare Rättigheter" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "Rensa e-post meddelande och lägg till mall" @@ -4754,7 +4775,7 @@ msgstr "Klicka på {0} att skapa Uppdatering Token." #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "Klicka på tabell att redigera" @@ -4765,7 +4786,7 @@ msgstr "Klicka på att Ange Dynamisk Filter" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "Klicka på att Ange Filter" @@ -4942,7 +4963,7 @@ msgstr "Kod utmaning sätt" msgid "Collapse" msgstr "Fäll In" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Fäll In" @@ -5066,7 +5087,7 @@ msgstr "Kolumn Bred" msgid "Column width cannot be zero." msgstr "Kolumn bredd kan inte vara noll." -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "Kolumn {0}" @@ -5309,7 +5330,7 @@ msgstr "Komprimerad" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "Villkor" @@ -5648,7 +5669,7 @@ msgstr "Kopiera inbäddningskod" msgid "Copy error to clipboard" msgstr "Kopiera fel till urklipp" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "Kopiera till Urklipp" @@ -6259,13 +6280,13 @@ msgstr "Anpassningar Ångrade" msgid "Customizations Reset" msgstr "Anpassningar Återställda " -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "Anpassningar för {0} som exporterades till:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Anpassa" @@ -6918,7 +6939,7 @@ msgstr "Försenad" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7271,7 +7292,7 @@ msgstr "Skrivbord Ikon finns redan" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "Detaljer" @@ -7427,7 +7448,7 @@ msgstr "Inaktiverad" msgid "Disabled Auto Reply" msgstr "Inaktiverad Autosvar" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7516,7 +7537,7 @@ msgstr "Skapa inte ny Användare" msgid "Do not create new user if user with email does not exist in the system" msgstr "Skapa inte ny Användare om Användare med E-post inte finns i system" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "Ändra inte rubriker som är förinställda i mall" @@ -7681,7 +7702,7 @@ msgstr "DocType är Tabell/Formulär i app." msgid "DocType must be Submittable for the selected Doc Event" msgstr "DocType måste kunna godkännas för vald DocType Händelse" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "DocType måste vara sträng" @@ -7702,11 +7723,11 @@ msgstr "DocType Arbetsflöde kan tillämpas på." msgid "DocType required" msgstr "DocType erfordras" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "DocType {0} finns inte." -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "DocType {} hittades inte" @@ -7817,7 +7838,7 @@ msgstr "Dokument Länkar Rad #{0}: Tabell Fält namn erfordras för interna län msgid "Document Name" msgstr "Dokument Namn" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "Dokument Namn måste vara sträng" @@ -7993,7 +8014,7 @@ msgid "Document Types and Permissions" msgstr "Dokument Typer och Behörigheter" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "Dokument Upplåst" @@ -8021,11 +8042,11 @@ msgstr "Dokument kan endast redigeras av användare med roll" msgid "Document not Relinked" msgstr "Dokumentet är inte länkad om" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "Dokument namn ändrad från {0} till {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "Dokument namn ändring från {0} till {1} är i kö" @@ -8041,7 +8062,7 @@ msgstr "Dokument {0} Redan Återställd" msgid "Document {0} has been set to state {1} by {2}" msgstr "Dokument {0} är i tillstånd {1} efter {2}" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "Dokument {0} {1} finns inte" @@ -8268,7 +8289,7 @@ msgid "Due Date Based On" msgstr "Förfallo Datum Baserad På" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Kopiera" @@ -8383,7 +8404,7 @@ msgstr "ESC" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8432,7 +8453,7 @@ msgstr "Redigera Anpassad Avsnitt" msgid "Edit Custom HTML" msgstr "Redigera Anpassad HTML" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "Redigera DocType" @@ -8617,7 +8638,7 @@ msgstr "Element Väljare" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8676,7 +8697,7 @@ msgstr "E-postkonto {0} Inaktiverad" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "E-postadress" @@ -8826,7 +8847,7 @@ msgstr "E-post Synkronisering Alternativ" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "E-post Mall" @@ -8858,7 +8879,7 @@ msgstr "E-post är flyttad till papperskorg" msgid "Email is mandatory to create User Email" msgstr "E-post erfordras för att skapa Användare E-post" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "E-post inte skickad till {0} (avregistrerad / inaktiverad)" @@ -9055,7 +9076,7 @@ msgstr "Aktivera Spårning Sid Visningar" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "Aktivera Två Faktor Autentisering" @@ -9229,7 +9250,7 @@ msgstr "Ange Klient ID och Klient Hemlighet i Google Inställningar." msgid "Enter Code displayed in OTP App." msgstr "Ange kod som visad i OTP App." -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "Ange E-post Mottagare" @@ -9367,9 +9388,9 @@ msgstr "Fel i Klient Skript." msgid "Error in Header/Footer Script" msgstr "Fel i Brevhuvud/Sidfot Skript" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "Fel i Avisering" @@ -9389,7 +9410,7 @@ msgstr "Fel vid parsning av nästlade filter: {0}" msgid "Error while connecting to email account {0}" msgstr "Fel vid anslutning till E-post Konto {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "Fel vid test av Avisering {0}. Fixa Mall." @@ -9571,7 +9592,7 @@ msgstr "Befintlig Roll" msgid "Expand" msgstr "Expandera" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Expandera" @@ -9668,7 +9689,7 @@ msgstr "Exportera Anpassningar" msgid "Export Data" msgstr "Data Export" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "Exportera Felaktiga Rader" @@ -9678,7 +9699,7 @@ msgstr "Exportera Felaktiga Rader" msgid "Export From" msgstr "Exportera Från" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "Exportera Import Logg" @@ -9854,7 +9875,7 @@ msgstr "Misslyckades att ta bort {0} dokument: {1}" msgid "Failed to enable scheduler: {0}" msgstr "Misslyckades att aktivera schemaläggare: {0}" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "Misslyckades att utvärdera villkor: {}" @@ -9891,11 +9912,11 @@ msgstr "Misslyckadesc att importera virtuell doctype {}, finns kontroll fil?" msgid "Failed to optimize image: {0}" msgstr "Misslyckades att optimera bild: {0}" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "Misslyckades med att rendera meddelande: {}" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "Misslyckades med att rendera ämne: {}" @@ -9925,7 +9946,7 @@ msgstr "Misslyckades vid anrop av API {0}" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "Misslyckade Schemalagda Jobb (senaste 7 dagarna)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "Fel" @@ -9985,6 +10006,10 @@ msgstr "Hämta vid Spara om Tom" msgid "Fetching default Global Search documents." msgstr "Hämtar standard Global Sökning dokument." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "Hämtar fält från {0}..." + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -10089,7 +10114,7 @@ msgstr "Fält {0} måste vara virtuellt fält för att stödja virtuell doctype. msgid "Field {0} not found." msgstr "Fält {0} hittades inte." -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "Fält {0} på dokument {1} är varken mobil nummer fält, Kund eller Användarlänk" @@ -10322,7 +10347,7 @@ msgstr "Filer" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "Filter" @@ -10582,7 +10607,7 @@ msgid "Folio" msgstr "Folio" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "Följ" @@ -10590,7 +10615,7 @@ msgstr "Följ" msgid "Followed by" msgstr "Följd av" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "Följande Rapport Filter saknar värden:" @@ -11054,11 +11079,16 @@ msgstr "Fredag" msgid "From" msgstr "Från" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "Från" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -11074,6 +11104,11 @@ msgstr "Från Datum" msgid "From Document Type" msgstr "Från DocType" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11235,7 +11270,7 @@ msgstr "Geolocation" msgid "Geolocation Settings" msgstr "Geolokalisering Inställningar" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "Hämta Dagens Alerts" @@ -11327,7 +11362,7 @@ msgstr "Globala Genvägar" msgid "Global Unsubscribe" msgstr "Globalt Avregistrering" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "Gå" @@ -11375,7 +11410,7 @@ msgstr "Gå till denna URL efter att ha fyllt i formulär" msgid "Go to {0}" msgstr "Gå till {0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -12072,7 +12107,7 @@ msgstr "Dölj Helger" msgid "Hide descendant records of For Value." msgstr "Dölj Underordnade poster för För Värde." -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "Dölj Detaljer" @@ -12755,11 +12790,11 @@ msgstr "Import mall ska vara av typ .csv, .xlsx eller .xls" msgid "Import template should contain a Header and atleast one row." msgstr "Import mall ska innehålla Rubrik och minst en rad." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "Import misslyckades, försök igen." -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "Import av {0} är inte tillåtet." @@ -13262,7 +13297,7 @@ msgstr "Ogiltig" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "Ogiltig 'depends_on' uttryck" @@ -13356,6 +13391,8 @@ msgstr "Ogiltig E-post Server. Rätta till och försök igen." msgid "Invalid Naming Series: {}" msgstr "Ogiltig Namngivning Serie: {}" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13370,7 +13407,7 @@ msgstr "Ogiltig Alternativ" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "Ogiltig Utgående E-Post Server eller Port: {0}" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "Ogiltig Utdata Format" @@ -13492,7 +13529,7 @@ msgstr "Ogiltig fältformat i {0}: {1}. Använd \"field\", \"link_field.field\" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "Ogiltig fältnamn i funktion: {0}. Endast enkla fältnamn är tillåtna." -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "Ogiltig Fält Namn {0}" @@ -14027,6 +14064,7 @@ msgstr "Jobb Namn" msgid "Job Status" msgstr "Jobb Status" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "Jobb Stoppad" @@ -14035,16 +14073,22 @@ msgstr "Jobb Stoppad" msgid "Job is in {0} state and can't be cancelled" msgstr "Jobb har {0} tillstånd och kan inte avbrytas" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "Jobb Inaktiv" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "Jobb stoppades" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "Anslut till Videokonferens med {0}" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "Hoppa till Fält" @@ -15096,7 +15140,7 @@ msgstr "Laddar" msgid "Loading Filters..." msgstr "Laddar Filter..." -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "Laddar Import Fil..." @@ -15231,7 +15275,7 @@ msgstr "Inloggning Verifiering Kod från {}" msgid "Login and view in Browser" msgstr "Logga in och visa i Webbläsare" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "Inloggning erfordras för att se webbformulär lista. Aktivera {0} för att se list inställningar" @@ -15268,7 +15312,7 @@ msgstr "{0}" msgid "Login token required" msgstr "Inloggning token erfordras" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "Logga in med E-post länk" @@ -15648,7 +15692,7 @@ msgstr "Maximum 500 poster åt gången" #: frappe/core/doctype/doctype/doctype.json #: frappe/custom/doctype/customize_form/customize_form.json msgid "Max Attachments" -msgstr "Maximum Antal Bilagor" +msgstr "Maximal Antal Bilagor" #. Label of the max_file_size (Int) field in DocType 'System Settings' #: frappe/core/doctype/system_settings/system_settings.json @@ -15684,7 +15728,7 @@ msgstr "Max Bilaga storlek" #. Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "Max auto email report per user" -msgstr "Maximum Antal Automatiska E-post Rapporter per Användare" +msgstr "Maximal Antal Automatiska E-post Rapporter per Användare" #. Label of the max_signups_allowed_per_hour (Int) field in DocType 'System #. Settings' @@ -15738,7 +15782,7 @@ msgstr "Medium" msgid "Meeting" msgstr "Möte" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "Uppfyller Villkor?" @@ -15774,7 +15818,7 @@ msgstr "Hänvisningar" msgid "Menu" msgstr "Meny" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Slå samman med befintlig" @@ -15799,16 +15843,16 @@ msgstr "Sammanslafning är endast möjlig mellan grupp till grupp eller underord #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15845,7 +15889,7 @@ msgstr "Meddelande Skickad" msgid "Message Type" msgstr "Meddelande Typ" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "Meddelande Urlippt" @@ -15853,7 +15897,7 @@ msgstr "Meddelande Urlippt" msgid "Message from server: {0}" msgstr "Meddelande från Server: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "Meddelande är inte angiven" @@ -16039,7 +16083,7 @@ msgstr "Fält Värde saknas" msgid "Missing Fields" msgstr "Fält Värden saknas" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "Saknade Filter Erfodras" @@ -16174,7 +16218,7 @@ msgstr "Modul Profil" msgid "Module Profile Name" msgstr "Modul Profil Namn" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "Modul Introduktion förlopp återställning" @@ -16182,7 +16226,7 @@ msgstr "Modul Introduktion förlopp återställning" msgid "Module to Export" msgstr "Modul att Exportera" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "Modul {} hittades inte" @@ -16698,7 +16742,7 @@ msgstr "Ny Meddelande från Webbplats Kontakt Sida" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "Ny Namn" @@ -16802,10 +16846,10 @@ msgid "New value to be set" msgstr "Ny värde att ange" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16890,6 +16934,10 @@ msgstr "Nästa Åtgärd E-post Mall" msgid "Next Actions HTML" msgstr "Nästa Åtgärd HTML" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "Nästa Dokument" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16957,8 +17005,8 @@ msgstr "Nästa på Klick" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16994,7 +17042,7 @@ msgid "No Copy" msgstr "Ingen Kopia" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17134,7 +17182,7 @@ msgstr "Inga Kommande Händelser" msgid "No address added yet." msgstr "Ingen adress upplagd än" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "Inga varningar för idag" @@ -17174,6 +17222,10 @@ msgstr "Inga kontakter upplagda än." msgid "No contacts linked to document" msgstr "Inga Kontakter länkade till dokument" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "Ingen valuta i {0}" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "Ingen Data att exportera" @@ -17194,7 +17246,7 @@ msgstr "Ingen E-post Konto kopplad till Användare. Lägg till konto under Anvä msgid "No email addresses to invite" msgstr "Inga e-postadresser hittades att bjuda in" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "Inga Misslyckade Logg" @@ -17257,7 +17309,7 @@ msgstr "Antal Rader (Max 500)" msgid "No of Sent SMS" msgstr "Antal Skickade SMS" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "Ingen Behörighet för {0}" @@ -17294,7 +17346,7 @@ msgstr "Inga poster kommer att exporteras" msgid "No rows" msgstr "Inga rader" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "Inget Ämne" @@ -17435,8 +17487,8 @@ msgstr "Ej Tillåtet att läsa {0}" msgid "Not Published" msgstr "Ej Publicerad" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17489,7 +17541,7 @@ msgstr "Inte Aktiv" msgid "Not allowed for {0}: {1}" msgstr "Ej tillåtet för {0}: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "Ej Tillåtet att bifoga {0} dokument, aktivera \"Tillåt Utskrift\" för {0} i Utskrift Inställningar" @@ -17521,7 +17573,7 @@ msgstr "Ej i Utvecklar Läge" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "Ej i Utvecklar Läge! Ändra site_config.json eller skapa 'Anpassad' DocType." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17644,15 +17696,15 @@ msgstr "Avisering Prenumererad Dokument" msgid "Notification sent to" msgstr "Avisering skickad till" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "Meddelande: kund {0} har inget mobil nummer angivet" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "Meddelande: dokument {0} har inget {1} nummer angivet (fält: {2})" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "Meddelande: användare {0} har inget mobil nummer angivet" @@ -17766,7 +17818,7 @@ msgstr "Antal Frågor" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "Antalet bifogade fält är fler än {}, gränsen uppdaterad till {}." -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "Antal säkerhetskopior måste vara än noll." @@ -17875,14 +17927,30 @@ msgstr "OTP App" msgid "OTP Issuer Name" msgstr "OTP Utgivarens Namn" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "OTP Hemlighet Återställning - {0}" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "OTP Hemlighet är återställd. Registrering erfordras vid nästa inloggning." +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "OTP Konfiguration med OTP App slutfördes inte. Kontakta Administratör." @@ -17998,7 +18066,7 @@ msgstr "På eller efter" msgid "On or Before" msgstr "På eller före" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "{0}, {1} skrev" @@ -18058,7 +18126,7 @@ msgstr "En Gång Lösenord (OTP) Registrering Kod från {}" msgid "One of" msgstr "En av" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "Endast 200 infogningar tillåts per begäran" @@ -18096,7 +18164,7 @@ msgstr "Skicka endast poster som uppdaterades under senaste X timmarna" msgid "Only Workspace Manager can edit public workspaces" msgstr "Endast Workspace Manager kan redigera offentliga arbetsytor" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "Endast tillåtet att exportera anpassningar i utvecklarläge" @@ -18276,7 +18344,7 @@ msgstr "Öppnad" msgid "Operation" msgstr "Åtgärd" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "Operatören måste vara en av {0}" @@ -18778,7 +18846,7 @@ msgstr "Överordnad till underordnad eller underordnad till annan underordnad ä msgid "Parentfield not specified in {0}: {1}" msgstr "Överordnad fält är inte specificerad i {0}: {1}" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "Överordnad typ, Överordnad och Överordnad fält erfordras för att infoga underordnad post" @@ -18845,7 +18913,7 @@ msgstr "Lösenord Återställning" #. Label of the password_reset_limit (Int) field in DocType 'System Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "Password Reset Link Generation Limit" -msgstr "Maximum Antal Lösenord Återställning Länkar per timme" +msgstr "Maximal Antal Lösenord Återställning Länkar per timme" #: frappe/public/js/frappe/form/grid_row.js:897 msgid "Password cannot be filtered" @@ -18950,6 +19018,10 @@ msgstr "Sökväg till Server Certifikat" msgid "Path to private Key File" msgstr "Sökväg till Privat Nyckel Fil" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "Sökväg {0} är inte giltigt sökväg" @@ -19274,7 +19346,7 @@ msgstr "Skapa Diagram" msgid "Please Update SMS Settings" msgstr "Uppdatera SMS Inställningar" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "Lägg till ämne i E-post" @@ -19326,7 +19398,7 @@ msgstr "Kontrollera registrerad E-post för instruktioner om hur du fortsätter. msgid "Please click Edit on the Workspace for best results" msgstr "Klicka på Redigera Arbetsyta för bästa resultat" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "Klicka på \"Exportera Felaktiga Rader\", fixa fel och importera igen." @@ -19366,7 +19438,7 @@ msgstr "Ändra inte mall huvud rubriker." msgid "Please duplicate this to make changes" msgstr "Kopiera för att göra ändringar" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "Aktivera minst en social inloggning nyckel eller LDAP eller Logga in med E-post Länk innan du inaktiverar användarnamn/lösenord baserad inloggning." @@ -19482,6 +19554,10 @@ msgstr "Spara dokument före tilldelning" msgid "Please save the document before removing assignment" msgstr "Spara dokument före radering av tilldelning" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "Spara Rapport" @@ -19498,7 +19574,7 @@ msgstr "Välj DocType" msgid "Please select Entity Type first" msgstr "Välj Entitet Typ" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "Välj Minsta Lösenord Värde" @@ -19564,7 +19640,7 @@ msgstr "Ange skrivare mappning för detta utskrift format i Utskrift Inställnin msgid "Please set filters" msgstr "Ange Filter" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "Ange filter värde i Rapport Sortering Tabell." @@ -19580,11 +19656,11 @@ msgstr "Ange följande dokument i Översikt Panel som standard." msgid "Please set the series to be used." msgstr "Ange Namngivning Serie som ska användas." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "Konfigurera SMS före du anger den som Autentisering Sätt via SMS Inställningar" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "Försäljning Order Meddelande" @@ -19604,23 +19680,27 @@ msgstr "Specificera" msgid "Please specify a valid parent DocType for {0}" msgstr "Ange giltig överordnad DocType för {0}" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "Ange minst 10 minuter på grund av utlösande stegfrekvens av schemaläggare" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "Ange minutförskjutning" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "Ange Datum Fält som måste kontrolleras" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "Ange vilket datum och tid fält som måste bli vald" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "Ange Värde Fält som måste kontrolleras" @@ -19807,7 +19887,7 @@ msgstr "Förberedd Rapport Misslyckad" msgid "Preparing Report" msgstr "Förbereder Rapport" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "Lägg mall före e-post meddelande" @@ -19828,7 +19908,7 @@ msgstr "Tryck på Enter att Spara" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19882,6 +19962,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Föregående " +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "Föregående Dokument" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "Föregående Godkännande" @@ -19931,8 +20015,8 @@ msgstr "Primär nyckel för doctype {0} kan inte ändras eftersom det finns befi #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -20045,7 +20129,7 @@ msgstr "Dölj" msgid "Print Hide If No Value" msgstr "Dölj Utskrift om Ingen Värde" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "Utskrift Språk" @@ -20060,10 +20144,8 @@ msgid "Print Server" msgstr "Skrivar Server" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20685,7 +20767,7 @@ msgstr "Sv:" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "Sv: {0}" @@ -20696,7 +20778,7 @@ msgstr "Sv: {0}" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20935,12 +21017,12 @@ msgstr "Omdirigeringar" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "Redis server är inte igång . Kontakta Administratör / Teknisk support" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "Återskapa" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "Återskapa senaste åtgärd" @@ -21253,7 +21335,7 @@ msgstr "Omlänkad" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Ladda om" @@ -21284,7 +21366,7 @@ msgstr "Kom ihåg Senast Valda Värde" msgid "Remind At" msgstr "Påminn Mig" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "Påminn mig" @@ -21364,9 +21446,9 @@ msgid "Removed" msgstr "Borttagen" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21394,7 +21476,7 @@ msgstr "Rendera etikett till vänster och värde till höger i detta sektion" msgid "Reopen" msgstr "Öppna Igen" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "Upprepa" @@ -21644,7 +21726,7 @@ msgstr "Rapport initierad, klicka för att se status" msgid "Report limit reached" msgstr "Rapport gräns nådd" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "Rapport förföll." @@ -21838,7 +21920,7 @@ msgstr "Återställ Layout" msgid "Reset OTP Secret" msgstr "Återställ OTP Hemlighet" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21994,7 +22076,7 @@ msgid "Resume Sending" msgstr "Återuppta Utskick" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22316,7 +22398,7 @@ msgstr "Rad Index" msgid "Row Name" msgstr "Rad Namn" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "Rad Nummer" @@ -22324,7 +22406,7 @@ msgstr "Rad Nummer" msgid "Row Values Changed" msgstr "Rad Värde Ändrad" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "Rad # {0} " @@ -22549,7 +22631,7 @@ msgid "Saturday" msgstr "Lördag" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22605,13 +22687,13 @@ msgstr "Spara Dokument ==>" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "Sparad" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "Sparade Filter" @@ -22653,7 +22735,7 @@ msgstr "Skanna QR Kod och ange resulterande koden som visas." msgid "Schedule" msgstr "Schema" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "Datum och Tid att Skicka" @@ -22717,7 +22799,7 @@ msgstr "Schemaläggare" msgid "Scheduler Event" msgstr "Schemaläggare Händelse" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "Schemaläggare Inaktiv" @@ -22730,7 +22812,7 @@ msgstr "Schemaläggare Status" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "Schemaläggare kan inte återaktiveras när underhåll läge är aktiv." -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "Schemaläggare är Inaktiv. Kan inte importera data." @@ -23031,8 +23113,8 @@ msgstr "Välj i Listan" msgid "Select All" msgstr "Välj Alla" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -23098,7 +23180,7 @@ msgstr "Välj Dokument Typer för att ange vilka användarbehörigheter som anv #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "Välj Fält" @@ -23172,7 +23254,7 @@ msgid "Select Page" msgstr "Välj Sida" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Välj Utskrift Mall" @@ -23386,7 +23468,7 @@ msgstr "Skicka Nu" msgid "Send Print as PDF" msgstr "Skicka Utskrift som PDF" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "Skicka Läskvitto" @@ -23445,11 +23527,11 @@ msgstr "Skicka e-post när dokument övergår till tillstånd." msgid "Send enquiries to this email address" msgstr "Skicka Förfrågningar till denna E-post" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "Skicka Inloggning Länk" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "Skicka Kopia till mig" @@ -23673,7 +23755,7 @@ msgstr "Session Förföll" msgid "Session Expiry (idle timeout)" msgstr "Session Förfaller (Tid av Inaktivitet)" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "Session Förfallo tid måste vara i format {0}" @@ -23718,7 +23800,7 @@ msgstr "Ange Dynamisk Filter" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "Ange Filter" @@ -24114,7 +24196,7 @@ msgstr "Visa Fel" msgid "Show External Link Warning" msgstr "Visa Extern Länk Varning" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "Visa Fältnamn (klicka för att kopiera till urklipp)" @@ -24166,7 +24248,7 @@ msgstr "Visa Språk Väljare" msgid "Show Line Breaks after Sections" msgstr "Visa Rad Brytningar efter Sektioner" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "Visa Länkar" @@ -24241,7 +24323,7 @@ msgstr "Visa Sidofält" msgid "Show Social Login Key as Authorization Server" msgstr "Visa Social Inloggningsnyckel som Auktorisering Server" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "Visa Taggar" @@ -24267,7 +24349,7 @@ msgstr "Visa Totalt" msgid "Show Tour" msgstr "Visa Formulär Tur" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "Visa Spårning" @@ -24347,8 +24429,8 @@ msgstr "Visa Länk till Dokument" msgid "Show list" msgstr "Visa lista" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "Visa fler detaljer" @@ -24536,7 +24618,7 @@ msgstr "Hoppar över Namnlös Kolumn" msgid "Skipping column {0}" msgstr "Hoppar över Kolumn {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "Hoppar över fixture synkronisering för doctype {0} från fil {1}" @@ -24932,7 +25014,7 @@ msgstr "Start Datum" msgid "Start Date Field" msgstr "Start Datum" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "Starta Import" @@ -25066,7 +25148,7 @@ msgstr "Statistik Tid Intervall" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25233,9 +25315,9 @@ msgstr "Underdomän" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Ämne" @@ -25379,12 +25461,12 @@ msgstr "Underbenämning" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25444,11 +25526,11 @@ msgstr "Klar: {0} till {1}" msgid "Successfully Updated" msgstr "Uppdaterad" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "Importerade {0}" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "Importerade {0} av {1} poster." @@ -25464,11 +25546,11 @@ msgstr "Utloggad" msgid "Successfully updated translations" msgstr "Uppdaterade Översättningar" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "Uppdaterade {0}" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "Uppdaterade {0} av {1} poster." @@ -25603,7 +25685,7 @@ msgstr "Synkroniserar" msgid "Syncing {0} of {1}" msgstr "Synkroniserar {0} av {1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "Syntaxfel" @@ -25914,7 +25996,7 @@ msgstr "Tabell FlerVal" msgid "Table Trimmed" msgstr "Tabell Optimerad" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "Tabell Uppdaterad" @@ -26131,7 +26213,7 @@ msgstr "Tack" msgid "The Auto Repeat for this document has been disabled." msgstr "Återkommande för detta dokument är inaktiverad." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "CSV format är skiftläge känslig" @@ -26142,7 +26224,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "Klient ID som erhållits från Google Cloud Console under \"API och tjänster\" > \"Inloggningsuppgifter\"" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "Villkor '{0}' är ogiltig" @@ -26391,7 +26473,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "Det finns {0} med samma filter redan i kö:" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "Det kan bara finnas nio sidbrytning fält i webbformulär" @@ -26443,7 +26525,7 @@ msgstr "Det fanns fel" msgid "There were errors while creating the document. Please try again." msgstr "Det fanns fel när dokument skapades . Försök igen." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "Det fanns fel när e-post skickades. Försök igen." @@ -26520,7 +26602,7 @@ msgstr "Denna åtgärd är oåterkallelig. Vill du fortsätta?" msgid "This action is only allowed for {}" msgstr "Åtgärd är endast tillåten för {}" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "Detta kan inte ångras" @@ -26752,6 +26834,8 @@ msgstr "Detta kommer att ta bort data permanent." msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "Detta återställer Formulär Tur och visar den för alla användare. Är du säker?" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Detta kommer att avsluta jobbet omedelbart och kan vara farligt, är du säker?" @@ -27827,15 +27911,15 @@ msgstr "Inaktivera Villkor" msgid "Uncaught Exception" msgstr "Ofångat Undantag" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "Oförändrad" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "Ångra" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "Ångra Senaste Åtgärd" @@ -27844,7 +27928,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "Oescapede citattecken i sträng literal: {0}" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "Sluta Följa" @@ -27884,7 +27968,7 @@ msgstr "Okänd" msgid "Unknown Column: {0}" msgstr "Okänd Kolumn: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "Okänd Avrundning Sätt: {}" @@ -28112,7 +28196,7 @@ msgstr "Uppdaterar Standard Inställningar" msgid "Updating naming series options" msgstr "Uppdaterar Namngivning Serie Alternativ" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "Uppdaterar relaterade fält..." @@ -28758,7 +28842,7 @@ msgstr "Giltighet" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Värde" @@ -28836,7 +28920,7 @@ msgstr "Värde för hög" msgid "Value {0} missing for {1}" msgstr "Värde {0} saknas för {1}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "Värde {0} måste ha giltig varaktighet format: d h m s" @@ -28858,7 +28942,7 @@ msgstr "Verdana" msgid "Verification" msgstr "Verifiering" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "Verifiering Kod" @@ -28916,7 +29000,7 @@ msgstr "Visa" msgid "View All" msgstr "Visa Alla" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "Visa Audit Spår" @@ -29882,9 +29966,9 @@ msgstr "Gul" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29979,7 +30063,7 @@ msgstr "Du har inte behörighet att exportera {} doctype" msgid "You are not allowed to print this report" msgstr "Du har inte behörighet att skriva ut denna rapport" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "Du har inte behörighet att skicka e-post i kopplad till detta dokument" @@ -30167,7 +30251,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "Du skapade detta dokument {0}" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "Du har inte Läs eller Val Behörigheter för {}" @@ -30227,7 +30311,7 @@ msgstr "Du har nått gräns för radstorlek i databas tabell: {0}" msgid "You have not entered a value. The field will be set to empty." msgstr "Du har inte anget någon värde. Fält kommer att vara tom." -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "Du behöver ktivera \"\"Two Factor Auth\"\" från System Inställningar." @@ -30336,7 +30420,7 @@ msgstr "Du behöver skrivbehörighet på {0} {1} för att slå samman" msgid "You need write permission on {0} {1} to rename" msgstr "Du behöver skrivbehörighet på {0} {1} för att ändra namn" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "Du behöver {0} behörighet för att hämta värden från {1} {2}" @@ -30510,7 +30594,7 @@ msgstr "Webbplats genomgår underhåll eller uppdateras." msgid "Your verification code is {0}" msgstr "Din verifiering kod är {0}" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "Noll" @@ -30553,7 +30637,7 @@ msgstr "efter_infoga" msgid "amend" msgstr "ändra" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "och" @@ -30840,7 +30924,7 @@ msgstr "lista" msgid "logged in" msgstr "inloggad" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "Inloggning Erfordras " @@ -31178,7 +31262,7 @@ msgstr "via Data Import" msgid "via Google Meet" msgstr "via Google Meet" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "via Avisering" @@ -31387,7 +31471,7 @@ msgstr "{0} redan avregistrerad" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} redan avregistrerad för {1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} och {1}" @@ -31412,7 +31496,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "{0} bifogade {1}" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "{0} kan inte vara fler än {1}" @@ -31725,7 +31809,7 @@ msgstr "{0} minuter sedan" msgid "{0} months ago" msgstr "{0} månader sedan" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} måste vara efter {1}" @@ -31782,12 +31866,12 @@ msgstr "{0} av {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} av {1} ({2} rader med underordnade)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "{0} ." -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} eller {1}" @@ -31832,7 +31916,7 @@ msgstr "{0} tog bort {1} rader från {2}" msgid "{0} role does not have permission on any doctype" msgstr "{0} roll har inte tillstånd på någon doctype" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} rad #{1}:" @@ -32111,11 +32195,11 @@ msgstr "{{{0}}} är inte giltigt fältnamn mönster. Det borde vara {{field_name msgid "{} Complete" msgstr "{} Klar" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "{} Ogiltig python kod på rad {}" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "{} Möjligen ogiltig python kod.
{}" diff --git a/frappe/locale/ta.po b/frappe/locale/ta.po index b9ace0ee0b..b1bc513b12 100644 --- a/frappe/locale/ta.po +++ b/frappe/locale/ta.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:49\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Tamil\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "" msgid "1 Report" msgstr "" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "1 நாள் முன்பு" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "1 மணி நேரம்" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "" @@ -231,7 +231,7 @@ msgstr "" msgid "5 Records" msgstr "" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "" @@ -502,7 +502,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -902,7 +902,7 @@ msgstr "" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "" @@ -1039,7 +1039,7 @@ msgstr "" msgid "Add A New Rule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "" @@ -1144,7 +1144,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "" @@ -1172,7 +1172,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1579,6 +1579,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1593,7 +1594,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2195,7 +2198,7 @@ msgstr "" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2357,7 +2360,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "" @@ -2393,7 +2396,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "" @@ -2639,10 +2642,15 @@ msgstr "" msgid "Attach" msgstr "" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2725,6 +2733,11 @@ msgstr "" msgid "Attachment Removed" msgstr "" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2902,7 +2915,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3136,7 +3149,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3154,7 +3167,7 @@ msgstr "" msgid "Back to Home" msgstr "" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3594,7 +3607,7 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3717,7 +3730,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "" @@ -3912,6 +3925,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3949,11 +3970,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4056,7 +4077,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4081,7 +4102,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4101,7 +4122,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4129,7 +4150,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4474,11 +4495,11 @@ msgstr "" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4512,7 +4533,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4565,7 +4586,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4576,7 +4597,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4753,7 +4774,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "" @@ -4877,7 +4898,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5120,7 +5141,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5457,7 +5478,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6068,13 +6089,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "" @@ -6727,7 +6748,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7080,7 +7101,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7236,7 +7257,7 @@ msgstr "" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7325,7 +7346,7 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7487,7 +7508,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7508,11 +7529,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7623,7 +7644,7 @@ msgstr "" msgid "Document Name" msgstr "" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7799,7 +7820,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7827,11 +7848,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7847,7 +7868,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8074,7 +8095,7 @@ msgid "Due Date Based On" msgstr "" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "" @@ -8189,7 +8210,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8238,7 +8259,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "" @@ -8423,7 +8444,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8482,7 +8503,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8632,7 +8653,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8664,7 +8685,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -8861,7 +8882,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9034,7 +9055,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9172,9 +9193,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9194,7 +9215,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9376,7 +9397,7 @@ msgstr "" msgid "Expand" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "" @@ -9473,7 +9494,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9483,7 +9504,7 @@ msgstr "" msgid "Export From" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9659,7 +9680,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9696,11 +9717,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9730,7 +9751,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9790,6 +9811,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9894,7 +9919,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10127,7 +10152,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10387,7 +10412,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10395,7 +10420,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10859,11 +10884,16 @@ msgstr "" msgid "From" msgstr "" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10879,6 +10909,11 @@ msgstr "" msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11040,7 +11075,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11132,7 +11167,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11180,7 +11215,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11877,7 +11912,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12560,11 +12595,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13067,7 +13102,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13161,6 +13196,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13175,7 +13212,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13297,7 +13334,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13832,6 +13869,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13840,16 +13878,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -14901,7 +14945,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15036,7 +15080,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15073,7 +15117,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15543,7 +15587,7 @@ msgstr "" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15579,7 +15623,7 @@ msgstr "" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "" @@ -15604,16 +15648,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15650,7 +15694,7 @@ msgstr "" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15658,7 +15702,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15844,7 +15888,7 @@ msgstr "" msgid "Missing Fields" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -15979,7 +16023,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -15987,7 +16031,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16501,7 +16545,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "" @@ -16603,10 +16647,10 @@ msgid "New value to be set" msgstr "" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16691,6 +16735,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16758,8 +16806,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16795,7 +16843,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16935,7 +16983,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -16975,6 +17023,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -16995,7 +17047,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17058,7 +17110,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17095,7 +17147,7 @@ msgstr "" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17236,8 +17288,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17290,7 +17342,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17322,7 +17374,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17445,15 +17497,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17567,7 +17619,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17676,14 +17728,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17799,7 +17867,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17859,7 +17927,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" @@ -17897,7 +17965,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18077,7 +18145,7 @@ msgstr "" msgid "Operation" msgstr "" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18579,7 +18647,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18751,6 +18819,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19075,7 +19147,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19127,7 +19199,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19167,7 +19239,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19283,6 +19355,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19299,7 +19375,7 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" @@ -19365,7 +19441,7 @@ msgstr "" msgid "Please set filters" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19381,11 +19457,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19405,23 +19481,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19608,7 +19688,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19629,7 +19709,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19683,6 +19763,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19732,8 +19816,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19846,7 +19930,7 @@ msgstr "" msgid "Print Hide If No Value" msgstr "" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19861,10 +19945,8 @@ msgid "Print Server" msgstr "" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20486,7 +20568,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20497,7 +20579,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20736,12 +20818,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21054,7 +21136,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "" @@ -21085,7 +21167,7 @@ msgstr "" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21165,9 +21247,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21195,7 +21277,7 @@ msgstr "" msgid "Reopen" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21445,7 +21527,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21639,7 +21721,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21795,7 +21877,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22117,7 +22199,7 @@ msgstr "" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22125,7 +22207,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22350,7 +22432,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22406,13 +22488,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22454,7 +22536,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22518,7 +22600,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22531,7 +22613,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22832,8 +22914,8 @@ msgstr "" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22899,7 +22981,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -22973,7 +23055,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "" @@ -23187,7 +23269,7 @@ msgstr "" msgid "Send Print as PDF" msgstr "" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "" @@ -23246,11 +23328,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "" @@ -23474,7 +23556,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23519,7 +23601,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -23891,7 +23973,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23943,7 +24025,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24018,7 +24100,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "" @@ -24044,7 +24126,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24124,8 +24206,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24313,7 +24395,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24709,7 +24791,7 @@ msgstr "" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24843,7 +24925,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25010,9 +25092,9 @@ msgstr "" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "" @@ -25156,12 +25238,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25221,11 +25303,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25241,11 +25323,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25380,7 +25462,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25691,7 +25773,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25906,7 +25988,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -25917,7 +25999,7 @@ msgid "The Client ID obtained from the Google Cloud Console under " msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26164,7 +26246,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26216,7 +26298,7 @@ msgstr "" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26293,7 +26375,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26522,6 +26604,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -27590,15 +27674,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27607,7 +27691,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27645,7 +27729,7 @@ msgstr "" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27873,7 +27957,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28519,7 +28603,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "" @@ -28597,7 +28681,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28619,7 +28703,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28677,7 +28761,7 @@ msgstr "" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29643,9 +29727,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29740,7 +29824,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -29928,7 +30012,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -29988,7 +30072,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30097,7 +30181,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30271,7 +30355,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "" @@ -30314,7 +30398,7 @@ msgstr "" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "" @@ -30601,7 +30685,7 @@ msgstr "" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30939,7 +31023,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31148,7 +31232,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "" @@ -31173,7 +31257,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31486,7 +31570,7 @@ msgstr "" msgid "{0} months ago" msgstr "" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31543,12 +31627,12 @@ msgstr "" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "" @@ -31593,7 +31677,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "" @@ -31872,11 +31956,11 @@ msgstr "" msgid "{} Complete" msgstr "" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/th.po b/frappe/locale/th.po index f6804be655..42c8ab1813 100644 --- a/frappe/locale/th.po +++ b/frappe/locale/th.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:49\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Thai\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "1 เหตุการณ์ Google Calendar ซิงค์แล้ msgid "1 Report" msgstr "1 รายงาน" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "1 วันที่ผ่านมา" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "1 ชั่วโมง" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "1 ชั่วโมงที่แล้ว" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "1 นาทีที่แล้ว" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "1 เดือนที่แล้ว" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "1 วินาทีที่แล้ว" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "1 สัปดาห์ที่แล้ว" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "1 ปีที่แล้ว" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "2 ชั่วโมงที่แล้ว" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "2 เดือนที่แล้ว" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "2 สัปดาห์ที่แล้ว" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "2 ปีที่แล้ว" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "3 นาทีที่แล้ว" @@ -231,7 +231,7 @@ msgstr "4 ชั่วโมง" msgid "5 Records" msgstr "5 รายการ" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "5 วันที่ผ่านมา" @@ -502,7 +502,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -902,7 +902,7 @@ msgstr "" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "" @@ -1039,7 +1039,7 @@ msgstr "" msgid "Add A New Rule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "" @@ -1144,7 +1144,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "" @@ -1172,7 +1172,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1579,6 +1579,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1593,7 +1594,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2195,7 +2198,7 @@ msgstr "" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2357,7 +2360,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "" @@ -2393,7 +2396,7 @@ msgstr "คุณแน่ใจหรือไม่ว่าต้องกา msgid "Are you sure you want to generate a new report?" msgstr "คุณแน่ใจหรือไม่ว่าต้องการสร้างรายงานใหม่?" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "คุณแน่ใจหรือไม่ว่าต้องการรวม {0} กับ {1}?" @@ -2639,10 +2642,15 @@ msgstr "" msgid "Attach" msgstr "" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2725,6 +2733,11 @@ msgstr "" msgid "Attachment Removed" msgstr "" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2902,7 +2915,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3136,7 +3149,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "BCC" @@ -3154,7 +3167,7 @@ msgstr "" msgid "Back to Home" msgstr "" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3594,7 +3607,7 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3717,7 +3730,7 @@ msgstr "" msgid "CC" msgstr "สำเนาถึง" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "สำเนาถึง" @@ -3912,6 +3925,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3949,11 +3970,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4056,7 +4077,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4081,7 +4102,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4101,7 +4122,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4129,7 +4150,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4474,11 +4495,11 @@ msgstr "" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4512,7 +4533,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4565,7 +4586,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4576,7 +4597,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4753,7 +4774,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "" @@ -4877,7 +4898,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5120,7 +5141,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5457,7 +5478,7 @@ msgstr "คัดลอกรหัสฝัง" msgid "Copy error to clipboard" msgstr "คัดลอกข้อผิดพลาดไปยังคลิปบอร์ด" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "คัดลอกไปยังคลิปบอร์ด" @@ -6068,13 +6089,13 @@ msgstr "การปรับแต่งถูกละทิ้ง" msgid "Customizations Reset" msgstr "รีเซ็ตการปรับแต่ง" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "การปรับแต่งสำหรับ {0} ถูกส่งออกไปยัง:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "ปรับแต่ง" @@ -6727,7 +6748,7 @@ msgstr "ล่าช้า" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7080,7 +7101,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7236,7 +7257,7 @@ msgstr "" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7325,7 +7346,7 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7487,7 +7508,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7508,11 +7529,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7623,7 +7644,7 @@ msgstr "" msgid "Document Name" msgstr "" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7799,7 +7820,7 @@ msgid "Document Types and Permissions" msgstr "ประเภทเอกสารและสิทธิ์" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "เอกสารถูกปลดล็อก" @@ -7827,11 +7848,11 @@ msgstr "เอกสารสามารถแก้ไขได้เฉพา msgid "Document not Relinked" msgstr "เอกสารไม่ได้เชื่อมโยงใหม่" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "เอกสารถูกเปลี่ยนชื่อจาก {0} เป็น {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "การเปลี่ยนชื่อเอกสารจาก {0} เป็น {1} ถูกจัดคิวแล้ว" @@ -7847,7 +7868,7 @@ msgstr "เอกสาร {0} ถูกกู้คืนแล้ว" msgid "Document {0} has been set to state {1} by {2}" msgstr "เอกสาร {0} ถูกตั้งค่าเป็นสถานะ {1} โดย {2}" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "เอกสาร {0} {1} ไม่มีอยู่" @@ -8074,7 +8095,7 @@ msgid "Due Date Based On" msgstr "วันที่ครบกำหนดตาม" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "ซ้ำ" @@ -8189,7 +8210,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8238,7 +8259,7 @@ msgstr "แก้ไขบล็อกที่กำหนดเอง" msgid "Edit Custom HTML" msgstr "แก้ไข HTML ที่กำหนดเอง" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "แก้ไข DocType" @@ -8423,7 +8444,7 @@ msgstr "ตัวเลือกองค์ประกอบ" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8482,7 +8503,7 @@ msgstr "บัญชีอีเมล {0} ถูกปิดใช้งาน" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "ที่อยู่อีเมล" @@ -8632,7 +8653,7 @@ msgstr "ตัวเลือกการซิงค์อีเมล" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "แม่แบบอีเมล" @@ -8664,7 +8685,7 @@ msgstr "อีเมลถูกย้ายไปที่ถังขยะ" msgid "Email is mandatory to create User Email" msgstr "อีเมลเป็นสิ่งจำเป็นในการสร้างอีเมลผู้ใช้" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "ไม่ได้ส่งอีเมลถึง {0} (ยกเลิกการสมัคร / ปิดใช้งาน)" @@ -8861,7 +8882,7 @@ msgstr "เปิดใช้งานการติดตามการดู #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "เปิดใช้งานการยืนยันตัวตนสองขั้นตอน" @@ -9034,7 +9055,7 @@ msgstr "ป้อน Client Id และ Client Secret ในการตั้ msgid "Enter Code displayed in OTP App." msgstr "ป้อนรหัสที่แสดงในแอป OTP" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "ป้อนผู้รับอีเมล" @@ -9172,9 +9193,9 @@ msgstr "ข้อผิดพลาดใน Client Script." msgid "Error in Header/Footer Script" msgstr "ข้อผิดพลาดในสคริปต์ส่วนหัว/ส่วนท้าย" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "ข้อผิดพลาดในการแจ้งเตือน" @@ -9194,7 +9215,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "ข้อผิดพลาดขณะเชื่อมต่อกับบัญชีอีเมล {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "ข้อผิดพลาดขณะประเมินการแจ้งเตือน {0} โปรดแก้ไขแม่แบบของคุณ" @@ -9376,7 +9397,7 @@ msgstr "บทบาทที่มีอยู่" msgid "Expand" msgstr "ขยาย" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "ขยาย" @@ -9473,7 +9494,7 @@ msgstr "ส่งออกการปรับแต่ง" msgid "Export Data" msgstr "ส่งออกข้อมูล" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "ส่งออกแถวที่มีข้อผิดพลาด" @@ -9483,7 +9504,7 @@ msgstr "ส่งออกแถวที่มีข้อผิดพลาด msgid "Export From" msgstr "ส่งออกจาก" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "ส่งออกบันทึกการนำเข้า" @@ -9659,7 +9680,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9696,11 +9717,11 @@ msgstr "ล้มเหลวในการนำเข้า virtual doctype { msgid "Failed to optimize image: {0}" msgstr "ล้มเหลวในการปรับแต่งภาพ: {0}" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "ล้มเหลวในการแสดงข้อความ: {}" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "ล้มเหลวในการแสดงหัวเรื่อง: {}" @@ -9730,7 +9751,7 @@ msgstr "ล้มเหลวขณะเรียก API {0}" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "งานที่กำหนดเวลาไว้ล้มเหลว (7 วันที่ผ่านมา)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "ความล้มเหลว" @@ -9790,6 +9811,10 @@ msgstr "ดึงข้อมูลเมื่อบันทึกหากว msgid "Fetching default Global Search documents." msgstr "กำลังดึงเอกสารการค้นหาทั่วโลกเริ่มต้น" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9894,7 +9919,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10127,7 +10152,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10387,7 +10412,7 @@ msgid "Folio" msgstr "โฟลิโอ" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "ติดตาม" @@ -10395,7 +10420,7 @@ msgstr "ติดตาม" msgid "Followed by" msgstr "ตามด้วย" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "ตัวกรองรายงานต่อไปนี้มีค่าที่ขาดหายไป:" @@ -10859,11 +10884,16 @@ msgstr "วันศุกร์" msgid "From" msgstr "จาก" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "จาก" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10879,6 +10909,11 @@ msgstr "ฟิลด์จากวันที่" msgid "From Document Type" msgstr "จากประเภทเอกสาร" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11040,7 +11075,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11132,7 +11167,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11180,7 +11215,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11877,7 +11912,7 @@ msgstr "ซ่อนวันหยุดสุดสัปดาห์" msgid "Hide descendant records of For Value." msgstr "ซ่อนบันทึกลูกหลานของ For Value." -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "ซ่อนรายละเอียด" @@ -12560,11 +12595,11 @@ msgstr "แม่แบบการนำเข้าควรเป็นปร msgid "Import template should contain a Header and atleast one row." msgstr "แม่แบบการนำเข้าควรมีส่วนหัวและอย่างน้อยหนึ่งแถว" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "การนำเข้าหมดเวลา โปรดลองอีกครั้ง" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "ไม่อนุญาตให้นำเข้า {0}" @@ -13067,7 +13102,7 @@ msgstr "ไม่ถูกต้อง" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13161,6 +13196,8 @@ msgstr "เซิร์ฟเวอร์เมลไม่ถูกต้อง msgid "Invalid Naming Series: {}" msgstr "ชุดการตั้งชื่อไม่ถูกต้อง: {}" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13175,7 +13212,7 @@ msgstr "ตัวเลือกไม่ถูกต้อง" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "เซิร์ฟเวอร์เมลขาออกหรือพอร์ตไม่ถูกต้อง: {0}" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "รูปแบบผลลัพธ์ไม่ถูกต้อง" @@ -13297,7 +13334,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "ชื่อฟิลด์ไม่ถูกต้อง {0}" @@ -13832,6 +13869,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13840,16 +13878,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -14901,7 +14945,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15036,7 +15080,7 @@ msgstr "รหัสยืนยันการเข้าสู่ระบบ msgid "Login and view in Browser" msgstr "เข้าสู่ระบบและดูในเบราว์เซอร์" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "ต้องเข้าสู่ระบบเพื่อดูมุมมองรายการฟอร์มเว็บ เปิดใช้งาน {0} เพื่อดูการตั้งค่ารายการ" @@ -15073,7 +15117,7 @@ msgstr "เข้าสู่ระบบไปยัง {0}" msgid "Login token required" msgstr "ต้องการโทเค็นเข้าสู่ระบบ" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "เข้าสู่ระบบด้วยลิงก์อีเมล" @@ -15543,7 +15587,7 @@ msgstr "ปานกลาง" msgid "Meeting" msgstr "การประชุม" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "ตรงตามเงื่อนไขหรือไม่?" @@ -15579,7 +15623,7 @@ msgstr "การกล่าวถึง" msgid "Menu" msgstr "เมนู" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "รวมกับที่มีอยู่" @@ -15604,16 +15648,16 @@ msgstr "การรวมสามารถทำได้เฉพาะระ #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15650,7 +15694,7 @@ msgstr "ส่งข้อความแล้ว" msgid "Message Type" msgstr "ประเภทข้อความ" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "ข้อความถูกตัด" @@ -15658,7 +15702,7 @@ msgstr "ข้อความถูกตัด" msgid "Message from server: {0}" msgstr "ข้อความจากเซิร์ฟเวอร์: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "ยังไม่ได้ตั้งค่าข้อความ" @@ -15844,7 +15888,7 @@ msgstr "ฟิลด์ที่หายไป" msgid "Missing Fields" msgstr "ฟิลด์ที่หายไป" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "ตัวกรองที่จำเป็นหายไป" @@ -15979,7 +16023,7 @@ msgstr "โปรไฟล์โมดูล" msgid "Module Profile Name" msgstr "ชื่อโปรไฟล์โมดูล" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "รีเซ็ตความคืบหน้าการเริ่มต้นใช้งานโมดูล" @@ -15987,7 +16031,7 @@ msgstr "รีเซ็ตความคืบหน้าการเริ่ msgid "Module to Export" msgstr "โมดูลที่จะส่งออก" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "ไม่พบโมดูล {}" @@ -16501,7 +16545,7 @@ msgstr "ข้อความใหม่จากหน้าติดต่อ #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "ชื่อใหม่" @@ -16603,10 +16647,10 @@ msgid "New value to be set" msgstr "ค่าที่จะตั้งใหม่" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16691,6 +16735,10 @@ msgstr "แม่แบบอีเมลการดำเนินการถ msgid "Next Actions HTML" msgstr "HTML การดำเนินการถัดไป" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16758,8 +16806,8 @@ msgstr "ถัดไปเมื่อคลิก" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16795,7 +16843,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16935,7 +16983,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -16975,6 +17023,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -16995,7 +17047,7 @@ msgstr "ไม่มีบัญชีอีเมลที่เชื่อม msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "ไม่มีบันทึกที่ล้มเหลว" @@ -17058,7 +17110,7 @@ msgstr "จำนวนแถว (สูงสุด 500)" msgid "No of Sent SMS" msgstr "จำนวน SMS ที่ส่ง" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "ไม่มีสิทธิ์สำหรับ {0}" @@ -17095,7 +17147,7 @@ msgstr "จะไม่มีการส่งออกบันทึก" msgid "No rows" msgstr "ไม่มีแถว" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "ไม่มีหัวข้อ" @@ -17236,8 +17288,8 @@ msgstr "ไม่ได้รับอนุญาตให้อ่าน {0}" msgid "Not Published" msgstr "ไม่ได้เผยแพร่" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17290,7 +17342,7 @@ msgstr "ไม่ใช้งาน" msgid "Not allowed for {0}: {1}" msgstr "ไม่อนุญาตสำหรับ {0}: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "ไม่อนุญาตให้แนบเอกสาร {0} โปรดเปิดใช้งานอนุญาตการพิมพ์สำหรับ {0} ในการตั้งค่าการพิมพ์" @@ -17322,7 +17374,7 @@ msgstr "ไม่ได้อยู่ในโหมดนักพัฒนา msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "ไม่ได้อยู่ในโหมดนักพัฒนา! ตั้งค่าใน site_config.json หรือสร้าง DocType 'Custom'" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17445,15 +17497,15 @@ msgstr "เอกสารที่สมัครรับการแจ้ง msgid "Notification sent to" msgstr "การแจ้งเตือนถูกส่งไปยัง" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "การแจ้งเตือน: ลูกค้า {0} ไม่มีการตั้งหมายเลขมือถือ" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "การแจ้งเตือน: เอกสาร {0} ไม่มีการตั้งหมายเลข {1} (ฟิลด์: {2})" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "การแจ้งเตือน: ผู้ใช้ {0} ไม่มีการตั้งหมายเลขมือถือ" @@ -17567,7 +17619,7 @@ msgstr "จำนวนคำสั่ง Query" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "จำนวนฟิลด์ไฟล์แนบมากกว่า {} ขีดจำกัดอัปเดตเป็น {}" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "จำนวนการสำรองข้อมูลต้องมากกว่าศูนย์" @@ -17676,14 +17728,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17799,7 +17867,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17859,7 +17927,7 @@ msgstr "รหัสลงทะเบียนรหัสผ่านครั msgid "One of" msgstr "หนึ่งใน" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "อนุญาตให้แทรกได้เพียง 200 รายการต่อคำขอหนึ่งครั้ง" @@ -17897,7 +17965,7 @@ msgstr "ส่งเฉพาะบันทึกที่อัปเดตใ msgid "Only Workspace Manager can edit public workspaces" msgstr "เฉพาะผู้จัดการพื้นที่ทำงานเท่านั้นที่สามารถแก้ไขพื้นที่ทำงานสาธารณะได้" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "อนุญาตให้ส่งออกการปรับแต่งในโหมดนักพัฒนาเท่านั้น" @@ -18077,7 +18145,7 @@ msgstr "" msgid "Operation" msgstr "" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "ผู้ปฏิบัติงานต้องเป็นหนึ่งใน {0}" @@ -18579,7 +18647,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "ไม่ได้ระบุฟิลด์ผู้ปกครองใน {0}: {1}" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "ต้องการประเภทผู้ปกครอง ผู้ปกครอง และฟิลด์ผู้ปกครองเพื่อแทรกบันทึกลูก" @@ -18751,6 +18819,10 @@ msgstr "เส้นทางไปยังใบรับรองเซิร msgid "Path to private Key File" msgstr "เส้นทางไปยังไฟล์คีย์ส่วนตัว" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "เส้นทาง {0} ไม่ใช่เส้นทางที่ถูกต้อง" @@ -19075,7 +19147,7 @@ msgstr "โปรดตั้งค่าแผนภูมิ" msgid "Please Update SMS Settings" msgstr "โปรดอัปเดตการตั้งค่า SMS" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "โปรดเพิ่มหัวข้อในอีเมลของคุณ" @@ -19127,7 +19199,7 @@ msgstr "โปรดตรวจสอบที่อยู่อีเมลท msgid "Please click Edit on the Workspace for best results" msgstr "โปรดคลิกแก้ไขในพื้นที่ทำงานเพื่อผลลัพธ์ที่ดีที่สุด" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "โปรดคลิกที่ 'ส่งออกแถวที่มีข้อผิดพลาด' แก้ไขข้อผิดพลาดและนำเข้าอีกครั้ง" @@ -19167,7 +19239,7 @@ msgstr "โปรดอย่าเปลี่ยนหัวข้อแม่ msgid "Please duplicate this to make changes" msgstr "โปรดทำสำเนานี้เพื่อทำการเปลี่ยนแปลง" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "โปรดเปิดใช้งานคีย์เข้าสู่ระบบโซเชียลอย่างน้อยหนึ่งคีย์หรือ LDAP หรือเข้าสู่ระบบด้วยลิงก์อีเมลก่อนปิดใช้งานการเข้าสู่ระบบด้วยชื่อผู้ใช้/รหัสผ่าน" @@ -19283,6 +19355,10 @@ msgstr "โปรดบันทึกเอกสารก่อนการม msgid "Please save the document before removing assignment" msgstr "โปรดบันทึกเอกสารก่อนลบการมอบหมาย" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "โปรดบันทึกรายงานก่อน" @@ -19299,7 +19375,7 @@ msgstr "โปรดเลือก DocType ก่อน" msgid "Please select Entity Type first" msgstr "โปรดเลือกประเภทเอนทิตีก่อน" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "โปรดเลือกคะแนนรหัสผ่านขั้นต่ำ" @@ -19365,7 +19441,7 @@ msgstr "โปรดตั้งค่าการแมปเครื่อง msgid "Please set filters" msgstr "โปรดตั้งค่าตัวกรอง" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "โปรดตั้งค่าค่าตัวกรองในตารางตัวกรองรายงาน" @@ -19381,11 +19457,11 @@ msgstr "โปรดตั้งค่าเอกสารต่อไปนี msgid "Please set the series to be used." msgstr "โปรดตั้งค่าซีรีส์ที่จะใช้" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "โปรดตั้งค่า SMS ก่อนตั้งค่าเป็นวิธีการยืนยันตัวตนผ่านการตั้งค่า SMS" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "โปรดตั้งค่าข้อความก่อน" @@ -19405,23 +19481,27 @@ msgstr "โปรดระบุ" msgid "Please specify a valid parent DocType for {0}" msgstr "โปรดระบุประเภทเอกสารหลักที่ถูกต้องสำหรับ {0}" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "โปรดระบุอย่างน้อย 10 นาทีเนื่องจากจังหวะการทำงานของตัวกำหนดเวลา" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "โปรดระบุการชดเชยนาที" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "โปรดระบุฟิลด์วันที่ที่ต้องตรวจสอบ" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "โปรดระบุฟิลด์วันที่และเวลาที่ต้องตรวจสอบ" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "โปรดระบุฟิลด์ค่าที่ต้องตรวจสอบ" @@ -19608,7 +19688,7 @@ msgstr "การแสดงผลรายงานที่เตรียม msgid "Preparing Report" msgstr "กำลังเตรียมรายงาน" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "เพิ่มแม่แบบไปยังข้อความอีเมล" @@ -19629,7 +19709,7 @@ msgstr "กด Enter เพื่อบันทึก" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19683,6 +19763,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "ก่อนหน้า" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "การส่งก่อนหน้า" @@ -19732,8 +19816,8 @@ msgstr "คีย์หลักของประเภทเอกสาร {0 #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19846,7 +19930,7 @@ msgstr "ซ่อนการพิมพ์" msgid "Print Hide If No Value" msgstr "ซ่อนการพิมพ์หากไม่มีค่า" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "ภาษาการพิมพ์" @@ -19861,10 +19945,8 @@ msgid "Print Server" msgstr "เซิร์ฟเวอร์การพิมพ์" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20486,7 +20568,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20497,7 +20579,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20736,12 +20818,12 @@ msgstr "เปลี่ยนเส้นทาง" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "เซิร์ฟเวอร์แคช Redis ไม่ทำงาน โปรดติดต่อผู้ดูแลระบบ/ฝ่ายสนับสนุนด้านเทคนิค" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "ทำซ้ำ" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "ทำซ้ำการกระทำล่าสุด" @@ -21054,7 +21136,7 @@ msgstr "ลิงก์ใหม่แล้ว" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "โหลดใหม่" @@ -21085,7 +21167,7 @@ msgstr "จำค่าที่เลือกครั้งสุดท้า msgid "Remind At" msgstr "เตือนที่" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "เตือนฉัน" @@ -21165,9 +21247,9 @@ msgid "Removed" msgstr "ลบแล้ว" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21195,7 +21277,7 @@ msgstr "แสดงป้ายกำกับทางซ้ายและค msgid "Reopen" msgstr "เปิดใหม่" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "ทำซ้ำ" @@ -21445,7 +21527,7 @@ msgstr "เริ่มต้นรายงานแล้ว คลิกเ msgid "Report limit reached" msgstr "ถึงขีดจำกัดรายงานแล้ว" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "รายงานหมดเวลา" @@ -21639,7 +21721,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21795,7 +21877,7 @@ msgid "Resume Sending" msgstr "ดำเนินการส่งต่อ" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22117,7 +22199,7 @@ msgstr "" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22125,7 +22207,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "แถว {0}" @@ -22350,7 +22432,7 @@ msgid "Saturday" msgstr "วันเสาร์" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22406,13 +22488,13 @@ msgstr "บันทึกเอกสาร" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "บันทึกแล้ว" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "ตัวกรองที่บันทึกไว้" @@ -22454,7 +22536,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22518,7 +22600,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22531,7 +22613,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22832,8 +22914,8 @@ msgstr "" msgid "Select All" msgstr "เลือกทั้งหมด" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22899,7 +22981,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -22973,7 +23055,7 @@ msgid "Select Page" msgstr "เลือกหน้า" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "เลือกรูปแบบการพิมพ์" @@ -23187,7 +23269,7 @@ msgstr "ส่งเดี๋ยวนี้" msgid "Send Print as PDF" msgstr "ส่งพิมพ์เป็น PDF" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "ส่งใบตอบรับการอ่าน" @@ -23246,11 +23328,11 @@ msgstr "ส่งอีเมลเมื่อเอกสารเปลี่ msgid "Send enquiries to this email address" msgstr "ส่งคำถามไปยังที่อยู่อีเมลนี้" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "ส่งลิงก์เข้าสู่ระบบ" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "ส่งสำเนาให้ฉัน" @@ -23474,7 +23556,7 @@ msgstr "เซสชันหมดอายุ" msgid "Session Expiry (idle timeout)" msgstr "การหมดอายุของเซสชัน (หมดเวลาไม่ใช้งาน)" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "การหมดอายุของเซสชันต้องอยู่ในรูปแบบ {0}" @@ -23519,7 +23601,7 @@ msgstr "ตั้งค่าตัวกรองแบบไดนามิก #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "ตั้งค่าตัวกรอง" @@ -23891,7 +23973,7 @@ msgstr "แสดงข้อผิดพลาด" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "แสดงชื่อฟิลด์ (คลิกเพื่อคัดลอกไปยังคลิปบอร์ด)" @@ -23943,7 +24025,7 @@ msgstr "แสดงตัวเลือกภาษา" msgid "Show Line Breaks after Sections" msgstr "แสดงการแบ่งบรรทัดหลังส่วน" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "แสดงลิงก์" @@ -24018,7 +24100,7 @@ msgstr "แสดงแถบด้านข้าง" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "แสดงแท็ก" @@ -24044,7 +24126,7 @@ msgstr "แสดงยอดรวม" msgid "Show Tour" msgstr "แสดงทัวร์" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "แสดงการติดตามข้อผิดพลาด" @@ -24124,8 +24206,8 @@ msgstr "แสดงลิงก์ไปยังเอกสาร" msgid "Show list" msgstr "แสดงรายการ" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "แสดงรายละเอียดเพิ่มเติม" @@ -24313,7 +24395,7 @@ msgstr "ข้ามคอลัมน์ที่ไม่มีชื่อ" msgid "Skipping column {0}" msgstr "ข้ามคอลัมน์ {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "ข้ามการซิงค์ฟิกซ์เจอร์สำหรับประเภทเอกสาร {0} จากไฟล์ {1}" @@ -24709,7 +24791,7 @@ msgstr "" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24843,7 +24925,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25010,9 +25092,9 @@ msgstr "ซับโดเมน" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "หัวข้อ" @@ -25156,12 +25238,12 @@ msgstr "คำบรรยาย" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25221,11 +25303,11 @@ msgstr "สำเร็จ: {0} ถึง {1}" msgid "Successfully Updated" msgstr "อัปเดตสำเร็จ" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "นำเข้า {0} สำเร็จ" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "นำเข้า {0} จาก {1} รายการสำเร็จ" @@ -25241,11 +25323,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "อัปเดตการแปลสำเร็จ" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "อัปเดต {0} สำเร็จ" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "อัปเดต {0} จาก {1} รายการสำเร็จ" @@ -25380,7 +25462,7 @@ msgstr "กำลังซิงค์" msgid "Syncing {0} of {1}" msgstr "กำลังซิงค์ {0} จาก {1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "ข้อผิดพลาดทางไวยากรณ์" @@ -25691,7 +25773,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25906,7 +25988,7 @@ msgstr "ขอบคุณ" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -25917,7 +25999,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26164,7 +26246,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26216,7 +26298,7 @@ msgstr "มีข้อผิดพลาด" msgid "There were errors while creating the document. Please try again." msgstr "เกิดข้อผิดพลาดขณะสร้างเอกสาร โปรดลองอีกครั้ง" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "เกิดข้อผิดพลาดขณะส่งอีเมล โปรดลองอีกครั้ง" @@ -26293,7 +26375,7 @@ msgstr "การกระทำนี้ไม่สามารถย้อน msgid "This action is only allowed for {}" msgstr "การกระทำนี้อนุญาตเฉพาะสำหรับ {}" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "ไม่สามารถย้อนกลับได้" @@ -26522,6 +26604,8 @@ msgstr "สิ่งนี้จะลบข้อมูลของคุณอ msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "สิ่งนี้จะรีเซ็ตทัวร์นี้และแสดงให้ผู้ใช้ทุกคนเห็น คุณแน่ใจหรือไม่?" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -27590,15 +27674,15 @@ msgstr "ยกเลิกการกำหนดเงื่อนไข" msgid "Uncaught Exception" msgstr "ข้อยกเว้นที่ไม่ได้จับ" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "ไม่เปลี่ยนแปลง" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "เลิกทำ" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "เลิกทำการกระทำล่าสุด" @@ -27607,7 +27691,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "เลิกติดตาม" @@ -27645,7 +27729,7 @@ msgstr "ไม่ทราบ" msgid "Unknown Column: {0}" msgstr "คอลัมน์ที่ไม่ทราบ: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "วิธีการปัดเศษที่ไม่ทราบ: {}" @@ -27873,7 +27957,7 @@ msgstr "กำลังอัปเดตการตั้งค่าทั่ msgid "Updating naming series options" msgstr "กำลังอัปเดตตัวเลือกซีรีส์การตั้งชื่อ" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "กำลังอัปเดตฟิลด์ที่เกี่ยวข้อง..." @@ -28519,7 +28603,7 @@ msgstr "ความถูกต้อง" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "ค่า" @@ -28597,7 +28681,7 @@ msgstr "ค่ามากเกินไป" msgid "Value {0} missing for {1}" msgstr "ค่า {0} หายไปสำหรับ {1}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "ค่า {0} ต้องอยู่ในรูปแบบระยะเวลาที่ถูกต้อง: d h m s" @@ -28619,7 +28703,7 @@ msgstr "" msgid "Verification" msgstr "การตรวจสอบ" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "รหัสการตรวจสอบ" @@ -28677,7 +28761,7 @@ msgstr "ดู" msgid "View All" msgstr "ดูทั้งหมด" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "ดูเส้นทางการตรวจสอบ" @@ -29643,9 +29727,9 @@ msgstr "สีเหลือง" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29740,7 +29824,7 @@ msgstr "คุณไม่ได้รับอนุญาตให้นำอ msgid "You are not allowed to print this report" msgstr "คุณไม่ได้รับอนุญาตให้พิมพ์รายงานนี้" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "คุณไม่ได้รับอนุญาตให้ส่งอีเมลที่เกี่ยวข้องกับเอกสารนี้" @@ -29928,7 +30012,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "คุณสร้างเอกสารนี้ {0}" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "คุณไม่มีสิทธิ์อ่านหรือเลือกสำหรับ {}" @@ -29988,7 +30072,7 @@ msgstr "คุณถึงขีดจำกัดขนาดแถวในต msgid "You have not entered a value. The field will be set to empty." msgstr "คุณไม่ได้ป้อนค่า ฟิลด์จะถูกตั้งค่าเป็นว่างเปล่า" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "คุณต้องเปิดใช้งานการยืนยันตัวตนสองขั้นตอนจากการตั้งค่าระบบ" @@ -30097,7 +30181,7 @@ msgstr "คุณต้องมีสิทธิ์เขียนใน {0} { msgid "You need write permission on {0} {1} to rename" msgstr "คุณต้องมีสิทธิ์เขียนใน {0} {1} เพื่อเปลี่ยนชื่อ" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "คุณต้องมีสิทธิ์ {0} เพื่อดึงค่าจาก {1} {2}" @@ -30271,7 +30355,7 @@ msgstr "ไซต์ของคุณกำลังอยู่ในระห msgid "Your verification code is {0}" msgstr "รหัสยืนยันของคุณคือ {0}" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "ศูนย์" @@ -30314,7 +30398,7 @@ msgstr "หลังจากแทรก" msgid "amend" msgstr "แก้ไข" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "และ" @@ -30601,7 +30685,7 @@ msgstr "รายการ" msgid "logged in" msgstr "เข้าสู่ระบบแล้ว" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "ต้องเข้าสู่ระบบ" @@ -30939,7 +31023,7 @@ msgstr "ผ่านการนำเข้าข้อมูล" msgid "via Google Meet" msgstr "ผ่าน Google Meet" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "ผ่านการแจ้งเตือน" @@ -31148,7 +31232,7 @@ msgstr "{0} ยกเลิกการสมัครแล้ว" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0} ยกเลิกการสมัครแล้วสำหรับ {1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} และ {1}" @@ -31173,7 +31257,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "{0} แนบ {1}" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "{0} ต้องไม่เกิน {1}" @@ -31486,7 +31570,7 @@ msgstr "{0} นาทีที่ผ่านมา" msgid "{0} months ago" msgstr "{0} เดือนที่ผ่านมา" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0} ต้องอยู่หลังจาก {1}" @@ -31543,12 +31627,12 @@ msgstr "{0} ของ {1}" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} ของ {1} ({2} แถวที่มีลูก)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "เฉพาะ {0} เท่านั้น" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} หรือ {1}" @@ -31593,7 +31677,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "บทบาท {0} ไม่มีสิทธิ์ในประเภทเอกสารใด ๆ" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "" @@ -31872,11 +31956,11 @@ msgstr "{{{0}}} ไม่ใช่รูปแบบชื่อฟิลด์ msgid "{} Complete" msgstr "{} เสร็จสมบูรณ์" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "{} โค้ด Python ไม่ถูกต้องในบรรทัด {}" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "{} โค้ด Python อาจไม่ถูกต้อง
{}" diff --git a/frappe/locale/tr.po b/frappe/locale/tr.po index bb4da89bee..1a55586aa5 100644 --- a/frappe/locale/tr.po +++ b/frappe/locale/tr.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Turkish\n" "MIME-Version: 1.0\n" @@ -145,7 +145,7 @@ msgstr "1 Google Takvim Etkinliği senkronize edildi." msgid "1 Report" msgstr "1 Rapor" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "1 gün önce" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1 saat" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "1 Saat Önce" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "1 Dakika Önce" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "1 Ay Önce" @@ -186,37 +186,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "1 saniye önce" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "1 Hafta Önce" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "1 Yıl Önce" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "2 saat önce" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "2 ay önce" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "2 hafta önce" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "2 yıl önce" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "3 dakika önce" @@ -232,7 +232,7 @@ msgstr "4 Saat" msgid "5 Records" msgstr "5 Kayıt" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "5 Gün Önce" @@ -662,7 +662,7 @@ msgstr "

Yukarıdaki HTML ile etkileşim kurmak için `root_element` öğesini "some_class_element.textContent = \"Yeni içerik\";\n" "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "

{0} üzerindeki OTP sırrınız sıfırlandı. Bu sıfırlamayı siz yapmadıysanız ve talep etmediyseniz lütfen hemen Sistem Yöneticinizle iletişime geçin.

" @@ -1085,7 +1085,7 @@ msgstr "Aksiyon / Rota" msgid "Action Complete" msgstr "Eylem Tamamlandı" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "Eylem Başarısız" @@ -1222,7 +1222,7 @@ msgstr "Ekle / Güncelle" msgid "Add A New Rule" msgstr "Yeni Kural Ekle" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "Dosya Ekle" @@ -1327,7 +1327,7 @@ msgstr "Satır Ekle" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "İmza Ekle" @@ -1355,7 +1355,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "Etiket Ekle" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "Şablon Ekle" @@ -1762,6 +1762,7 @@ msgstr "Değer Hizala" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1776,7 +1777,9 @@ msgstr "Değer Hizala" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2379,7 +2382,7 @@ msgstr "Uygulama İsmi" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "Modül için uygulama bulunamadı: {0}" @@ -2541,7 +2544,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "Atamaları temizlemek istediğinizen emin misiniz?" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "Tüm satırları silmek istediğinizden emin misiniz?" @@ -2577,7 +2580,7 @@ msgstr "Değişiklikleri iptal etmek istediğinizden emin misiniz?" msgid "Are you sure you want to generate a new report?" msgstr "Yeni bir rapor oluşturmak istediğinizden emin misiniz?" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "{0} ile {1} öğesini birleştirmek istediğinizden emin misiniz?" @@ -2823,10 +2826,15 @@ msgstr "En az bir Üst Belge Türü alanı zorunludur" msgid "Attach" msgstr "Ekle" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "Yazdırma Dosyasını Ekle" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2909,6 +2917,11 @@ msgstr "Ek bağlantısı" msgid "Attachment Removed" msgstr "Ek Kaldırıldı" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -3086,7 +3099,7 @@ msgstr "Otomatik Tekrarlama Günü {0} {1} tekrarlanmıştır." msgid "Auto Repeat Document Creation Failed" msgstr "Otomatik Tekrar Belge Oluşturma Başarısız" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "Otomatik Tekrar Programı" @@ -3320,7 +3333,7 @@ msgstr "B9" msgid "BCC" msgstr "BCC" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "BCC" @@ -3338,7 +3351,7 @@ msgstr "Ana Ekrana Dön" msgid "Back to Home" msgstr "Ana Sayfaya Git" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "Girişe Geri Dön" @@ -3779,7 +3792,7 @@ msgstr "Toplu Silme" msgid "Bulk Edit" msgstr "Toplu Düzenleme" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "Toplu {0} Düzenleme" @@ -3902,7 +3915,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "Bilgi" @@ -4097,6 +4110,14 @@ msgstr "Tümünü İptal Et" msgid "Cancel All Documents" msgstr "Tüm Belgeleri İptal Et" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4134,11 +4155,11 @@ msgstr "Belgeler İptal Ediliyor" msgid "Cancelling {0}" msgstr "{0} İptal Ediliyor" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "Yetersiz izinler nedeniyle Rapor İndirilemiyor" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "Değerler Getirilemiyor" @@ -4241,7 +4262,7 @@ msgstr "{0} öğesinin alt elemanları olduğu için silme işlemi yapıl msgid "Cannot edit Standard Dashboards" msgstr "Standart Panolar düzenlenemez" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "Standart Bildirim düzenlenemiyor. Düzenlemek için lütfen bunu devre dışı bırakın ve çoğaltın" @@ -4266,7 +4287,7 @@ msgstr "Standart grafikler için filtreleri düzenleyemezsiniz." msgid "Cannot edit filters for standard number cards" msgstr "Standart Veri Kartları için filtreler düzenlenemez" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "Standart alanlar düzenlenemez" @@ -4286,7 +4307,7 @@ msgstr "Bir Klasörün dosya içerikleri alınamıyor" msgid "Cannot have multiple printers mapped to a single print format." msgstr "Tek bir yazdırma biçimine birden fazla yazıcı ile eşleşme yapılamaz." -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4314,7 +4335,7 @@ msgstr "ID Alanı Kaldırılamaz" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "'Yalnızca Oluşturucu' izni ayarlanmışsa 'Rapor' izni ayarlanamaz" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "Belge Türü {1} üzerinde {0} olayı için Bildirim ayarlanamıyor" @@ -4659,11 +4680,11 @@ msgstr "Şehir" msgid "Clear" msgstr "Açık" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "Temizle ve Şablon Ekle" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "Temizle ve Şablon Ekle" @@ -4697,7 +4718,7 @@ msgstr "Gün Sayısı" msgid "Clear User Permissions" msgstr "Kullanıcı İzinlerini Temizle" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "E-posta mesajını temizleyin ve şablonu ekleyin" @@ -4750,7 +4771,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "Düzenlemek için tabloya tıklayın" @@ -4761,7 +4782,7 @@ msgstr "Dinamik Filtreleri Ayarlamak için Tıklayın" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "Filtreleri Ayarlamak İçin Tıklayın" @@ -4938,7 +4959,7 @@ msgstr "" msgid "Collapse" msgstr "Daralt" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "Daralt" @@ -5062,7 +5083,7 @@ msgstr "Sütun Genişliği" msgid "Column width cannot be zero." msgstr "Sütun genişliği sıfır olamaz." -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "{0} sütunu" @@ -5305,7 +5326,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "Koşul" @@ -5644,7 +5665,7 @@ msgstr "Gömülü Kodu Kopyala" msgid "Copy error to clipboard" msgstr "Hatayı Kopyala" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "Panoya Kopyala" @@ -6255,13 +6276,13 @@ msgstr "Özelleştirme İptal Edildi" msgid "Customizations Reset" msgstr "Özelleştirmeler Sıfırlandı" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "{0} için özelleştirmeler şuraya aktarıldı:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "Özelleştir" @@ -6914,7 +6935,7 @@ msgstr "Gecikti" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7267,7 +7288,7 @@ msgstr "Masaüstü Simgesi zaten mevcut" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "Ayrıntılar" @@ -7423,7 +7444,7 @@ msgstr "Devre dışı" msgid "Disabled Auto Reply" msgstr "Otomatik Yanıt Devre Dışı" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7512,7 +7533,7 @@ msgstr "Yeni Kullanıcı Oluşturmayın" msgid "Do not create new user if user with email does not exist in the system" msgstr "E-postası olan kullanıcı sistemde mevcut değilse yeni kullanıcı oluşturmayın" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "Şablonda önceden ayarlanmış başlıkları düzenlemeyin" @@ -7674,7 +7695,7 @@ msgstr "DocType uygulamadaki bir Tablo veya Formdur." msgid "DocType must be Submittable for the selected Doc Event" msgstr "DocType, seçilen Doc Event için Gönderilebilir olmalıdır" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "DocType bir dize olmalıdır" @@ -7695,11 +7716,11 @@ msgstr "Bu İş Akışının geçerli olduğu DocType." msgid "DocType required" msgstr "DocType gerekli" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "DocType {0} mevcut değil." -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "DocType {} bulunamadı" @@ -7810,7 +7831,7 @@ msgstr "" msgid "Document Name" msgstr "Belge adı" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "Belge Adı bir dize olmalıdır" @@ -7986,7 +8007,7 @@ msgid "Document Types and Permissions" msgstr "Belge Türleri ve İzinler" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "Belge Kilidi Açıldı" @@ -8014,11 +8035,11 @@ msgstr "Belge yalnızca role sahip kullanıcılar tarafından düzenlenebilir" msgid "Document not Relinked" msgstr "Belge Yeniden Bağlantılandırılmadı" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "Belgenin adı {0} değeri {1} olarak değiştirildi" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "Belgenin adı {0} değerinden {1} değerine değiştirilmek üzere sıraya alındı." @@ -8034,7 +8055,7 @@ msgstr "Belge {0} Zaten Geri Yüklendi" msgid "Document {0} has been set to state {1} by {2}" msgstr "Belge {0} , {2} tarafından {1} durumuna ayarlandı" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "Belge {0} {1} mevcut değil" @@ -8261,7 +8282,7 @@ msgid "Due Date Based On" msgstr "Vade Tarihine göre" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "Kopyala" @@ -8376,7 +8397,7 @@ msgstr "ESC" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8425,7 +8446,7 @@ msgstr "Özel Bloğu Düzenle" msgid "Edit Custom HTML" msgstr "HTML Kodunu Düzenle" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "DocType Düzenle" @@ -8610,7 +8631,7 @@ msgstr "Element Seçici" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8669,7 +8690,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "E-posta Address" @@ -8819,7 +8840,7 @@ msgstr "E-posta Senkronizasyon Seçeneği" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "E-Posta Şablonu" @@ -8851,7 +8872,7 @@ msgstr "E-posta çöp kutusuna taşındı" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "Gönderilmez Email {0} (devre dışı / üyelikten)" @@ -9048,7 +9069,7 @@ msgstr "Sayfa Görüntülemelerini İzlemeyi Etkinleştir" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "2 Adımlı Doğrulamayı Aç" @@ -9221,7 +9242,7 @@ msgstr "Google Ayarları'na İstemci Kimliği ve İstemci Gizli Anahtarını gir msgid "Enter Code displayed in OTP App." msgstr "OTP Uygulamasında görüntülenen Kodu girin." -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "E-Posta alıcılarını girin" @@ -9359,9 +9380,9 @@ msgstr "İstemci Komut Dosyasında Hata." msgid "Error in Header/Footer Script" msgstr "Üstbilgi/Altbilgi Kodunda Hata" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "Hata Bildirimi" @@ -9381,7 +9402,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "E-posta hesabına bağlanırken hata oluştu {0}" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "{0} Bildirim değerlendirilirken hata oluştu. Lütfen şablonunuzu düzeltin." @@ -9563,7 +9584,7 @@ msgstr "Mevcut Rol" msgid "Expand" msgstr "Genişlet" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "Genişlet" @@ -9660,7 +9681,7 @@ msgstr "Özelleştirmeleri Dışarı Aktar" msgid "Export Data" msgstr "Dışarı Aktar" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "Hatalı Satırları Dışa Aktar" @@ -9670,7 +9691,7 @@ msgstr "Hatalı Satırları Dışa Aktar" msgid "Export From" msgstr "Dışa Aktar" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "İçeri ve Dışarı Aktarma Günlüğü" @@ -9846,7 +9867,7 @@ msgstr "{0} belge silinemedi: {1}" msgid "Failed to enable scheduler: {0}" msgstr "Zamanlayıcı etkinleştirilemedi: {0}" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "Koşullar değerlendirilemedi: {}" @@ -9883,11 +9904,11 @@ msgstr "Sanal belge türü {} içe aktarılamadı, denetleyici dosyası mevcut m msgid "Failed to optimize image: {0}" msgstr "Görüntü optimize edilemedi: {0}" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "Mesaj oluşturulamadı: {}" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "Konu işlenemedi: {}" @@ -9917,7 +9938,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "Başarısız Zamanlanmış İşler (Son 7 Gün)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "Başarısız" @@ -9977,6 +9998,10 @@ msgstr "Boşsa Kaydederken Getir" msgid "Fetching default Global Search documents." msgstr "Varsayılan Global Arama belgeleri getiriliyor." +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -10081,7 +10106,7 @@ msgstr "" msgid "Field {0} not found." msgstr "{0} alanı bulunamadı." -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "{1} belgesindeki {0} alanı ne bir Cep telefonu numarası alanı ne de bir Müşteri veya Kullanıcı bağlantısıdır" @@ -10314,7 +10339,7 @@ msgstr "Dosyalar" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "Filtre" @@ -10574,7 +10599,7 @@ msgid "Folio" msgstr "Folio" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "Takip Et" @@ -10582,7 +10607,7 @@ msgstr "Takip Et" msgid "Followed by" msgstr "Takip Eden" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "Aşağıdaki Rapor Filtrelerindeki değerler eksik:" @@ -11047,11 +11072,16 @@ msgstr "Cuma" msgid "From" msgstr "itibaren" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "Gönderen" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -11067,6 +11097,11 @@ msgstr "Başlangıç Tarihi Alanı" msgid "From Document Type" msgstr "Belge Türü" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11228,7 +11263,7 @@ msgstr "Konum" msgid "Geolocation Settings" msgstr "Coğrafi Konum Ayarları" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "Bugünün Bildirimlerini Getir" @@ -11320,7 +11355,7 @@ msgstr "Genel Kısayollar" msgid "Global Unsubscribe" msgstr "Genel E-posta Aboneliğini İptal Et" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "Git" @@ -11368,7 +11403,7 @@ msgstr "Formu doldurduktan sonra bu URL'ye gidin" msgid "Go to {0}" msgstr "{0} Sayfasına Git" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -12065,7 +12100,7 @@ msgstr "Hafta Sonlarını Gizle" msgid "Hide descendant records of For Value." msgstr "Değeri için alt kayıtlarını gizle." -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "Detayları gizle" @@ -12748,11 +12783,11 @@ msgstr "İçe aktarma şablonu .csv, .xlsx veya .xls türünde olmalıdır" msgid "Import template should contain a Header and atleast one row." msgstr "İçe aktarma şablonu bir Başlık ve en az bir satır içermelidir." -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "İçe aktarma zaman aşımına uğradı, lütfen tekrar deneyin." -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "{0} türünün içe aktarılmasına izin verilmiyor." @@ -13255,7 +13290,7 @@ msgstr "Geçersiz" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "Geçersiz \"depends_on\" ifadesi" @@ -13349,6 +13384,8 @@ msgstr "Geçersiz Posta Sunucusu. Lütfen düzeltin ve tekrar deneyin." msgid "Invalid Naming Series: {}" msgstr "Geçersiz Adlandırma Serisi: {}" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13363,7 +13400,7 @@ msgstr "Geçersiz Seçenek" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "Geçersiz Giden Posta Sunucusu veya Bağlantı Noktası: {0}" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "Geçersiz Çıktı Formatı" @@ -13485,7 +13522,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "Geçersiz alan adı {0}" @@ -14020,6 +14057,7 @@ msgstr "İş Adı" msgid "Job Status" msgstr "İş Durumu" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "İş Başarıyla Durduruldu" @@ -14028,16 +14066,22 @@ msgstr "İş Başarıyla Durduruldu" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "İş çalışmıyor." +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "{0} ile görüntülü konferansa katılın" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "Alana Git" @@ -15089,7 +15133,7 @@ msgstr "Yükleniyor" msgid "Loading Filters..." msgstr "Filtreler Yükleniyor..." -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "İçe aktarma dosyası yükleniyor..." @@ -15224,7 +15268,7 @@ msgstr "{} adresinden Giriş Doğrulama Kodu" msgid "Login and view in Browser" msgstr "Tarayıcıda oturum açın ve görüntüleyin" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "Web formu liste görünümünü görmek için giriş yapılması gerekir. Liste ayarlarını görmek için {0} ayarını etkinleştirin" @@ -15261,7 +15305,7 @@ msgstr "{0} adresine giriş yapın" msgid "Login token required" msgstr "Oturum açma tokenı gerekli" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "E-posta ile Giriş" @@ -15731,7 +15775,7 @@ msgstr "Orta" msgid "Meeting" msgstr "Toplantı" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "Koşulları karşılıyor mu?" @@ -15767,7 +15811,7 @@ msgstr "Alıntılar" msgid "Menu" msgstr "Menü" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "Varolan ile Birleştir" @@ -15792,16 +15836,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15838,7 +15882,7 @@ msgstr "Mesaj Gönderildi" msgid "Message Type" msgstr "Mesaj Türü" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "Mesaj kopyalandı" @@ -15846,7 +15890,7 @@ msgstr "Mesaj kopyalandı" msgid "Message from server: {0}" msgstr "Sunucudan mesaj: {0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "Mesaj ayarlanmamış" @@ -16032,7 +16076,7 @@ msgstr "Eksik Veri" msgid "Missing Fields" msgstr "Eksik Alanlar" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "Eksik Filtreler Gerekli" @@ -16167,7 +16211,7 @@ msgstr "Modül Profili" msgid "Module Profile Name" msgstr "Modül Profil Adı" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "Modül tanıtım ilerlemesini sıfırla" @@ -16175,7 +16219,7 @@ msgstr "Modül tanıtım ilerlemesini sıfırla" msgid "Module to Export" msgstr "Dışa Aktarılacak Modül" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "Modül {} bulunamadı" @@ -16691,7 +16735,7 @@ msgstr "Web Sitesi İletişim Sayfasından Yeni Mesaj" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "Yeni İsim" @@ -16793,10 +16837,10 @@ msgid "New value to be set" msgstr "Ayarlanacak yeni değer" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16881,6 +16925,10 @@ msgstr "Sonraki Eylem E-posta Şablonu" msgid "Next Actions HTML" msgstr "Sonraki Eylemler HTML" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "Sonraki Belge" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16948,8 +16996,8 @@ msgstr "Sonraki Tıklamada" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16985,7 +17033,7 @@ msgid "No Copy" msgstr "Kopyalanamaz" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17125,7 +17173,7 @@ msgstr "Yaklaşan Etkinlik Yok" msgid "No address added yet." msgstr "Henüz adres eklenmemiş." -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "Bugün için herhangi bir bildirim yok" @@ -17165,6 +17213,10 @@ msgstr "Henüz kişi eklenmedi." msgid "No contacts linked to document" msgstr "Belgeye bağlı kişi yok" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "Verilecek veri yok" @@ -17185,7 +17237,7 @@ msgstr "Kullanıcıyla ilişkilendirilmiş bir e-posta hesabı bulunmamaktadır. msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "Başarısız kayıt yok" @@ -17248,7 +17300,7 @@ msgstr "Satır Sayısı (Maksimum 500)" msgid "No of Sent SMS" msgstr "Gönderilen SMS sayısı" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "{0} İçin Yetki Yok" @@ -17285,7 +17337,7 @@ msgstr "Hiçbir kayıt dışa aktarılmayacak" msgid "No rows" msgstr "Sıra yok" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "Konu yok" @@ -17426,8 +17478,8 @@ msgstr "{0} için Okuma izni yok" msgid "Not Published" msgstr "Yayınlanmadı" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17480,7 +17532,7 @@ msgstr "Aktif değil" msgid "Not allowed for {0}: {1}" msgstr "{0} için izin verilmiyor: {1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "{0} belgesinin eklenmesine izin verilmiyor, lütfen Yazdırma Ayarları'nda {0} için Yazdırmaya İzin Ver ayarını etkinleştirin" @@ -17512,7 +17564,7 @@ msgstr "Geliştirici modunda değil" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "Geliştirici Modunda değil! site_config.json dosyasına ayarlayın veya 'Özel' DocType yapın." -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17635,15 +17687,15 @@ msgstr "Bildirim İçin Abone Olunan Belge" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "Bildirim: {0} isimli Müşterinin belirlenmiş bir cep telefonu numarası yok" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "Bildirim: {0} belgesinin {1} sayı kümesi yok (alan: {2})" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "Bildirim: {0} kullanıcısının ayarlanmış bir Cep telefonu numarası yok" @@ -17757,7 +17809,7 @@ msgstr "Sorgu Sayısı" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "Yedekleme sayısı sıfırdan büyük olmalıdır." @@ -17866,14 +17918,30 @@ msgstr "Uygulama" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17989,7 +18057,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -18049,7 +18117,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "Bir istekte yalnızca 200 girişe izin verilir" @@ -18087,7 +18155,7 @@ msgstr "Yalnızca Son X Saat İçinde Güncellenen Kayıtları Gönder" msgid "Only Workspace Manager can edit public workspaces" msgstr "Yalnızca Çalışma Alanı Yöneticisi genel çalışma alanlarını düzenleyebilir." -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "Özelleştirmelerin yalnızca geliştirici modunda dışa aktarılmasına izin verilir" @@ -18267,7 +18335,7 @@ msgstr "Açıldı" msgid "Operation" msgstr "Operasyon" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18769,7 +18837,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18941,6 +19009,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19265,7 +19337,7 @@ msgstr "Lütfen Tabloyu Ayarlayın" msgid "Please Update SMS Settings" msgstr "Lütfen SMS Ayarlarını Güncelleyin" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "Lütfen e-postanıza bir konu ekleyin" @@ -19317,7 +19389,7 @@ msgstr "Nasıl devam edeceğinize ilişkin talimatlar için lütfen kayıtlı e- msgid "Please click Edit on the Workspace for best results" msgstr "En iyi sonuçlar için lütfen Çalışma Alanında Düzenle ile özelleştirin" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "Lütfen 'Hatalı Satırları Dışa Aktar' seçeneğine tıklayın, hataları düzeltin ve tekrar içe aktarın." @@ -19357,7 +19429,7 @@ msgstr "Lütfen şablon başlıklarını değiştirmeyin." msgid "Please duplicate this to make changes" msgstr "Lütfen değişiklik yapmak için bunu çoğaltın" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "Kullanıcı adı/şifre tabanlı girişi devre dışı bırakmadan önce lütfen en az bir Sosyal Giriş Anahtarını veya LDAP'yi veya E-posta Bağlantısıyla Giriş Yapın'ı etkinleştirin." @@ -19473,6 +19545,10 @@ msgstr "Lütfen atamadan önce belgeyi kaydedin" msgid "Please save the document before removing assignment" msgstr "Lütfen atamayı kaldırmadan önce belgeyi kaydedin" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "Lütfen önce raporu kaydedin." @@ -19489,7 +19565,7 @@ msgstr "Lütfen önce DocType'ı seçin" msgid "Please select Entity Type first" msgstr "Lütfen önce Varlık Türünü seçin" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "Lütfen Minimum Şifre Puanını seçin" @@ -19555,7 +19631,7 @@ msgstr "Lütfen Yazıcı Ayarları'nda bu yazdırma biçimi için bir yazıcı e msgid "Please set filters" msgstr "Lütfen filtreleri ayarlayın" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "Lütfen Rapor Filtresi tablosunda filtre değerini ayarlayın." @@ -19571,11 +19647,11 @@ msgstr "Lütfen öncelikle bu Gösterge Tablosundaki aşağıdaki belgeleri stan msgid "Please set the series to be used." msgstr "Lütfen kullanılacak seriyi ayarlayın." -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "Lütfen önce bir mesaj ayarlayın" @@ -19595,23 +19671,27 @@ msgstr "Lütfen belirtiniz" msgid "Please specify a valid parent DocType for {0}" msgstr "Lütfen {0} için geçerli bir üst DocType belirtin" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "Lütfen hangi tarih alanının işaretlenmesi gerektiğini belirtin" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "Lütfen hangi değer alanının kontrol edilmesi gerektiğini belirtin" @@ -19798,7 +19878,7 @@ msgstr "Hazırlanan rapor işleme başarısız oldu" msgid "Preparing Report" msgstr "Rapor Hazırlama" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "Şablonu e-posta mesajının önüne ekleyin" @@ -19819,7 +19899,7 @@ msgstr "Kaydetmek için Enter tuşuna basın." #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19873,6 +19953,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "Önceki" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "Önceki Belge" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "Önceki Gönderim" @@ -19922,8 +20006,8 @@ msgstr "{0} belge türünün birincil anahtarı mevcut değerler olduğundan de #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -20036,7 +20120,7 @@ msgstr "Yazdırmayı Gizle" msgid "Print Hide If No Value" msgstr "Değer Yoksa Yazdırmayı Gizle" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "Yazdırma Dili" @@ -20051,10 +20135,8 @@ msgid "Print Server" msgstr "Yazdırma Sunucusu" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20676,7 +20758,7 @@ msgstr "Cvp:" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "Ynt: {0}" @@ -20687,7 +20769,7 @@ msgstr "Ynt: {0}" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20926,12 +21008,12 @@ msgstr "Yönlendirmeler" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "İleri Al" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "Son işlemi geri al" @@ -21244,7 +21326,7 @@ msgstr "Yeniden Bağlandı" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "Yeniden Yükle" @@ -21275,7 +21357,7 @@ msgstr "Son Seçilen Değeri Hatırla" msgid "Remind At" msgstr "Hatırlatma Zamanı" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "Hatırlatıcı" @@ -21355,9 +21437,9 @@ msgid "Removed" msgstr "Kaldırıldı" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21385,7 +21467,7 @@ msgstr "" msgid "Reopen" msgstr "Yeniden aç" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "Tekrar" @@ -21635,7 +21717,7 @@ msgstr "Rapor başlatıldı, durumu görüntülemek için tıklayın" msgid "Report limit reached" msgstr "Rapor sınırına ulaşıldı" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "Rapor zaman aşımına uğradı." @@ -21829,7 +21911,7 @@ msgstr "Yerleşimi Sıfırla" msgid "Reset OTP Secret" msgstr "Tek Kullanımlık Şifreyi Sıfırla" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21985,7 +22067,7 @@ msgid "Resume Sending" msgstr "Göndermeye Devam Et" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22307,7 +22389,7 @@ msgstr "Satır İndeksleri" msgid "Row Name" msgstr "Satır Adı" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "Satır Numarası" @@ -22315,7 +22397,7 @@ msgstr "Satır Numarası" msgid "Row Values Changed" msgstr "Satır Değerleri Değişti" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "Satır {0}" @@ -22540,7 +22622,7 @@ msgid "Saturday" msgstr "Cumartesi" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22596,13 +22678,13 @@ msgstr "Belgeyi kaydet." #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "Kaydedildi" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "Kayıtlı Filitreler" @@ -22644,7 +22726,7 @@ msgstr "QR Kodunu tarayın ve çıkan kodu girin." msgid "Schedule" msgstr "Planla" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "Planlanmış Gönderim" @@ -22708,7 +22790,7 @@ msgstr "Zamanlayıcı" msgid "Scheduler Event" msgstr "Zamanlayıcı Etkinliği" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "Zamanlayıcı Etkin Değil" @@ -22721,7 +22803,7 @@ msgstr "Zamanlayıcı Durumu" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "Bakım modu aktifken zamanlayıcı yeniden etkinleştirilemez." -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "Zamanlayıcı etkin değil. Veri alınamıyor." @@ -23022,8 +23104,8 @@ msgstr "Seçim" msgid "Select All" msgstr "Tümünü Seç" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -23089,7 +23171,7 @@ msgstr "Erişimi sınırlamak için hangi Kullanıcı İzinlerinin kullanılaca #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "Alan Seçin" @@ -23163,7 +23245,7 @@ msgid "Select Page" msgstr "Sayfa Seç" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "Baskı Formatını Seçin" @@ -23377,7 +23459,7 @@ msgstr "Şimdi Gönder" msgid "Send Print as PDF" msgstr "Yazıcıya PDF Olarak Gönder" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "Okundu Bilgisi Gönder" @@ -23436,11 +23518,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "Sorularınızı bu e-posta adresine gönderin" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "Giriş bağlantısını gönder" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "Bir Kopyasını Bana Gönder" @@ -23664,7 +23746,7 @@ msgstr "Oturum Sonlandırıldı" msgid "Session Expiry (idle timeout)" msgstr "Oturum Sonlanma Süresi" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "Oturum Süresi {0} formatında olmalıdır" @@ -23709,7 +23791,7 @@ msgstr "Dinamik Filtreleri Ayarla" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "Filtreleri Ayarlayın" @@ -24105,7 +24187,7 @@ msgstr "Hatayı Göster" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -24157,7 +24239,7 @@ msgstr "Dil Seçiciyi Göster" msgid "Show Line Breaks after Sections" msgstr "Bölümlerden Sonra Satır Sonlarını Göster" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "Bağlantıları Göster" @@ -24232,7 +24314,7 @@ msgstr "Kenar Çubuğunu Göster" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "Etiketleri Göster" @@ -24258,7 +24340,7 @@ msgstr "Toplamı Göster" msgid "Show Tour" msgstr "Turu Göster" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "Geri İzlemeyi Göster" @@ -24338,8 +24420,8 @@ msgstr "Belge bağlantısını göster" msgid "Show list" msgstr "Listeyi Göster" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "Ayrıntıları göster" @@ -24527,7 +24609,7 @@ msgstr "Başlıksız Sütun Atlanıyor" msgid "Skipping column {0}" msgstr "Sütun atlanıyor {0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "{1} dosyasından {0} doctype için fikstür senkronizasyonu atlanıyor" @@ -24923,7 +25005,7 @@ msgstr "Başlangıç Tarihi" msgid "Start Date Field" msgstr "Başlangıç Tarihi Alanı" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "İçe Aktarmayı Başlat" @@ -25057,7 +25139,7 @@ msgstr "Zaman Aralığı" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25224,9 +25306,9 @@ msgstr "Alt Alan Adı" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "Konu" @@ -25370,12 +25452,12 @@ msgstr "Alt Başlık" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25435,11 +25517,11 @@ msgstr "" msgid "Successfully Updated" msgstr " Başarıyla Güncellendi" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "{0} Başarıyla içe aktarıldı" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "{1} kayıttan {0} tanesi başarıyla içe aktarıldı." @@ -25455,11 +25537,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "Çeviriler başarıyla güncellendi" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "{0} Başarıyla Güncellendi" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "{1} kayıttan {0} tanesi başarıyla güncellendi." @@ -25594,7 +25676,7 @@ msgstr "Senkronize Ediliyor" msgid "Syncing {0} of {1}" msgstr "Senkronize Ediliyor {0}/{1}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "Sözdizimi Hatası" @@ -25905,7 +25987,7 @@ msgstr "Tablo Çoklu Seçim" msgid "Table Trimmed" msgstr "Tablo Temizlendi" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "Tablo güncellendi" @@ -26122,7 +26204,7 @@ msgstr "Teşekkürler" msgid "The Auto Repeat for this document has been disabled." msgstr "Bu belge için Otomatik Tekrarlama devre dışı bırakıldı." -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "CSV formatı büyük/küçük harfe duyarlıdır" @@ -26135,7 +26217,7 @@ msgstr "Google Cloud Konsolundan
altında elde edilen İstemci Kimliği" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "Koşul '{0}' geçersiz" @@ -26386,7 +26468,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "Aynı filtrelere sahip {0} zaten kuyrukta mevcut:" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26438,7 +26520,7 @@ msgstr "Hatalar oluştu" msgid "There were errors while creating the document. Please try again." msgstr "Belge oluşturulurken hatalar oluştu. Lütfen tekrar deneyin." -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "E-posta gönderirken hatalar vardı. Lütfen tekrar deneyin." @@ -26515,7 +26597,7 @@ msgstr "Bu eylem geri döndürülemez. Devam etmek istiyor musunuz?" msgid "This action is only allowed for {}" msgstr "Bu eylem yalnızca {} için izin verilir" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "Bu işlem geri alınamaz" @@ -26744,6 +26826,8 @@ msgstr "Bu işlem verilerinizi kalıcı olarak silecektir." msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "Bu işi hemen sonlandırmak tehlikeli olabilir, emin misiniz?" @@ -27821,15 +27905,15 @@ msgstr "Koşulu Kaldır" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "Değişmedi" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "Geri Al" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "Son işlemi geri al" @@ -27838,7 +27922,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "Takibi Bırak" @@ -27876,7 +27960,7 @@ msgstr "Bilinmiyor" msgid "Unknown Column: {0}" msgstr "Bilinmeyen Sütun: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "Bilinmeyen Yuvarlama Yöntemi: {}" @@ -28104,7 +28188,7 @@ msgstr "Genel ayarlar güncelleniyor" msgid "Updating naming series options" msgstr "Adlandırma serisi seçenekleri güncelleniyor" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "İlgili Alanlar Güncelleniyor..." @@ -28750,7 +28834,7 @@ msgstr "Geçerlilik" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "Değer" @@ -28828,7 +28912,7 @@ msgstr "Değer çok büyük" msgid "Value {0} missing for {1}" msgstr "{1} için {0} değeri eksik" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "Değer {0} geçerli süre biçiminde olmalıdır: d h m s" @@ -28850,7 +28934,7 @@ msgstr "Verdana" msgid "Verification" msgstr "Doğrulama" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "Doğrulama Kodu" @@ -28908,7 +28992,7 @@ msgstr "Göster" msgid "View All" msgstr "Tümünü Göster" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "Denetim İzini Görüntüle" @@ -29874,9 +29958,9 @@ msgstr "Sarı" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29971,7 +30055,7 @@ msgstr "{} doctype'ı dışa aktarmanıza izin verilmiyor" msgid "You are not allowed to print this report" msgstr "Bu raporu yazdırmanıza izin verilmiyor" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "Bu belge ile ilişkili e-posta göndermenize izin verilmiyor" @@ -30159,7 +30243,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "{} için Okuma veya Seçme İzniniz yok" @@ -30219,7 +30303,7 @@ msgstr "Veritabanı tablosunda satır boyutu sınırına ulaştınız: {0}" msgid "You have not entered a value. The field will be set to empty." msgstr "Herhang bir değer girilmedi. Alan boş olarak ayarlanacak." -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "Sistem Ayarlarından İki Faktörlü Kimlik Doğrulamayı etkinleştirmeniz gerekiyor." @@ -30328,7 +30412,7 @@ msgstr "Birleştirmek için {0} {1} üzerinde yazma iznine ihtiyacınız var" msgid "You need write permission on {0} {1} to rename" msgstr "Yeniden adlandırmak için {0} {1} üzerinde yazma iznine ihtiyacınız var" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "{1} {2} adresinden değer almak için {0} iznine ihtiyacınız var" @@ -30502,7 +30586,7 @@ msgstr "Siteniz bakımda veya güncelleniyor." msgid "Your verification code is {0}" msgstr "Doğrulama kodunuz {0}" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "Sıfır" @@ -30545,7 +30629,7 @@ msgstr "" msgid "amend" msgstr "değiştir" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "ve" @@ -30832,7 +30916,7 @@ msgstr "liste" msgid "logged in" msgstr "giriş yaptı" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -31170,7 +31254,7 @@ msgstr "Veri İçe Aktarma ile" msgid "via Google Meet" msgstr "Google Meet ile" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "Bildirim aracılığıyla" @@ -31379,7 +31463,7 @@ msgstr "{0} zaten aboneliği iptal etti" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0}, zaten {1} {2} için abonelikten çıkmış." -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0} ve {1}" @@ -31404,7 +31488,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "{0} {1} dosyasını ekledi." -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "{0} {1} değerinden fazla olamaz" @@ -31717,7 +31801,7 @@ msgstr "{0} dakika önce" msgid "{0} months ago" msgstr "{0} ay önce" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31774,12 +31858,12 @@ msgstr "{0}/{1} Kayıt Listeleniyor" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "Sadece {0}." -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0} veya {1}" @@ -31824,7 +31908,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "{0} rolünün herhangi bir DocType üzerinde izni yok." -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "{0} satır #{1}:" @@ -32103,11 +32187,11 @@ msgstr "" msgid "{} Complete" msgstr "{} Tamamlandı" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "{} Muhtemelen geçersiz python kodu.
{}" diff --git a/frappe/locale/vi.po b/frappe/locale/vi.po index ea1fd6bc95..8065babc9a 100644 --- a/frappe/locale/vi.po +++ b/frappe/locale/vi.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Vietnamese\n" "MIME-Version: 1.0\n" @@ -144,7 +144,7 @@ msgstr "" msgid "1 Report" msgstr "" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "" @@ -153,17 +153,17 @@ msgid "1 hour" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "" @@ -185,37 +185,37 @@ msgctxt "User added row to child table" msgid "1 row to {0}" msgstr "" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "" @@ -231,7 +231,7 @@ msgstr "" msgid "5 Records" msgstr "" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "" @@ -502,7 +502,7 @@ msgid "

To interact with above HTML you will have to use `root_element` as a p "" msgstr "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "" @@ -902,7 +902,7 @@ msgstr "" msgid "Action Complete" msgstr "" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "" @@ -1039,7 +1039,7 @@ msgstr "" msgid "Add A New Rule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "" @@ -1144,7 +1144,7 @@ msgstr "" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "" @@ -1172,7 +1172,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "" @@ -1579,6 +1579,7 @@ msgstr "" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1593,7 +1594,9 @@ msgstr "" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -2195,7 +2198,7 @@ msgstr "" msgid "App Name (Client Name)" msgstr "" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "" @@ -2357,7 +2360,7 @@ msgstr "" msgid "Are you sure you want to clear the assignments?" msgstr "" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "" @@ -2393,7 +2396,7 @@ msgstr "" msgid "Are you sure you want to generate a new report?" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "" @@ -2639,10 +2642,15 @@ msgstr "" msgid "Attach" msgstr "" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2725,6 +2733,11 @@ msgstr "" msgid "Attachment Removed" msgstr "" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2902,7 +2915,7 @@ msgstr "" msgid "Auto Repeat Document Creation Failed" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "" @@ -3136,7 +3149,7 @@ msgstr "" msgid "BCC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "" @@ -3154,7 +3167,7 @@ msgstr "" msgid "Back to Home" msgstr "" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "" @@ -3594,7 +3607,7 @@ msgstr "" msgid "Bulk Edit" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "" @@ -3717,7 +3730,7 @@ msgstr "" msgid "CC" msgstr "" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "" @@ -3912,6 +3925,14 @@ msgstr "" msgid "Cancel All Documents" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -3949,11 +3970,11 @@ msgstr "" msgid "Cancelling {0}" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "" @@ -4056,7 +4077,7 @@ msgstr "" msgid "Cannot edit Standard Dashboards" msgstr "" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "" @@ -4081,7 +4102,7 @@ msgstr "" msgid "Cannot edit filters for standard number cards" msgstr "" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "" @@ -4101,7 +4122,7 @@ msgstr "" msgid "Cannot have multiple printers mapped to a single print format." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "" @@ -4129,7 +4150,7 @@ msgstr "" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "" @@ -4474,11 +4495,11 @@ msgstr "" msgid "Clear" msgstr "" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "" @@ -4512,7 +4533,7 @@ msgstr "" msgid "Clear User Permissions" msgstr "" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "" @@ -4565,7 +4586,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "" @@ -4576,7 +4597,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "" @@ -4753,7 +4774,7 @@ msgstr "" msgid "Collapse" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "" @@ -4877,7 +4898,7 @@ msgstr "" msgid "Column width cannot be zero." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "" @@ -5120,7 +5141,7 @@ msgstr "" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "" @@ -5457,7 +5478,7 @@ msgstr "" msgid "Copy error to clipboard" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "" @@ -6068,13 +6089,13 @@ msgstr "" msgid "Customizations Reset" msgstr "" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "" @@ -6727,7 +6748,7 @@ msgstr "" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -7080,7 +7101,7 @@ msgstr "" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "" @@ -7236,7 +7257,7 @@ msgstr "" msgid "Disabled Auto Reply" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7325,7 +7346,7 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "" @@ -7487,7 +7508,7 @@ msgstr "" msgid "DocType must be Submittable for the selected Doc Event" msgstr "" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "" @@ -7508,11 +7529,11 @@ msgstr "" msgid "DocType required" msgstr "" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "" @@ -7623,7 +7644,7 @@ msgstr "" msgid "Document Name" msgstr "" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "" @@ -7799,7 +7820,7 @@ msgid "Document Types and Permissions" msgstr "" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "" @@ -7827,11 +7848,11 @@ msgstr "" msgid "Document not Relinked" msgstr "" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "" @@ -7847,7 +7868,7 @@ msgstr "" msgid "Document {0} has been set to state {1} by {2}" msgstr "" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "" @@ -8074,7 +8095,7 @@ msgid "Due Date Based On" msgstr "" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "" @@ -8189,7 +8210,7 @@ msgstr "" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8238,7 +8259,7 @@ msgstr "" msgid "Edit Custom HTML" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "" @@ -8423,7 +8444,7 @@ msgstr "" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8482,7 +8503,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "" @@ -8632,7 +8653,7 @@ msgstr "" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "" @@ -8664,7 +8685,7 @@ msgstr "" msgid "Email is mandatory to create User Email" msgstr "" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "" @@ -8861,7 +8882,7 @@ msgstr "" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "" @@ -9034,7 +9055,7 @@ msgstr "" msgid "Enter Code displayed in OTP App." msgstr "" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "" @@ -9172,9 +9193,9 @@ msgstr "" msgid "Error in Header/Footer Script" msgstr "" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "" @@ -9194,7 +9215,7 @@ msgstr "" msgid "Error while connecting to email account {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "" @@ -9376,7 +9397,7 @@ msgstr "" msgid "Expand" msgstr "" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "" @@ -9473,7 +9494,7 @@ msgstr "" msgid "Export Data" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "" @@ -9483,7 +9504,7 @@ msgstr "" msgid "Export From" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "" @@ -9659,7 +9680,7 @@ msgstr "" msgid "Failed to enable scheduler: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "" @@ -9696,11 +9717,11 @@ msgstr "" msgid "Failed to optimize image: {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "" @@ -9730,7 +9751,7 @@ msgstr "" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "" @@ -9790,6 +9811,10 @@ msgstr "" msgid "Fetching default Global Search documents." msgstr "" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -9894,7 +9919,7 @@ msgstr "" msgid "Field {0} not found." msgstr "" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "" @@ -10127,7 +10152,7 @@ msgstr "" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "" @@ -10387,7 +10412,7 @@ msgid "Folio" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "" @@ -10395,7 +10420,7 @@ msgstr "" msgid "Followed by" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "" @@ -10859,11 +10884,16 @@ msgstr "" msgid "From" msgstr "" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -10879,6 +10909,11 @@ msgstr "" msgid "From Document Type" msgstr "" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11040,7 +11075,7 @@ msgstr "" msgid "Geolocation Settings" msgstr "" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "" @@ -11132,7 +11167,7 @@ msgstr "" msgid "Global Unsubscribe" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "" @@ -11180,7 +11215,7 @@ msgstr "" msgid "Go to {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11877,7 +11912,7 @@ msgstr "" msgid "Hide descendant records of For Value." msgstr "" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "" @@ -12560,11 +12595,11 @@ msgstr "" msgid "Import template should contain a Header and atleast one row." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "" @@ -13067,7 +13102,7 @@ msgstr "" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "" @@ -13161,6 +13196,8 @@ msgstr "" msgid "Invalid Naming Series: {}" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13175,7 +13212,7 @@ msgstr "" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "" @@ -13297,7 +13334,7 @@ msgstr "" msgid "Invalid field name in function: {0}. Only simple field names are allowed." msgstr "" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "" @@ -13832,6 +13869,7 @@ msgstr "" msgid "Job Status" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "" @@ -13840,16 +13878,22 @@ msgstr "" msgid "Job is in {0} state and can't be cancelled" msgstr "" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "" @@ -14901,7 +14945,7 @@ msgstr "" msgid "Loading Filters..." msgstr "" -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "" @@ -15036,7 +15080,7 @@ msgstr "" msgid "Login and view in Browser" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "" @@ -15073,7 +15117,7 @@ msgstr "" msgid "Login token required" msgstr "" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "" @@ -15543,7 +15587,7 @@ msgstr "" msgid "Meeting" msgstr "" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "" @@ -15579,7 +15623,7 @@ msgstr "" msgid "Menu" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "" @@ -15604,16 +15648,16 @@ msgstr "" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15650,7 +15694,7 @@ msgstr "" msgid "Message Type" msgstr "" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "" @@ -15658,7 +15702,7 @@ msgstr "" msgid "Message from server: {0}" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "" @@ -15844,7 +15888,7 @@ msgstr "" msgid "Missing Fields" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "" @@ -15979,7 +16023,7 @@ msgstr "" msgid "Module Profile Name" msgstr "" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "" @@ -15987,7 +16031,7 @@ msgstr "" msgid "Module to Export" msgstr "" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "" @@ -16501,7 +16545,7 @@ msgstr "" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "" @@ -16603,10 +16647,10 @@ msgid "New value to be set" msgstr "" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16691,6 +16735,10 @@ msgstr "" msgid "Next Actions HTML" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16758,8 +16806,8 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16795,7 +16843,7 @@ msgid "No Copy" msgstr "" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -16935,7 +16983,7 @@ msgstr "" msgid "No address added yet." msgstr "" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "" @@ -16975,6 +17023,10 @@ msgstr "" msgid "No contacts linked to document" msgstr "" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "" @@ -16995,7 +17047,7 @@ msgstr "" msgid "No email addresses to invite" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "" @@ -17058,7 +17110,7 @@ msgstr "" msgid "No of Sent SMS" msgstr "" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "" @@ -17095,7 +17147,7 @@ msgstr "" msgid "No rows" msgstr "" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "" @@ -17236,8 +17288,8 @@ msgstr "" msgid "Not Published" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17290,7 +17342,7 @@ msgstr "" msgid "Not allowed for {0}: {1}" msgstr "" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "" @@ -17322,7 +17374,7 @@ msgstr "" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17445,15 +17497,15 @@ msgstr "" msgid "Notification sent to" msgstr "" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "" @@ -17567,7 +17619,7 @@ msgstr "" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "" @@ -17676,14 +17728,30 @@ msgstr "" msgid "OTP Issuer Name" msgstr "" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "" @@ -17799,7 +17867,7 @@ msgstr "" msgid "On or Before" msgstr "" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "" @@ -17859,7 +17927,7 @@ msgstr "" msgid "One of" msgstr "" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "" @@ -17897,7 +17965,7 @@ msgstr "" msgid "Only Workspace Manager can edit public workspaces" msgstr "" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "" @@ -18077,7 +18145,7 @@ msgstr "" msgid "Operation" msgstr "" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "" @@ -18579,7 +18647,7 @@ msgstr "" msgid "Parentfield not specified in {0}: {1}" msgstr "" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "" @@ -18751,6 +18819,10 @@ msgstr "" msgid "Path to private Key File" msgstr "" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "" @@ -19075,7 +19147,7 @@ msgstr "" msgid "Please Update SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "" @@ -19127,7 +19199,7 @@ msgstr "" msgid "Please click Edit on the Workspace for best results" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "" @@ -19167,7 +19239,7 @@ msgstr "" msgid "Please duplicate this to make changes" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "" @@ -19283,6 +19355,10 @@ msgstr "" msgid "Please save the document before removing assignment" msgstr "" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "" @@ -19299,7 +19375,7 @@ msgstr "" msgid "Please select Entity Type first" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "" @@ -19365,7 +19441,7 @@ msgstr "" msgid "Please set filters" msgstr "" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "" @@ -19381,11 +19457,11 @@ msgstr "" msgid "Please set the series to be used." msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "" @@ -19405,23 +19481,27 @@ msgstr "" msgid "Please specify a valid parent DocType for {0}" msgstr "" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "" @@ -19608,7 +19688,7 @@ msgstr "" msgid "Preparing Report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "" @@ -19629,7 +19709,7 @@ msgstr "" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19683,6 +19763,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "" @@ -19732,8 +19816,8 @@ msgstr "" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19846,7 +19930,7 @@ msgstr "" msgid "Print Hide If No Value" msgstr "" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "" @@ -19861,10 +19945,8 @@ msgid "Print Server" msgstr "" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20486,7 +20568,7 @@ msgstr "" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "" @@ -20497,7 +20579,7 @@ msgstr "" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20736,12 +20818,12 @@ msgstr "" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "" @@ -21054,7 +21136,7 @@ msgstr "" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "" @@ -21085,7 +21167,7 @@ msgstr "" msgid "Remind At" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "" @@ -21165,9 +21247,9 @@ msgid "Removed" msgstr "" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21195,7 +21277,7 @@ msgstr "" msgid "Reopen" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "" @@ -21445,7 +21527,7 @@ msgstr "" msgid "Report limit reached" msgstr "" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "" @@ -21639,7 +21721,7 @@ msgstr "" msgid "Reset OTP Secret" msgstr "" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21795,7 +21877,7 @@ msgid "Resume Sending" msgstr "" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22117,7 +22199,7 @@ msgstr "" msgid "Row Name" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "" @@ -22125,7 +22207,7 @@ msgstr "" msgid "Row Values Changed" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "" @@ -22350,7 +22432,7 @@ msgid "Saturday" msgstr "" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22406,13 +22488,13 @@ msgstr "" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "" @@ -22454,7 +22536,7 @@ msgstr "" msgid "Schedule" msgstr "" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "" @@ -22518,7 +22600,7 @@ msgstr "" msgid "Scheduler Event" msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "" @@ -22531,7 +22613,7 @@ msgstr "" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "" @@ -22832,8 +22914,8 @@ msgstr "" msgid "Select All" msgstr "" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -22899,7 +22981,7 @@ msgstr "" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "" @@ -22973,7 +23055,7 @@ msgid "Select Page" msgstr "" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "" @@ -23187,7 +23269,7 @@ msgstr "" msgid "Send Print as PDF" msgstr "" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "" @@ -23246,11 +23328,11 @@ msgstr "" msgid "Send enquiries to this email address" msgstr "" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "" @@ -23474,7 +23556,7 @@ msgstr "" msgid "Session Expiry (idle timeout)" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "" @@ -23519,7 +23601,7 @@ msgstr "" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "" @@ -23891,7 +23973,7 @@ msgstr "" msgid "Show External Link Warning" msgstr "" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "" @@ -23943,7 +24025,7 @@ msgstr "" msgid "Show Line Breaks after Sections" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "" @@ -24018,7 +24100,7 @@ msgstr "" msgid "Show Social Login Key as Authorization Server" msgstr "" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "" @@ -24044,7 +24126,7 @@ msgstr "" msgid "Show Tour" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "" @@ -24124,8 +24206,8 @@ msgstr "" msgid "Show list" msgstr "" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "" @@ -24313,7 +24395,7 @@ msgstr "" msgid "Skipping column {0}" msgstr "" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "" @@ -24709,7 +24791,7 @@ msgstr "" msgid "Start Date Field" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "" @@ -24843,7 +24925,7 @@ msgstr "" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25010,9 +25092,9 @@ msgstr "" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "" @@ -25156,12 +25238,12 @@ msgstr "" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25221,11 +25303,11 @@ msgstr "" msgid "Successfully Updated" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "" @@ -25241,11 +25323,11 @@ msgstr "" msgid "Successfully updated translations" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "" @@ -25380,7 +25462,7 @@ msgstr "" msgid "Syncing {0} of {1}" msgstr "" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "" @@ -25691,7 +25773,7 @@ msgstr "" msgid "Table Trimmed" msgstr "" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "" @@ -25906,7 +25988,7 @@ msgstr "" msgid "The Auto Repeat for this document has been disabled." msgstr "" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "" @@ -25917,7 +25999,7 @@ msgid "The Client ID obtained from the Google Cloud Console under
" msgstr "" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "" @@ -26164,7 +26246,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "" @@ -26216,7 +26298,7 @@ msgstr "" msgid "There were errors while creating the document. Please try again." msgstr "" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "" @@ -26293,7 +26375,7 @@ msgstr "" msgid "This action is only allowed for {}" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "" @@ -26522,6 +26604,8 @@ msgstr "" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" msgstr "" @@ -27590,15 +27674,15 @@ msgstr "" msgid "Uncaught Exception" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "" @@ -27607,7 +27691,7 @@ msgid "Unescaped quotes in string literal: {0}" msgstr "" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "" @@ -27645,7 +27729,7 @@ msgstr "" msgid "Unknown Column: {0}" msgstr "" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "" @@ -27873,7 +27957,7 @@ msgstr "" msgid "Updating naming series options" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "" @@ -28519,7 +28603,7 @@ msgstr "" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "" @@ -28597,7 +28681,7 @@ msgstr "" msgid "Value {0} missing for {1}" msgstr "" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "" @@ -28619,7 +28703,7 @@ msgstr "" msgid "Verification" msgstr "" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "" @@ -28677,7 +28761,7 @@ msgstr "" msgid "View All" msgstr "" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "" @@ -29643,9 +29727,9 @@ msgstr "" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29740,7 +29824,7 @@ msgstr "" msgid "You are not allowed to print this report" msgstr "" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "" @@ -29928,7 +30012,7 @@ msgctxt "Form timeline" msgid "You created this document {0}" msgstr "" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "" @@ -29988,7 +30072,7 @@ msgstr "" msgid "You have not entered a value. The field will be set to empty." msgstr "" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "" @@ -30097,7 +30181,7 @@ msgstr "" msgid "You need write permission on {0} {1} to rename" msgstr "" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "" @@ -30271,7 +30355,7 @@ msgstr "" msgid "Your verification code is {0}" msgstr "" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "" @@ -30314,7 +30398,7 @@ msgstr "" msgid "amend" msgstr "" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "" @@ -30601,7 +30685,7 @@ msgstr "" msgid "logged in" msgstr "" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "" @@ -30939,7 +31023,7 @@ msgstr "" msgid "via Google Meet" msgstr "" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "" @@ -31148,7 +31232,7 @@ msgstr "" msgid "{0} already unsubscribed for {1} {2}" msgstr "" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "" @@ -31173,7 +31257,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "" @@ -31486,7 +31570,7 @@ msgstr "" msgid "{0} months ago" msgstr "" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "" @@ -31543,12 +31627,12 @@ msgstr "" msgid "{0} of {1} ({2} rows with children)" msgstr "" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "" @@ -31593,7 +31677,7 @@ msgstr "" msgid "{0} role does not have permission on any doctype" msgstr "" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" msgstr "" @@ -31872,11 +31956,11 @@ msgstr "" msgid "{} Complete" msgstr "" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "" diff --git a/frappe/locale/zh.po b/frappe/locale/zh.po index c836271e31..b7ea1468b7 100644 --- a/frappe/locale/zh.po +++ b/frappe/locale/zh.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: frappe\n" "Report-Msgid-Bugs-To: developers@frappe.io\n" -"POT-Creation-Date: 2025-10-26 09:33+0000\n" -"PO-Revision-Date: 2025-10-29 05:37\n" +"POT-Creation-Date: 2025-11-09 09:33+0000\n" +"PO-Revision-Date: 2025-11-10 10:48\n" "Last-Translator: developers@frappe.io\n" "Language-Team: Chinese Simplified\n" "MIME-Version: 1.0\n" @@ -88,7 +88,7 @@ msgstr "'收件人'未指定" #: frappe/utils/__init__.py:271 msgid "'{0}' is not a valid IBAN" -msgstr "" +msgstr "“{0}”不是有效的IBAN号码" #: frappe/utils/__init__.py:261 msgid "'{0}' is not a valid URL" @@ -145,7 +145,7 @@ msgstr "已同步1个Google日历事件" msgid "1 Report" msgstr "1个报表" -#: frappe/tests/test_utils.py:845 +#: frappe/tests/test_utils.py:872 msgid "1 day ago" msgstr "1天前" @@ -154,17 +154,17 @@ msgid "1 hour" msgstr "1小时" #: frappe/public/js/frappe/utils/pretty_date.js:52 -#: frappe/tests/test_utils.py:843 +#: frappe/tests/test_utils.py:870 msgid "1 hour ago" msgstr "1小时前" #: frappe/public/js/frappe/utils/pretty_date.js:48 -#: frappe/tests/test_utils.py:841 +#: frappe/tests/test_utils.py:868 msgid "1 minute ago" msgstr "1分钟前" #: frappe/public/js/frappe/utils/pretty_date.js:66 -#: frappe/tests/test_utils.py:849 +#: frappe/tests/test_utils.py:876 msgid "1 month ago" msgstr "一个月前" @@ -179,44 +179,44 @@ msgstr "将导出一笔记录" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:320 msgctxt "User removed row from child table" msgid "1 row from {0}" -msgstr "" +msgstr "来自 {0}的 1 行" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:275 msgctxt "User added row to child table" msgid "1 row to {0}" -msgstr "" +msgstr "1 行至 {0}" -#: frappe/tests/test_utils.py:840 +#: frappe/tests/test_utils.py:867 msgid "1 second ago" msgstr "1秒前" #: frappe/public/js/frappe/utils/pretty_date.js:62 -#: frappe/tests/test_utils.py:847 +#: frappe/tests/test_utils.py:874 msgid "1 week ago" msgstr "一周前" #: frappe/public/js/frappe/utils/pretty_date.js:70 -#: frappe/tests/test_utils.py:851 +#: frappe/tests/test_utils.py:878 msgid "1 year ago" msgstr "一年前" -#: frappe/tests/test_utils.py:844 +#: frappe/tests/test_utils.py:871 msgid "2 hours ago" msgstr "2小时前" -#: frappe/tests/test_utils.py:850 +#: frappe/tests/test_utils.py:877 msgid "2 months ago" msgstr "2个月前" -#: frappe/tests/test_utils.py:848 +#: frappe/tests/test_utils.py:875 msgid "2 weeks ago" msgstr "2周前" -#: frappe/tests/test_utils.py:852 +#: frappe/tests/test_utils.py:879 msgid "2 years ago" msgstr "2年前" -#: frappe/tests/test_utils.py:842 +#: frappe/tests/test_utils.py:869 msgid "3 minutes ago" msgstr "3分钟前" @@ -232,7 +232,7 @@ msgstr "4小时" msgid "5 Records" msgstr "5笔记录" -#: frappe/tests/test_utils.py:846 +#: frappe/tests/test_utils.py:873 msgid "5 days ago" msgstr "5天前" @@ -257,7 +257,9 @@ msgstr "小于等于" msgid "
\n" " Click here to learn about token-based authentication\n" "" -msgstr "" +msgstr "\n" +" 点击此处了解基于令牌的认证\n" +"" #: frappe/public/js/frappe/widgets/widget_dialog.js:601 msgid "{0} is not a valid URL" @@ -271,12 +273,12 @@ msgstr "
请不要直接更新这个表单里的内容,可 #. Introduction text of the request-data Web Form #: frappe/website/web_form/request_data/request_data.json msgid "

Request a file containing your personally identifiable information (PII) that is saved on our system. The file will be in JSON format and is sent to you by email. If you would like to have your PII deleted from our system, please make a request to delete data.

" -msgstr "" +msgstr "

申请获取包含系统存储的个人身份信息(PII)的文件。文件将以JSON格式通过邮件发送给您。如需从系统中删除您的PII,请提交 数据删除请求

" #. Introduction text of the request-to-delete-data Web Form #: frappe/website/web_form/request_to_delete_data/request_to_delete_data.json msgid "

Send a request to delete your account and personally identifiable information (PII) that is stored on our system. You will receive an email to verify your request. Once the request is verified we will take care of deleting your PII. If you just want to check what PII we have stored, you can request your data.

" -msgstr "" +msgstr "

提交删除账户及系统存储的个人身份信息(PII)的请求。您将收到验证请求的邮件。请求通过验证后,我们将处理您的PII删除事宜。若仅需查看我们存储的PII内容,您可以申请获取数据

" #. Content of the 'Help HTML' (HTML) field in DocType 'Document Naming #. Settings' @@ -620,7 +622,9 @@ msgstr "
消息范例
\n\n" msgid "

Condition Examples:

\n" "
doc.status==\"Open\"
doc.due_date==nowdate()
doc.total > 40000\n" "
\n" -msgstr "" +msgstr "

条件示例:

\n" +"
doc.status==\"Open\"
doc.due_date==nowdate()
doc.total > 40000\n" +"
\n" #. Content of the 'html_condition' (HTML) field in DocType 'Webhook' #: frappe/integrations/doctype/webhook/webhook.json @@ -662,7 +666,7 @@ msgstr "

要与上述 HTML 交互,您必须使用 `root_element` 作为父 "some_class_element.textContent = \"New content\";\n" "" -#: frappe/twofactor.py:451 +#: frappe/twofactor.py:460 msgid "

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 "

您在{0}的OTP密钥已被重置。若非您本人操作,请立即联系系统管理员。

" @@ -759,12 +763,12 @@ msgstr "文档类型名称应以字母开头,只能包含字母、数字、空 #. Description of a DocType #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "A Frappe Framework instance can function as an OAuth Client, Resource, or Authorization server. This DocType contains settings related to all three." -msgstr "" +msgstr "Frappe Framework实例可作为OAuth客户端、资源服务器或授权服务器运行。本文档类型包含与此三种角色相关的设置。" #. Success message of the request-data Web Form #: frappe/website/web_form/request_data/request_data.json msgid "A download link with your data will be sent to the email address associated with your account." -msgstr "" +msgstr "包含您数据的下载链接将发送至您账户关联的邮件地址。" #: frappe/custom/doctype/custom_field/custom_field.py:175 msgid "A field with the name {0} already exists in {1}" @@ -801,7 +805,9 @@ msgstr "字段{1}.{0}的模板已存在" msgid "A version identifier string for the client software.\n" "
\n" "The value of the should change on any update of the client software with the same Software ID." -msgstr "" +msgstr "客户端软件的版本标识符字符串。\n" +"
\n" +"对于具有相同软件ID的客户端软件,该值应在任何更新时变更。" #: frappe/utils/password_strength.py:169 msgid "A word by itself is easy to guess." @@ -884,7 +890,7 @@ msgstr "API端点参数" #: frappe/integrations/doctype/social_login_key/social_login_key.py:102 msgid "API Endpoint Args should be valid JSON" -msgstr "" +msgstr "API端点参数应为有效的JSON格式" #. Label of the api_key (Data) field in DocType 'User' #. Label of the api_key (Data) field in DocType 'Email Account' @@ -913,13 +919,13 @@ msgstr "无法重新生成API密钥" #: frappe/core/doctype/user/user.js:456 msgid "API Keys" -msgstr "" +msgstr "API密钥" #. Label of the api_logging_section (Section Break) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "API Logging" -msgstr "" +msgstr "API日志记录" #. Label of the api_method (Data) field in DocType 'Server Script' #: frappe/core/doctype/server_script/server_script.json @@ -929,7 +935,7 @@ msgstr "API方法" #. Name of a DocType #: frappe/core/doctype/api_request_log/api_request_log.json msgid "API Request Log" -msgstr "" +msgstr "API请求日志" #. Label of the api_secret (Password) field in DocType 'User' #. Label of the api_secret (Password) field in DocType 'Email Account' @@ -1054,7 +1060,7 @@ msgstr "会计" #: frappe/public/js/frappe/form/dashboard.js:510 msgid "Accurate count can not be fetched, click here to view all documents" -msgstr "" +msgstr "无法获取准确计数,点击此处查看所有文档" #. Label of the action (Select) field in DocType 'Amended Document Naming #. Settings' @@ -1085,7 +1091,7 @@ msgstr "操作 / 网址路径" msgid "Action Complete" msgstr "操作完成" -#: frappe/model/document.py:1917 +#: frappe/model/document.py:1921 msgid "Action Failed" msgstr "操作失败" @@ -1222,7 +1228,7 @@ msgstr "添加/更新" msgid "Add A New Rule" msgstr "创建新规则" -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:159 msgid "Add Attachment" msgstr "添加附件" @@ -1327,7 +1333,7 @@ msgstr "添加一行" #. Label of the add_signature (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json -#: frappe/public/js/frappe/views/communication.js:133 +#: frappe/public/js/frappe/views/communication.js:124 msgid "Add Signature" msgstr "添加签名" @@ -1355,7 +1361,7 @@ msgctxt "Button in list view actions menu" msgid "Add Tags" msgstr "添加标签" -#: frappe/public/js/frappe/views/communication.js:433 +#: frappe/public/js/frappe/views/communication.js:424 msgid "Add Template" msgstr "新建模板" @@ -1733,11 +1739,11 @@ msgstr "预警与通知" #: frappe/database/query.py:1610 msgid "Alias cannot be a SQL keyword: {0}" -msgstr "" +msgstr "别名不能是SQL关键字:{0}" #: frappe/database/query.py:1535 msgid "Alias must be a string" -msgstr "" +msgstr "别名必须为字符串" #. Label of the align (Select) field in DocType 'Letter Head' #. Label of the footer_align (Select) field in DocType 'Letter Head' @@ -1762,6 +1768,7 @@ msgstr "对齐方式" #. Name of a role #. Option for the 'Frequency' (Select) field in DocType 'Scheduled Job Type' #. Option for the 'Event Frequency' (Select) field in DocType 'Server Script' +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' #: frappe/contacts/doctype/address/address.json #: frappe/contacts/doctype/contact/contact.json #: frappe/contacts/doctype/gender/gender.json @@ -1776,7 +1783,9 @@ msgstr "对齐方式" #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/desk/doctype/notification_settings/notification_settings.json #: frappe/desk/doctype/tag/tag.json frappe/desk/doctype/tag_link/tag_link.json -#: frappe/desk/doctype/todo/todo.json frappe/geo/doctype/country/country.json +#: frappe/desk/doctype/todo/todo.json +#: frappe/email/doctype/notification/notification.json +#: frappe/geo/doctype/country/country.json #: frappe/integrations/doctype/connected_app/connected_app.json #: frappe/integrations/doctype/token_cache/token_cache.json #: frappe/website/doctype/personal_data_download_request/personal_data_download_request.json @@ -1861,7 +1870,7 @@ msgstr "启用批量编辑" #. Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "Allow Consecutive Login Attempts" -msgstr "" +msgstr "允许连续登录尝试" #: frappe/integrations/doctype/google_calendar/google_calendar.py:79 msgid "Allow Google Calendar Access" @@ -2054,7 +2063,7 @@ msgstr "允许打印" #: frappe/desk/page/setup_wizard/setup_wizard.js:431 msgid "Allow recording my first session to improve user experience" -msgstr "" +msgstr "允许记录我的首次会话以改善用户体验" #. Description of the 'Allow incomplete forms' (Check) field in DocType 'Web #. Form' @@ -2108,7 +2117,7 @@ msgstr "允许的模块" #. 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Allowed Public Client Origins" -msgstr "" +msgstr "允许的公共客户端来源" #. Label of the allowed_roles (Table MultiSelect) field in DocType 'OAuth #. Client' @@ -2130,37 +2139,37 @@ msgstr "修改核心单据类型:DocType 。请格外小心!" #. 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Allows clients to fetch metadata from the /.well-known/oauth-authorization-server endpoint. Reference: RFC8414" -msgstr "" +msgstr "允许客户端从/.well-known/oauth-authorization-server端点获取元数据。参考RFC8414" #. Description of the 'Show Protected Resource Metadata' (Check) field in #. DocType 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Allows clients to fetch metadata from the /.well-known/oauth-protected-resource endpoint. Reference: RFC9728" -msgstr "" +msgstr "允许客户端从/.well-known/oauth-protected-resource端点获取元数据。参考:RFC9728" #. Description of the 'Enable Dynamic Client Registration' (Check) field in #. DocType 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Allows clients to register themselves without manual intervention. Registration creates a OAuth Client entry. Reference: RFC7591" -msgstr "" +msgstr "允许客户端在无需人工干预的情况下自行注册。注册将创建OAuth 客户端条目。参考:RFC7591" #. Description of the 'Show in Resource Metadata' (Check) field in DocType #. 'Social Login Key' #: frappe/integrations/doctype/social_login_key/social_login_key.json msgid "Allows clients to view this as an Authorization Server when querying the /.well-known/oauth-protected-resource end point." -msgstr "" +msgstr "允许客户端在查询/.well-known/oauth-protected-resource端点时将此视为授权服务器。" #. Description of the 'Show Social Login Key as Authorization Server' (Check) #. field in DocType 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Allows enabled Social Login Key Base URL to be shown as authorization server." -msgstr "" +msgstr "允许将已启用的社交登录密钥基础URL显示为授权服务器。" #. Description of the 'Skip Authorization' (Check) field in DocType 'OAuth #. Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Allows skipping authorization if a user has active tokens." -msgstr "" +msgstr "若用户持有有效令牌,允许跳过授权流程。" #: frappe/core/doctype/user/user.py:1072 msgid "Already Registered" @@ -2187,7 +2196,7 @@ msgstr "别的邮箱账号" #. 'System Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "Always" -msgstr "" +msgstr "始终" #. Label of the always_bcc (Data) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json @@ -2268,7 +2277,7 @@ msgstr "修订命名规则已更新。" #. Success message of the request-to-delete-data Web Form #: frappe/website/web_form/request_to_delete_data/request_to_delete_data.json msgid "An email to verify your request has been sent to your email address. Please verify your request to complete the process." -msgstr "" +msgstr "验证请求的邮件已发送至您的邮件地址。请验证您的请求以完成流程。" #: frappe/public/js/frappe/ui/toolbar/toolbar.js:354 msgid "An error occurred while setting Session Defaults" @@ -2377,9 +2386,9 @@ msgstr "应用程序名称" #. Label of the app_name (Data) field in DocType 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "App Name (Client Name)" -msgstr "" +msgstr "应用名称(客户端名称)" -#: frappe/modules/utils.py:280 +#: frappe/modules/utils.py:285 msgid "App not found for module: {0}" msgstr "未找到模块{0}对应的应用" @@ -2441,7 +2450,7 @@ msgstr "应用版本" #: frappe/core/doctype/user_invitation/user_invitation.py:195 msgid "Application is not installed" -msgstr "" +msgstr "应用未安装" #. Label of the doctype_or_field (Select) field in DocType 'Property Setter' #: frappe/custom/doctype/property_setter/property_setter.json @@ -2535,13 +2544,13 @@ msgstr "归档列" #: frappe/core/doctype/user_invitation/user_invitation.js:18 msgid "Are you sure you want to cancel the invitation?" -msgstr "" +msgstr "是否确认取消邀请?" #: frappe/public/js/frappe/list/list_view.js:2122 msgid "Are you sure you want to clear the assignments?" msgstr "确定要清除分配吗?" -#: frappe/public/js/frappe/form/grid.js:294 +#: frappe/public/js/frappe/form/grid.js:296 msgid "Are you sure you want to delete all rows?" msgstr "确定删除所有行?" @@ -2567,7 +2576,7 @@ msgstr "确定要删除标签页吗?该标签页中的所有节及字段将移 #: frappe/public/js/frappe/web_form/web_form.js:203 msgid "Are you sure you want to delete this record?" -msgstr "" +msgstr "是否确认删除本记录?" #: frappe/public/js/frappe/web_form/web_form.js:191 msgid "Are you sure you want to discard the changes?" @@ -2577,7 +2586,7 @@ msgstr "确定要放弃更改吗?" msgid "Are you sure you want to generate a new report?" msgstr "确定要生成新报告吗?" -#: frappe/public/js/frappe/form/toolbar.js:120 +#: frappe/public/js/frappe/form/toolbar.js:124 msgid "Are you sure you want to merge {0} with {1}?" msgstr "确定要将{0}与{1}合并吗?" @@ -2611,7 +2620,7 @@ msgstr "确定要保存此文档吗?" #: frappe/public/js/frappe/form/workflow.js:114 msgid "Are you sure you want to {0}?" -msgstr "" +msgstr "是否确认要{0}?" #: frappe/core/doctype/document_naming_rule/document_naming_rule.js:16 #: frappe/core/doctype/user_permission/user_permission_list.js:165 @@ -2644,7 +2653,7 @@ msgstr "根据您的要求,已永久删除您在{0}上与电子邮件{1}关联 #. 'System Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "Ask" -msgstr "" +msgstr "询问" #. Label of the assign_condition (Code) field in DocType 'Assignment Rule' #: frappe/automation/doctype/assignment_rule/assignment_rule.json @@ -2721,7 +2730,7 @@ msgstr "执行人/发起人" #. Label of the assignee (Table MultiSelect) field in DocType 'Auto Repeat' #: frappe/automation/doctype/auto_repeat/auto_repeat.json msgid "Assignee" -msgstr "" +msgstr "负责人" #: frappe/public/js/frappe/form/sidebar/assign_to.js:269 msgid "Assigning..." @@ -2796,7 +2805,7 @@ msgstr "任务分派" #. Task' #: frappe/workflow/doctype/workflow_transition_task/workflow_transition_task.json msgid "Asynchronous" -msgstr "" +msgstr "异步" #: frappe/public/js/frappe/form/grid_row.js:697 msgid "At least one column is required to show in the grid." @@ -2823,10 +2832,15 @@ msgstr "父文档类型必须至少有一个字段" msgid "Attach" msgstr "添加文件" -#: frappe/public/js/frappe/views/communication.js:155 +#: frappe/public/js/frappe/views/communication.js:146 msgid "Attach Document Print" msgstr "添加打印输出作为附件" +#. Label of the attach_files (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attach Files" +msgstr "" + #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' #. Option for the 'Type' (Select) field in DocType 'Customize Form Field' @@ -2909,6 +2923,11 @@ msgstr "附件链接" msgid "Attachment Removed" msgstr "附件已删除" +#. Label of the column_break_25 (Section Break) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "Attachment Settings" +msgstr "" + #. Label of the attachments (Code) field in DocType 'Email Queue' #: frappe/email/doctype/email_queue/email_queue.json #: frappe/public/js/frappe/form/templates/form_sidebar.html:63 @@ -2945,7 +2964,7 @@ msgstr "身份验证URL数据" #: frappe/integrations/doctype/social_login_key/social_login_key.py:96 msgid "Auth URL data should be valid JSON" -msgstr "" +msgstr "认证URL数据应为有效的JSON格式" #. Label of the backend_app_flow (Check) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json @@ -2965,7 +2984,7 @@ msgstr "认证" #: frappe/www/qrcode.html:19 msgid "Authentication Apps you can use are:" -msgstr "" +msgstr "可使用的认证应用包括:" #: frappe/email/doctype/email_account/email_account.py:339 msgid "Authentication failed while receiving emails from Email Account: {0}." @@ -2979,7 +2998,7 @@ msgstr "作者" #. Label of the authorization_tab (Tab Break) field in DocType 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Authorization" -msgstr "" +msgstr "授权" #. Label of the authorization_code (Password) field in DocType 'Google #. Calendar' @@ -3086,14 +3105,14 @@ msgstr "自动重复日{0} {1}已重复。" msgid "Auto Repeat Document Creation Failed" msgstr "自动重复文档创建失败" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:117 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:120 msgid "Auto Repeat Schedule" msgstr "自动重复计划" #. Name of a DocType #: frappe/automation/doctype/auto_repeat_user/auto_repeat_user.json msgid "Auto Repeat User" -msgstr "" +msgstr "自动重复用户" #: frappe/public/js/frappe/utils/common.js:434 msgid "Auto Repeat created for this document" @@ -3320,7 +3339,7 @@ msgstr "B9" msgid "BCC" msgstr "暗送" -#: frappe/public/js/frappe/views/communication.js:87 +#: frappe/public/js/frappe/views/communication.js:81 msgctxt "Email Recipients" msgid "BCC" msgstr "暗送" @@ -3338,7 +3357,7 @@ msgstr "返回主页(桌面)" msgid "Back to Home" msgstr "返回首页" -#: frappe/www/login.html:201 frappe/www/login.html:232 +#: frappe/www/login.html:196 frappe/www/login.html:222 msgid "Back to Login" msgstr "返回登录界面" @@ -3779,7 +3798,7 @@ msgstr "批量删除" msgid "Bulk Edit" msgstr "批量修改" -#: frappe/public/js/frappe/form/grid.js:1190 +#: frappe/public/js/frappe/form/grid.js:1210 msgid "Bulk Edit {0}" msgstr "批量编辑{0}" @@ -3902,7 +3921,7 @@ msgstr "已取消" msgid "CC" msgstr "抄送" -#: frappe/public/js/frappe/views/communication.js:77 +#: frappe/public/js/frappe/views/communication.js:74 msgctxt "Email Recipients" msgid "CC" msgstr "抄送" @@ -4097,6 +4116,14 @@ msgstr "全部取消" msgid "Cancel All Documents" msgstr "取消所有单据" +#: frappe/core/doctype/data_import/data_import.js:180 +msgid "Cancel Import" +msgstr "" + +#: frappe/core/doctype/prepared_report/prepared_report.js:66 +msgid "Cancel Prepared Report" +msgstr "" + #: frappe/public/js/frappe/list/list_view.js:2218 msgctxt "Title of confirmation dialog" msgid "Cancel {0} documents?" @@ -4134,11 +4161,11 @@ msgstr "取消单据" msgid "Cancelling {0}" msgstr "取消{0}" -#: frappe/core/doctype/prepared_report/prepared_report.py:265 +#: frappe/core/doctype/prepared_report/prepared_report.py:290 msgid "Cannot Download Report due to insufficient permissions" msgstr "因权限不足无法下载报告" -#: frappe/client.py:452 +#: frappe/client.py:463 msgid "Cannot Fetch Values" msgstr "无法获取值" @@ -4241,7 +4268,7 @@ msgstr "无法删除{0} ,因为它有子节点" msgid "Cannot edit Standard Dashboards" msgstr "无法编辑标准仪表板" -#: frappe/email/doctype/notification/notification.py:202 +#: frappe/email/doctype/notification/notification.py:207 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "无法编辑标准通知。要进行编辑,请勾选禁用然后复制它" @@ -4266,7 +4293,7 @@ msgstr "无法编辑标准图表筛选器" msgid "Cannot edit filters for standard number cards" msgstr "无法编辑标准数字卡筛选器" -#: frappe/client.py:166 +#: frappe/client.py:177 msgid "Cannot edit standard fields" msgstr "不能编辑标准字段" @@ -4286,7 +4313,7 @@ msgstr "无法获取文件夹内容" msgid "Cannot have multiple printers mapped to a single print format." msgstr "不能将多个打印机映射到单个打印格式。" -#: frappe/public/js/frappe/form/grid.js:1134 +#: frappe/public/js/frappe/form/grid.js:1154 msgid "Cannot import table with more than 5000 rows." msgstr "无法导入超过5000行的表格。" @@ -4314,7 +4341,7 @@ msgstr "无法删除ID字段" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "若设置'仅创建者'权限则无法设置'报告'权限" -#: frappe/email/doctype/notification/notification.py:235 +#: frappe/email/doctype/notification/notification.py:240 msgid "Cannot set Notification with event {0} on Document Type {1}" msgstr "无法在文档类型{1}上设置事件{0}的通知" @@ -4333,7 +4360,7 @@ msgstr "无法更新{0}" #: frappe/model/db_query.py:1235 msgid "Cannot use sub-query here." -msgstr "" +msgstr "此处不能使用子查询。" #: frappe/model/db_query.py:1267 msgid "Cannot use {0} in order/group by" @@ -4441,7 +4468,8 @@ msgstr "更改打印格式" #: frappe/core/doctype/document_naming_settings/document_naming_settings.json msgid "Change the starting / current sequence number of an existing series.
\n\n" "Warning: Incorrectly updating counters can prevent documents from getting created." -msgstr "" +msgstr "更改现有序列的起始/当前序列号。
\n\n" +"警告:错误更新计数器可能导致无法创建文档。" #. Label of the changed_at (Datetime) field in DocType 'Permission Log' #: frappe/core/doctype/permission_log/permission_log.json @@ -4568,7 +4596,7 @@ msgstr "如需用户手动选择单据编号模板,请勾选。勾选后系统 #. Description of the 'Show Full Number' (Check) field in DocType 'Number Card' #: frappe/desk/doctype/number_card/number_card.json msgid "Check to display the full numeric value (e.g., 1,234,567 instead of 1.2M)." -msgstr "" +msgstr "勾选以显示完整数值(例如:1,234,567而非1.2M)。" #: frappe/public/js/frappe/desk.js:235 msgid "Checking one moment" @@ -4603,7 +4631,7 @@ msgstr "子文档类型" #: frappe/core/doctype/doctype/doctype.py:1647 msgid "Child Table {0} for field {1} must be virtual" -msgstr "" +msgstr "字段{1}的子表{0}必须为虚拟表" #. Description of the 'Is Child Table' (Check) field in DocType 'DocType' #: frappe/core/doctype/doctype/doctype.json @@ -4613,7 +4641,7 @@ msgstr "嵌入其它单据类型中作为表格,一对多关系中的多这一 #: frappe/database/query.py:662 msgid "Child query fields for '{0}' must be a list or tuple." -msgstr "" +msgstr "“{0}”的子查询字段必须为列表或元组。" #: frappe/public/js/frappe/widgets/widget_dialog.js:651 msgid "Choose Existing Card or create New Card" @@ -4641,7 +4669,7 @@ msgstr "选择所有用户使用的身份验证方法" #: frappe/utils/pdf_generator/chrome_pdf_generator.py:94 msgid "Chromium is not downloaded. Please run the setup first." -msgstr "" +msgstr "Chromium未下载。请先运行安装程序。" #. Label of the city (Data) field in DocType 'Contact Us Settings' #: frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py:39 @@ -4659,11 +4687,11 @@ msgstr "市/镇" msgid "Clear" msgstr "清除" -#: frappe/public/js/frappe/views/communication.js:438 +#: frappe/public/js/frappe/views/communication.js:429 msgid "Clear & Add Template" msgstr "清空并添加模板" -#: frappe/public/js/frappe/views/communication.js:114 +#: frappe/public/js/frappe/views/communication.js:105 msgid "Clear & Add template" msgstr "清除并添加模板" @@ -4697,7 +4725,7 @@ msgstr "日志保留天数" msgid "Clear User Permissions" msgstr "清除用户权限限制" -#: frappe/public/js/frappe/views/communication.js:439 +#: frappe/public/js/frappe/views/communication.js:430 msgid "Clear the email message and add the template" msgstr "模板内容覆盖邮件正文(消息)" @@ -4711,7 +4739,7 @@ msgstr "点击定制按钮开始定制" #: frappe/templates/emails/user_invitation.html:8 msgid "Click below to get started:" -msgstr "" +msgstr "点击下方开始使用:" #: frappe/website/doctype/web_form/templates/web_form.html:154 msgid "Click here" @@ -4750,7 +4778,7 @@ msgstr "单击{0}以生成刷新令牌。" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:315 #: frappe/desk/doctype/number_card/number_card.js:222 #: frappe/email/doctype/auto_email_report/auto_email_report.js:99 -#: frappe/website/doctype/web_form/web_form.js:239 +#: frappe/website/doctype/web_form/web_form.js:252 msgid "Click table to edit" msgstr "点击表格进行编辑" @@ -4761,7 +4789,7 @@ msgstr "点击设置动态筛选器" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:372 #: frappe/desk/doctype/number_card/number_card.js:278 -#: frappe/website/doctype/web_form/web_form.js:265 +#: frappe/website/doctype/web_form/web_form.js:278 msgid "Click to Set Filters" msgstr "单击设置过滤条件" @@ -4819,7 +4847,7 @@ msgstr "客户信息" #. Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "Client Metadata" -msgstr "" +msgstr "客户端元数据" #. Label of a Link in the Build Workspace #. Name of a DocType @@ -4846,18 +4874,18 @@ msgstr "客户端秘钥" #. Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "Client Secret Basic" -msgstr "" +msgstr "客户端密钥基本认证" #. Option for the 'Token Endpoint Auth Method' (Select) field in DocType 'OAuth #. Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "Client Secret Post" -msgstr "" +msgstr "客户端密钥POST认证" #. Label of the client_uri (Data) field in DocType 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "Client URI" -msgstr "" +msgstr "客户端URI" #. Label of the client_urls (Section Break) field in DocType 'Social Login Key' #: frappe/integrations/doctype/social_login_key/social_login_key.json @@ -4938,7 +4966,7 @@ msgstr "代码挑战方法" msgid "Collapse" msgstr "收起" -#: frappe/public/js/frappe/form/controls/code.js:184 +#: frappe/public/js/frappe/form/controls/code.js:185 msgctxt "Shrink code field." msgid "Collapse" msgstr "折叠" @@ -5062,7 +5090,7 @@ msgstr "列宽" msgid "Column width cannot be zero." msgstr "列宽不能为零。" -#: frappe/core/doctype/data_import/data_import.js:380 +#: frappe/core/doctype/data_import/data_import.js:406 msgid "Column {0}" msgstr "列{0}" @@ -5305,7 +5333,7 @@ msgstr "已压缩" #: frappe/email/doctype/notification/notification.json #: frappe/email/doctype/notification_recipient/notification_recipient.json #: frappe/integrations/doctype/webhook/webhook.json -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Condition" msgstr "条件" @@ -5318,7 +5346,7 @@ msgstr "条件JSON" #. Label of the condition_type (Select) field in DocType 'Notification' #: frappe/email/doctype/notification/notification.json msgid "Condition Type" -msgstr "" +msgstr "条件类型" #. Label of the condition_description (HTML) field in DocType 'Web Form' #: frappe/website/doctype/web_form/web_form.json @@ -5494,7 +5522,7 @@ msgstr "联系人" #: frappe/integrations/doctype/google_calendar/google_calendar.py:812 msgid "Contact / email not found. Did not add attendee for -
{0}" -msgstr "" +msgstr "未找到联系人/邮件地址。未添加参与者 -
{0}" #. Label of the sb_01 (Section Break) field in DocType 'Contact' #: frappe/contacts/doctype/contact/contact.json @@ -5644,13 +5672,13 @@ msgstr "复制嵌入代码" msgid "Copy error to clipboard" msgstr "将出错日志复制到剪贴板" -#: frappe/public/js/frappe/form/toolbar.js:507 +#: frappe/public/js/frappe/form/toolbar.js:533 msgid "Copy to Clipboard" msgstr "复制到剪贴板" #: frappe/core/doctype/user/user.js:487 msgid "Copy token to clipboard" -msgstr "" +msgstr "复制令牌至剪贴板" #. Label of the copyright (Data) field in DocType 'Website Settings' #: frappe/website/doctype/website_settings/website_settings.json @@ -5683,15 +5711,15 @@ msgstr "无法映射列{0}到字段{1}" #: frappe/database/query.py:566 msgid "Could not parse field: {0}" -msgstr "" +msgstr "无法解析字段:{0}" #: frappe/utils/pdf_generator/chrome_pdf_generator.py:199 msgid "Could not start Chromium. Check logs for details." -msgstr "" +msgstr "无法启动Chromium。请查看日志获取详细信息。" #: frappe/desk/page/setup_wizard/setup_wizard.js:234 msgid "Could not start up:" -msgstr "" +msgstr "无法启动:" #: frappe/public/js/frappe/web_form/web_form.js:383 msgid "Couldn't save, please check the data you have entered" @@ -5724,7 +5752,7 @@ msgstr "计数过滤条件" #: frappe/public/js/frappe/form/dashboard.js:509 msgid "Count of linked documents" -msgstr "" +msgstr "关联文档计数" #. Label of the counter (Int) field in DocType 'Document Naming Rule' #: frappe/core/doctype/document_naming_rule/document_naming_rule.json @@ -6226,7 +6254,7 @@ msgstr "已成功将自定义字段更名为{0}" #: frappe/api/v2.py:148 msgid "Custom get_list method for {0} must return a QueryBuilder object or None, got {1}" -msgstr "" +msgstr "{0}的自定义get_list方法必须返回QueryBuilder对象或None,实际返回{1}" #. Label of the custom (Check) field in DocType 'DocType' #. Label of the custom (Check) field in DocType 'Website Theme' @@ -6255,13 +6283,13 @@ msgstr "已放弃自定义" msgid "Customizations Reset" msgstr "自定义重置" -#: frappe/modules/utils.py:96 +#: frappe/modules/utils.py:97 msgid "Customizations for {0} exported to:
{1}" msgstr "{0}的自定义已导出到:
{1}" #: frappe/printing/page/print/print.js:184 #: frappe/public/js/frappe/form/templates/print_layout.html:39 -#: frappe/public/js/frappe/form/toolbar.js:600 +#: frappe/public/js/frappe/form/toolbar.js:626 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:197 msgid "Customize" msgstr "定制" @@ -6893,7 +6921,7 @@ msgstr "定义切换到工作流状态的操作,下一个状态和被允许的 #. field in DocType 'System Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "Defines how long exported reports sent via email are kept in the system. Older files will be automatically deleted." -msgstr "" +msgstr "定义通过邮件发送的导出报告在系统中保留的时长。较早的文件将被自动删除。" #. Description of a DocType #: frappe/workflow/doctype/workflow/workflow.json @@ -6914,7 +6942,7 @@ msgstr "已逾期" #: frappe/core/doctype/user_permission/user_permission_list.js:189 #: frappe/public/js/frappe/form/footer/form_timeline.js:627 #: frappe/public/js/frappe/form/grid.js:66 -#: frappe/public/js/frappe/form/toolbar.js:464 +#: frappe/public/js/frappe/form/toolbar.js:490 #: frappe/public/js/frappe/views/reports/report_view.js:1764 #: frappe/public/js/frappe/views/treeview.js:329 #: frappe/public/js/frappe/web_form/web_form_list.js:283 @@ -6945,7 +6973,7 @@ msgstr "全部删除" #. 'System Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "Delete Background Exported Reports After (Hours)" -msgstr "" +msgstr "后台导出报告删除时限(小时)" #: frappe/public/js/form_builder/components/Section.vue:196 msgctxt "Title of confirmation dialog" @@ -7077,7 +7105,7 @@ msgstr "删除 {0} 笔单据..." #. Request' #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json msgid "Deletion Steps" -msgstr "" +msgstr "删除步骤" #: frappe/core/doctype/page/page.py:110 #: frappe/desk/doctype/dashboard_chart_source/dashboard_chart_source.py:47 @@ -7267,7 +7295,7 @@ msgstr "桌面图标已经存在" #: frappe/public/js/form_builder/components/Tabs.vue:92 #: frappe/public/js/form_builder/store.js:259 #: frappe/public/js/form_builder/utils.js:38 -#: frappe/public/js/frappe/form/layout.js:152 +#: frappe/public/js/frappe/form/layout.js:154 #: frappe/public/js/frappe/views/treeview.js:292 msgid "Details" msgstr "详细信息" @@ -7351,7 +7379,7 @@ msgstr "禁用SMTP服务器认证" #. Label of the disable_scrolling (Check) field in DocType 'List View Settings' #: frappe/desk/doctype/list_view_settings/list_view_settings.json msgid "Disable Scrolling" -msgstr "" +msgstr "禁用滚动" #. Label of the disable_sidebar_stats (Check) field in DocType 'List View #. Settings' @@ -7423,7 +7451,7 @@ msgstr "禁用" msgid "Disabled Auto Reply" msgstr "禁用自动回复" -#: frappe/public/js/frappe/form/toolbar.js:338 +#: frappe/public/js/frappe/form/toolbar.js:364 #: frappe/public/js/frappe/views/dashboard/dashboard_view.js:71 #: frappe/public/js/frappe/views/workspace/workspace.js:351 #: frappe/public/js/frappe/web_form/web_form.js:193 @@ -7504,7 +7532,7 @@ msgstr "分隔线" #. Label of the do_not_create_new_user (Check) field in DocType 'LDAP Settings' #: frappe/integrations/doctype/ldap_settings/ldap_settings.json msgid "Do Not Create New User" -msgstr "" +msgstr "不创建新用户" #. Description of the 'Do Not Create New User' (Check) field in DocType 'LDAP #. Settings' @@ -7512,13 +7540,13 @@ msgstr "" msgid "Do not create new user if user with email does not exist in the system" msgstr "如果系统中不存在该邮箱用户,则不创建新用户" -#: frappe/public/js/frappe/form/grid.js:1195 +#: frappe/public/js/frappe/form/grid.js:1215 msgid "Do not edit headers which are preset in the template" msgstr "不要编辑模板中预设的标题" #: frappe/public/js/frappe/router.js:624 msgid "Do not warn me again about {0}" -msgstr "" +msgstr "不再就{0}向我发出警告" #: frappe/core/doctype/system_settings/system_settings.js:71 msgid "Do you still want to proceed?" @@ -7677,7 +7705,7 @@ msgstr "单据类型在应用中里是一个表/表单。" msgid "DocType must be Submittable for the selected Doc Event" msgstr "DocType必须为所选Doc事件提交" -#: frappe/client.py:403 +#: frappe/client.py:414 msgid "DocType must be a string" msgstr "文档类型必须为字符串" @@ -7698,11 +7726,11 @@ msgstr "此工作流适用的单据类型。" msgid "DocType required" msgstr "需指定文档类型" -#: frappe/modules/utils.py:175 +#: frappe/modules/utils.py:176 msgid "DocType {0} does not exist." msgstr "文档类型 {0} 不存在" -#: frappe/modules/utils.py:238 +#: frappe/modules/utils.py:243 msgid "DocType {} not found" msgstr "未找到文档类型 {}" @@ -7813,7 +7841,7 @@ msgstr "文档链接第 #{0} 行:内部链接必须指定表字段名" msgid "Document Name" msgstr "单据编号" -#: frappe/client.py:406 +#: frappe/client.py:417 msgid "Document Name must be a string" msgstr "文档名称必须为字符串" @@ -7989,7 +8017,7 @@ msgid "Document Types and Permissions" msgstr "单据类型与权限" #: frappe/core/doctype/submission_queue/submission_queue.py:163 -#: frappe/model/document.py:1988 +#: frappe/model/document.py:1992 msgid "Document Unlocked" msgstr "文档已解锁" @@ -8017,11 +8045,11 @@ msgstr "只有具有角色的用户才能编辑文档" msgid "Document not Relinked" msgstr "文档未重新链接" -#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:155 +#: frappe/model/rename_doc.py:229 frappe/public/js/frappe/form/toolbar.js:159 msgid "Document renamed from {0} to {1}" msgstr "已将单据编号(名称){0} 变更为 {1}" -#: frappe/public/js/frappe/form/toolbar.js:164 +#: frappe/public/js/frappe/form/toolbar.js:168 msgid "Document renaming from {0} to {1} has been queued" msgstr "文档重命名(从 {0} 到 {1})已加入队列" @@ -8037,7 +8065,7 @@ msgstr "文档 {0} 已恢复" msgid "Document {0} has been set to state {1} by {2}" msgstr "单据{0}已被{2}设置为状态{1}" -#: frappe/client.py:430 +#: frappe/client.py:441 msgid "Document {0} {1} does not exist" msgstr "文档 {0} {1} 不存在" @@ -8197,7 +8225,7 @@ msgstr "下载您的数据" #: frappe/core/doctype/prepared_report/prepared_report.js:49 msgid "Download as CSV" -msgstr "" +msgstr "下载为CSV" #: frappe/contacts/doctype/contact/contact.js:98 msgid "Download vCard" @@ -8264,7 +8292,7 @@ msgid "Due Date Based On" msgstr "到期日基于" #: frappe/public/js/frappe/form/grid_row_form.js:42 -#: frappe/public/js/frappe/form/toolbar.js:422 +#: frappe/public/js/frappe/form/toolbar.js:448 msgid "Duplicate" msgstr "复制" @@ -8282,7 +8310,7 @@ msgstr "名称重复" #: frappe/public/js/frappe/form/grid.js:66 msgid "Duplicate Row" -msgstr "" +msgstr "重复行" #: frappe/public/js/frappe/form/form.js:210 msgid "Duplicate current row" @@ -8379,7 +8407,7 @@ msgstr "退出" #: frappe/public/js/frappe/form/footer/form_timeline.js:678 #: frappe/public/js/frappe/form/templates/address_list.html:13 #: frappe/public/js/frappe/form/templates/contact_list.html:13 -#: frappe/public/js/frappe/form/toolbar.js:748 +#: frappe/public/js/frappe/form/toolbar.js:774 #: frappe/public/js/frappe/views/reports/query_report.js:888 #: frappe/public/js/frappe/views/reports/query_report.js:1810 #: frappe/public/js/frappe/views/workspace/workspace.js:64 @@ -8428,7 +8456,7 @@ msgstr "编辑自定义块" msgid "Edit Custom HTML" msgstr "编辑自定义HTML" -#: frappe/public/js/frappe/form/toolbar.js:619 +#: frappe/public/js/frappe/form/toolbar.js:645 msgid "Edit DocType" msgstr "修改单据类型" @@ -8613,7 +8641,7 @@ msgstr "元素选择器" #: frappe/email/doctype/email_unsubscribe/email_unsubscribe.json #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/form/success_action.js:85 -#: frappe/public/js/frappe/form/toolbar.js:382 +#: frappe/public/js/frappe/form/toolbar.js:408 #: frappe/templates/includes/comments/comments.html:25 #: frappe/templates/signup.html:9 #: frappe/website/doctype/personal_data_deletion_request/personal_data_deletion_request.json @@ -8660,7 +8688,7 @@ msgstr "未设置电子邮件账户。请通过 设置 > 电子邮件账户 创 #: frappe/email/doctype/email_account/email_account.py:576 msgid "Email Account {0} Disabled" -msgstr "" +msgstr "邮件账户{0}已禁用" #. Label of the email_id (Data) field in DocType 'Address' #. Label of the email_id (Data) field in DocType 'Contact' @@ -8672,7 +8700,7 @@ msgstr "" #: frappe/email/doctype/email_account/email_account.json #: frappe/integrations/doctype/google_contacts/google_contacts.json #: frappe/www/complete_signup.html:11 frappe/www/login.html:184 -#: frappe/www/login.html:216 +#: frappe/www/login.html:211 msgid "Email Address" msgstr "电子邮箱" @@ -8822,7 +8850,7 @@ msgstr "电子邮件同步选项" #: frappe/automation/workspace/tools/tools.json #: frappe/core/doctype/communication/communication.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/public/js/frappe/views/communication.js:107 +#: frappe/public/js/frappe/views/communication.js:98 msgid "Email Template" msgstr "电子邮件模板" @@ -8854,7 +8882,7 @@ msgstr "电子邮件已被移至垃圾桶" msgid "Email is mandatory to create User Email" msgstr "创建用户电子邮件时必须填写邮箱地址" -#: frappe/public/js/frappe/views/communication.js:822 +#: frappe/public/js/frappe/views/communication.js:813 msgid "Email not sent to {0} (unsubscribed / disabled)" msgstr "电子邮件不会被发送到{0}(退订/禁用)" @@ -8895,7 +8923,7 @@ msgstr "嵌入代码已复制" #: frappe/database/query.py:1539 msgid "Empty alias is not allowed" -msgstr "" +msgstr "不允许使用空别名" #: frappe/public/js/form_builder/components/Section.vue:285 msgid "Empty column" @@ -8903,7 +8931,7 @@ msgstr "空栏" #: frappe/database/query.py:1457 msgid "Empty string arguments are not allowed" -msgstr "" +msgstr "不允许使用空字符串参数" #. Label of the enable (Check) field in DocType 'Google Calendar' #. Label of the enable (Check) field in DocType 'Google Contacts' @@ -8917,7 +8945,7 @@ msgstr "启用" #. Label of the enable_action_confirmation (Check) field in DocType 'Workflow' #: frappe/workflow/doctype/workflow/workflow.json msgid "Enable Action Confirmation" -msgstr "" +msgstr "启用操作确认" #. Label of the enable_address_autocompletion (Check) field in DocType #. 'Geolocation Settings' @@ -8949,7 +8977,7 @@ msgstr "启用评论" #. 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Enable Dynamic Client Registration" -msgstr "" +msgstr "启用动态客户端注册" #. Label of the enable_email_notifications (Check) field in DocType #. 'Notification Settings' @@ -9051,7 +9079,7 @@ msgstr "启用页面访问跟踪" #. Label of the enable_two_factor_auth (Check) field in DocType 'System #. Settings' #: frappe/core/doctype/system_settings/system_settings.json -#: frappe/twofactor.py:438 +#: frappe/twofactor.py:447 msgid "Enable Two Factor Auth" msgstr "启用双重验证" @@ -9179,7 +9207,7 @@ msgstr "结束日期不能在开始日期之前!" #: frappe/automation/doctype/auto_repeat/auto_repeat.py:146 msgid "End Date cannot be today." -msgstr "" +msgstr "结束日期不能是今日。" #. Label of the ended_at (Datetime) field in DocType 'RQ Job' #. Label of the ended_at (Datetime) field in DocType 'Submission Queue' @@ -9225,7 +9253,7 @@ msgstr "在Google设置中输入客户端ID和客户端密钥。" msgid "Enter Code displayed in OTP App." msgstr "输入OTP应用中显示的验证码。" -#: frappe/public/js/frappe/views/communication.js:777 +#: frappe/public/js/frappe/views/communication.js:768 msgid "Enter Email Recipient(s)" msgstr "输入电子邮件收件人(S)" @@ -9363,9 +9391,9 @@ msgstr "客户端脚本错误。" msgid "Error in Header/Footer Script" msgstr "页眉/页脚脚本错误" -#: frappe/email/doctype/notification/notification.py:642 -#: frappe/email/doctype/notification/notification.py:782 -#: frappe/email/doctype/notification/notification.py:788 +#: frappe/email/doctype/notification/notification.py:672 +#: frappe/email/doctype/notification/notification.py:811 +#: frappe/email/doctype/notification/notification.py:817 msgid "Error in Notification" msgstr "通知错误" @@ -9375,17 +9403,17 @@ msgstr "打印格式第{0}行错误:{1}" #: frappe/api/v2.py:156 msgid "Error in {0}.get_list: {1}" -msgstr "" +msgstr "{0}.get_list中发生错误:{1}" #: frappe/database/query.py:231 msgid "Error parsing nested filters: {0}" -msgstr "" +msgstr "解析嵌套筛选器时出错:{0}" #: frappe/email/doctype/email_account/email_account.py:670 msgid "Error while connecting to email account {0}" msgstr "连接到电子邮箱帐号{0}时出错" -#: frappe/email/doctype/notification/notification.py:779 +#: frappe/email/doctype/notification/notification.py:808 msgid "Error while evaluating Notification {0}. Please fix your template." msgstr "评估通知{0}时出错。请修复您的模板。" @@ -9540,7 +9568,7 @@ msgstr "执行控制台脚本" #: frappe/public/js/frappe/ui/dropdown_console.js:132 msgid "Executing Code" -msgstr "" +msgstr "执行代码" #: frappe/desk/doctype/system_console/system_console.js:18 msgid "Executing..." @@ -9567,7 +9595,7 @@ msgstr "现有角色" msgid "Expand" msgstr "展开" -#: frappe/public/js/frappe/form/controls/code.js:185 +#: frappe/public/js/frappe/form/controls/code.js:186 msgctxt "Enlarge code field." msgid "Expand" msgstr "展开" @@ -9579,7 +9607,7 @@ msgstr "全部展开" #: frappe/database/query.py:354 msgid "Expected 'and' or 'or' operator, found: {0}" -msgstr "" +msgstr "期望“and”或“or”运算符,实际发现:{0}" #: frappe/public/js/frappe/form/templates/form_sidebar.html:23 msgid "Experimental" @@ -9664,7 +9692,7 @@ msgstr "导出自定义" msgid "Export Data" msgstr "导出数据" -#: frappe/core/doctype/data_import/data_import.js:86 +#: frappe/core/doctype/data_import/data_import.js:87 #: frappe/public/js/frappe/data_import/import_preview.js:199 msgid "Export Errored Rows" msgstr "导出出错记录" @@ -9674,7 +9702,7 @@ msgstr "导出出错记录" msgid "Export From" msgstr "单据" -#: frappe/core/doctype/data_import/data_import.js:518 +#: frappe/core/doctype/data_import/data_import.js:544 msgid "Export Import Log" msgstr "导出导入日志" @@ -9701,7 +9729,7 @@ msgstr "压缩导出" #: frappe/public/js/frappe/views/reports/report_utils.js:184 msgid "Export in Background" -msgstr "" +msgstr "后台导出" #: frappe/public/js/frappe/utils/tools.js:11 msgid "Export not allowed. You need {0} role to export." @@ -9850,7 +9878,7 @@ msgstr "未能删除 {0} 个单据: {1}" msgid "Failed to enable scheduler: {0}" msgstr "启动后台任务 {0} 失败" -#: frappe/email/doctype/notification/notification.py:105 +#: frappe/email/doctype/notification/notification.py:107 #: frappe/integrations/doctype/webhook/webhook.py:131 msgid "Failed to evaluate conditions: {}" msgstr "条件评估失败:{}" @@ -9887,11 +9915,11 @@ msgstr "导入虚拟文档类型{}失败,控制器文件是否存在?" msgid "Failed to optimize image: {0}" msgstr "图像优化失败:{0}" -#: frappe/email/doctype/notification/notification.py:122 +#: frappe/email/doctype/notification/notification.py:124 msgid "Failed to render message: {}" msgstr "消息渲染失败:{}" -#: frappe/email/doctype/notification/notification.py:140 +#: frappe/email/doctype/notification/notification.py:142 msgid "Failed to render subject: {}" msgstr "主题渲染失败:{}" @@ -9921,7 +9949,7 @@ msgstr "调用API {0}时失败" msgid "Failing Scheduled Jobs (last 7 days)" msgstr "失败的计划任务(最近7天)" -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 msgid "Failure" msgstr "故障" @@ -9981,6 +10009,10 @@ msgstr "保存时仅字段为空才赋值" msgid "Fetching default Global Search documents." msgstr "正在获取默认全局搜索文档。" +#: frappe/website/doctype/web_form/web_form.js:168 +msgid "Fetching fields from {0}..." +msgstr "" + #. Label of the field (Select) field in DocType 'Assignment Rule' #. Label of the field (Select) field in DocType 'Document Naming Rule #. Condition' @@ -10079,13 +10111,13 @@ msgstr "字段{0}引用了不存在的文档类型{1}。" #: frappe/core/doctype/doctype/doctype.py:1655 msgid "Field {0} must be a virtual field to support virtual doctype." -msgstr "" +msgstr "字段{0}必须为虚拟字段以支持虚拟文档类型。" #: frappe/public/js/frappe/form/form.js:1768 msgid "Field {0} not found." msgstr "找不到字段{0}。" -#: frappe/email/doctype/notification/notification.py:547 +#: frappe/email/doctype/notification/notification.py:559 msgid "Field {0} on document {1} is neither a Mobile number field nor a Customer or User link" msgstr "文档{1}的字段{0}既不是手机号码字段,也不是客户或用户链接字段" @@ -10186,7 +10218,7 @@ msgstr "启用as_list时字段必须为列表或元组" #: frappe/database/query.py:613 msgid "Fields must be a string, list, tuple, pypika Field, or pypika Function" -msgstr "" +msgstr "字段必须为字符串、列表、元组、pypika字段或pypika函数" #. Description of the 'Search Fields' (Data) field in DocType 'Customize Form' #: frappe/custom/doctype/customize_form/customize_form.json @@ -10318,7 +10350,7 @@ msgstr "文件" #: frappe/email/doctype/auto_email_report/auto_email_report.js:93 #: frappe/public/js/frappe/list/base_list.js:970 #: frappe/public/js/frappe/ui/filters/filter_list.js:134 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 msgid "Filter" msgstr "过滤条件" @@ -10355,11 +10387,11 @@ msgstr "过滤值" #: frappe/database/query.py:360 msgid "Filter condition missing after operator: {0}" -msgstr "" +msgstr "运算符后缺少筛选条件:{0}" #: frappe/database/query.py:427 msgid "Filter fields cannot contain backticks (`)." -msgstr "" +msgstr "筛选字段不能包含反引号(`)。" #: frappe/printing/page/print_format_builder/print_format_builder_sidebar.html:3 msgid "Filter..." @@ -10416,7 +10448,7 @@ msgstr "显示过滤条件" #. Label of the filters_editor (HTML) field in DocType 'Notification' #: frappe/email/doctype/notification/notification.json msgid "Filters Editor" -msgstr "" +msgstr "筛选器编辑器" #. Label of the filters_json (Code) field in DocType 'Dashboard Chart' #. Label of the filters_json (Code) field in DocType 'Number Card' @@ -10578,7 +10610,7 @@ msgid "Folio" msgstr "页码" #: frappe/public/js/frappe/form/templates/form_sidebar.html:106 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Follow" msgstr "关注" @@ -10586,7 +10618,7 @@ msgstr "关注" msgid "Followed by" msgstr "被谁关注" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:132 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:134 msgid "Following Report Filters have missing values:" msgstr "缺少以下报表过滤条件" @@ -10773,7 +10805,7 @@ msgstr "允许值" #. Description of the 'Subject' (Data) field in DocType 'Notification' #: frappe/email/doctype/notification/notification.json msgid "For a dynamic subject, use Jinja tags like this: {{ doc.name }} Delivered" -msgstr "" +msgstr "如需动态主题,请使用Jinja标签,例如:{{ doc.name }} 已交付" #: frappe/public/js/frappe/views/reports/query_report.js:2156 #: frappe/public/js/frappe/views/reports/report_view.js:108 @@ -10944,7 +10976,7 @@ msgstr "转发" #. Route Redirect' #: frappe/website/doctype/website_route_redirect/website_route_redirect.json msgid "Forward Query Parameters" -msgstr "" +msgstr "转发查询参数" #. Label of the forward_to_email (Data) field in DocType 'Contact Us Settings' #: frappe/website/doctype/contact_us_settings/contact_us_settings.json @@ -10971,11 +11003,11 @@ msgstr "Frappe" #: frappe/public/js/frappe/ui/toolbar/about.js:11 msgid "Frappe Blog" -msgstr "" +msgstr "Frappe博客" #: frappe/public/js/frappe/ui/toolbar/about.js:11 msgid "Frappe Forum" -msgstr "" +msgstr "Frappe论坛" #: frappe/public/js/frappe/ui/toolbar/about.js:8 msgid "Frappe Framework" @@ -11050,11 +11082,16 @@ msgstr "星期五" msgid "From" msgstr "从" -#: frappe/public/js/frappe/views/communication.js:197 +#: frappe/public/js/frappe/views/communication.js:188 msgctxt "Email Sender" msgid "From" msgstr "从" +#. Label of the from_attach_field (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Attach Field" +msgstr "" + #. Label of the from_date (Date) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json #: frappe/website/report/website_analytics/website_analytics.js:8 @@ -11070,6 +11107,11 @@ msgstr "开始日期字段" msgid "From Document Type" msgstr "单据类型" +#. Option for the 'Attach Files' (Select) field in DocType 'Notification' +#: frappe/email/doctype/notification/notification.json +msgid "From Field" +msgstr "" + #. Label of the sender_full_name (Data) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json msgid "From Full Name" @@ -11130,11 +11172,11 @@ msgstr "方法 {0} 申明前未添加@frappe.whitelist()装饰器" #: frappe/database/query.py:1419 msgid "Function {0} requires arguments but none were provided" -msgstr "" +msgstr "函数{0}需要参数但未提供任何参数" #: frappe/public/js/frappe/views/treeview.js:419 msgid "Further sub-groups can only be created under records marked as 'Group'" -msgstr "" +msgstr "仅可在标记为“组”的记录下创建进一步子组" #: frappe/core/doctype/communication/communication.js:291 msgid "Fw: {0}" @@ -11205,7 +11247,7 @@ msgstr "生成随机密码" #. DocType 'Auto Repeat' #: frappe/automation/doctype/auto_repeat/auto_repeat.json msgid "Generate Separate Documents For Each Assignee" -msgstr "" +msgstr "为每位负责人生成独立文档" #: frappe/public/js/frappe/ui/toolbar/toolbar.js:178 #: frappe/public/js/frappe/utils/utils.js:1827 @@ -11231,7 +11273,7 @@ msgstr "地理位置" msgid "Geolocation Settings" msgstr "地理位置设置" -#: frappe/email/doctype/notification/notification.js:226 +#: frappe/email/doctype/notification/notification.js:234 msgid "Get Alerts for Today" msgstr "获取今天的预警通知" @@ -11323,7 +11365,7 @@ msgstr "全局访问" msgid "Global Unsubscribe" msgstr "全部退订" -#: frappe/public/js/frappe/form/toolbar.js:843 +#: frappe/public/js/frappe/form/toolbar.js:869 msgid "Go" msgstr "确定" @@ -11371,7 +11413,7 @@ msgstr "表单填写完成后跳转至此URL" msgid "Go to {0}" msgstr "转到{0}" -#: frappe/core/doctype/data_import/data_import.js:92 +#: frappe/core/doctype/data_import/data_import.js:93 #: frappe/core/doctype/doctype/doctype.js:55 #: frappe/custom/doctype/customize_form/customize_form.js:104 #: frappe/custom/doctype/doctype_layout/doctype_layout.js:42 @@ -11611,7 +11653,7 @@ msgstr "创建仪表板图表需要分组依据字段" #: frappe/database/query.py:752 msgid "Group By must be a string" -msgstr "" +msgstr "分组依据必须为字符串" #. Label of the ldap_group_objectclass (Data) field in DocType 'LDAP Settings' #: frappe/integrations/doctype/ldap_settings/ldap_settings.json @@ -11750,7 +11792,7 @@ msgstr "有角色" #. Application' #: frappe/core/doctype/installed_application/installed_application.json msgid "Has Setup Wizard" -msgstr "" +msgstr "包含设置向导" #. Label of the has_web_view (Check) field in DocType 'DocType' #: frappe/core/doctype/doctype/doctype.json @@ -11810,7 +11852,7 @@ msgstr "头" #: frappe/email/email_body.py:322 msgid "Headers must be a dictionary" -msgstr "" +msgstr "请求头必须为字典类型" #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' @@ -11944,7 +11986,7 @@ msgstr "隐藏字段" #: frappe/public/js/frappe/views/reports/query_report.js:1669 msgid "Hidden columns include: {0}" -msgstr "" +msgstr "隐藏列包括:{0}" #. Option for the 'Page Number' (Select) field in DocType 'Print Format' #: frappe/printing/doctype/print_format/print_format.json @@ -12068,7 +12110,7 @@ msgstr "隐藏周末" msgid "Hide descendant records of For Value." msgstr "隐藏下层节点" -#: frappe/public/js/frappe/form/layout.js:293 +#: frappe/public/js/frappe/form/layout.js:295 msgid "Hide details" msgstr "隐藏细节" @@ -12192,7 +12234,7 @@ msgstr "货币应该如何格式化?未设置将使用系统默认" #. Description of the 'Resource Name' (Data) field in DocType 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Human-readable name intended for display to the end user." -msgstr "" +msgstr "面向最终用户显示的人类可读名称。" #. Paragraph text in the Welcome Workspace Workspace #: frappe/core/workspace/welcome_workspace/welcome_workspace.json @@ -12329,7 +12371,7 @@ msgstr "如果角色没有0级的访问权限,那么无需设置更高级权 #. 'Workflow' #: frappe/workflow/doctype/workflow/workflow.json msgid "If checked, a confirmation will be required before performing workflow actions." -msgstr "" +msgstr "若勾选,执行工作流操作前将需要确认。" #. Description of the 'Is Active' (Check) field in DocType 'Workflow' #: frappe/workflow/doctype/workflow/workflow.json @@ -12453,7 +12495,7 @@ msgstr "如果这些说明没有帮助,请在Github提交你的建议。" #: frappe/templates/emails/user_invitation_cancelled.html:8 msgid "If this was a mistake or you need access again, please reach out to your team." -msgstr "" +msgstr "若此为误操作或您需要重新获取访问权限,请联系您的团队。" #. Description of the 'Fetch on Save if Empty' (Check) field in DocType #. 'DocField' @@ -12488,7 +12530,7 @@ msgstr "如果你在上传新纪录,那么单据编号(ID)列必须留空。" #: frappe/templates/emails/user_invitation.html:19 msgid "If you have any questions, reach out to your system administrator." -msgstr "" +msgstr "如有任何疑问,请联系系统管理员。" #: frappe/utils/password.py:213 msgid "If you have recently restored the site, you may need to copy the site_config.json containing the original encryption key." @@ -12751,11 +12793,11 @@ msgstr "导入模板须为.csv、.xlsx或.xls格式" msgid "Import template should contain a Header and atleast one row." msgstr "导入模板需包含标题行和至少一行数据" -#: frappe/core/doctype/data_import/data_import.js:165 +#: frappe/core/doctype/data_import/data_import.js:171 msgid "Import timed out, please re-try." msgstr "导入超时,请重试" -#: frappe/core/doctype/data_import/data_import.py:68 +#: frappe/core/doctype/data_import/data_import.py:70 msgid "Importing {0} is not allowed." msgstr "禁止导入{0}" @@ -12908,7 +12950,7 @@ msgstr "包括过滤条件" #: frappe/public/js/frappe/views/reports/query_report.js:1667 msgid "Include hidden columns" -msgstr "" +msgstr "包含隐藏列" #: frappe/public/js/frappe/views/reports/query_report.js:1639 msgid "Include indentation" @@ -13104,7 +13146,7 @@ msgstr "插入样式" #: frappe/public/js/frappe/ui/toolbar/about.js:11 msgid "Instagram" -msgstr "" +msgstr "Instagram" #: frappe/public/js/frappe/ui/toolbar/search_utils.js:678 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:679 @@ -13258,7 +13300,7 @@ msgstr "无效" #: frappe/public/js/form_builder/utils.js:221 #: frappe/public/js/frappe/form/grid_row.js:850 -#: frappe/public/js/frappe/form/layout.js:818 +#: frappe/public/js/frappe/form/layout.js:820 #: frappe/public/js/frappe/views/reports/report_view.js:721 msgid "Invalid \"depends_on\" expression" msgstr "“depends_on”表达式无效" @@ -13305,7 +13347,7 @@ msgstr "无效文档类型:{0}" #: frappe/email/doctype/email_group/email_group.py:51 msgid "Invalid Doctype" -msgstr "" +msgstr "无效文档类型" #: frappe/core/doctype/doctype/doctype.py:1273 msgid "Invalid Fieldname" @@ -13318,7 +13360,7 @@ msgstr "文件URL无效" #: frappe/database/query.py:429 frappe/database/query.py:456 #: frappe/database/query.py:466 frappe/database/query.py:489 msgid "Invalid Filter" -msgstr "" +msgstr "无效筛选器" #: frappe/public/js/form_builder/store.js:221 msgid "Invalid Filter Format for field {0} of type {1}. Try using filter icon on the field to set it correctly" @@ -13352,6 +13394,8 @@ msgstr "无效的邮件服务器,请纠正后重试。" msgid "Invalid Naming Series: {}" msgstr "无效命名规则:{}" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 #: frappe/core/doctype/rq_job/rq_job.py:122 msgid "Invalid Operation" @@ -13366,7 +13410,7 @@ msgstr "错误选项" msgid "Invalid Outgoing Mail Server or Port: {0}" msgstr "出站邮件服务器或端口无效:{0}" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:200 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:202 msgid "Invalid Output Format" msgstr "无效的输出格式" @@ -13430,27 +13474,27 @@ msgstr "无效聚合函数" #: frappe/database/query.py:1544 msgid "Invalid alias format: {0}. Alias must be a simple identifier." -msgstr "" +msgstr "别名格式无效:{0}。别名必须为简单标识符。" #: frappe/core/doctype/user_invitation/user_invitation.py:195 msgid "Invalid app" -msgstr "" +msgstr "无效应用" #: frappe/database/query.py:1470 msgid "Invalid argument format: {0}. Only quoted string literals or simple field names are allowed." -msgstr "" +msgstr "参数格式无效:{0}。仅允许带引号的字符串字面量或简单字段名。" #: frappe/database/query.py:1446 msgid "Invalid argument type: {0}. Only strings, numbers, and None are allowed." -msgstr "" +msgstr "参数类型无效:{0}。仅允许字符串、数字和None。" #: frappe/database/query.py:462 msgid "Invalid characters in fieldname: {0}. Only letters, numbers, and underscores are allowed." -msgstr "" +msgstr "字段名包含无效字符:{0}。仅允许字母、数字和下划线。" #: frappe/database/query.py:577 msgid "Invalid characters in table name: {0}" -msgstr "" +msgstr "表名包含无效字符:{0}" #: frappe/public/js/frappe/views/reports/report_view.js:404 msgid "Invalid column" @@ -13458,11 +13502,11 @@ msgstr "无效列" #: frappe/database/query.py:383 msgid "Invalid condition type in nested filters: {0}" -msgstr "" +msgstr "嵌套筛选器中条件类型无效:{0}" #: frappe/database/query.py:789 msgid "Invalid direction in Order By: {0}. Must be 'ASC' or 'DESC'." -msgstr "" +msgstr "排序方向无效:{0}。必须为“ASC”或“DESC”。" #: frappe/model/document.py:1045 frappe/model/document.py:1059 msgid "Invalid docstatus" @@ -13478,23 +13522,23 @@ msgstr "过滤器{0}({1})中的表达式无效" #: frappe/database/query.py:1303 msgid "Invalid field format for SELECT: {0}. Field names must be simple, backticked, table-qualified, aliased, or '*'." -msgstr "" +msgstr "SELECT字段格式无效:{0}。字段名必须为简单名称、反引号包裹、表限定、别名或“*”。" #: frappe/database/query.py:736 msgid "Invalid field format in {0}: {1}. Use 'field', 'link_field.field', or 'child_table.field'." -msgstr "" +msgstr "{0}中字段格式无效:{1}。请使用“字段”、“链接字段.字段”或“子表.字段”。" #: frappe/database/query.py:1622 msgid "Invalid field name in function: {0}. Only simple field names are allowed." -msgstr "" +msgstr "函数中字段名无效:{0}。仅允许简单字段名。" -#: frappe/utils/data.py:2241 +#: frappe/utils/data.py:2288 msgid "Invalid field name {0}" msgstr "字段名称{0}无效" #: frappe/database/query.py:670 msgid "Invalid field type: {0}" -msgstr "" +msgstr "字段类型无效:{0}" #: frappe/core/doctype/doctype/doctype.py:1086 msgid "Invalid fieldname '{0}' in autoname" @@ -13506,11 +13550,11 @@ msgstr "无效的文件路径:{0}" #: frappe/database/query.py:366 msgid "Invalid filter condition: {0}. Expected a list or tuple." -msgstr "" +msgstr "筛选条件无效:{0}。期望为列表或元组。" #: frappe/database/query.py:452 msgid "Invalid filter field format: {0}. Use 'fieldname' or 'link_fieldname.target_fieldname'." -msgstr "" +msgstr "筛选字段格式无效:{0}。请使用“字段名”或“链接字段名.目标字段名”。" #: frappe/public/js/frappe/ui/filters/filter_list.js:201 msgid "Invalid filter: {0}" @@ -13518,15 +13562,15 @@ msgstr "无效过滤器:{0}" #: frappe/database/query.py:1424 msgid "Invalid function argument type: {0}. Only strings, numbers, lists, and None are allowed." -msgstr "" +msgstr "函数参数类型无效:{0}。仅允许字符串、数字、列表和None。" #: frappe/database/query.py:1385 msgid "Invalid function dictionary format" -msgstr "" +msgstr "函数字典格式无效" #: frappe/core/api/user_invitation.py:17 msgid "Invalid input" -msgstr "" +msgstr "输入无效" #: frappe/desk/doctype/dashboard/dashboard.py:67 #: frappe/desk/doctype/dashboard_chart/dashboard_chart.py:424 @@ -13535,7 +13579,7 @@ msgstr "自定义选项中包含无效JSON:{0}" #: frappe/core/api/user_invitation.py:115 msgid "Invalid key" -msgstr "" +msgstr "密钥无效" #: frappe/model/naming.py:498 msgid "Invalid name type (integer) for varchar name column" @@ -13547,7 +13591,7 @@ msgstr "命名规则{}错误:缺少点号(.)" #: frappe/model/naming.py:76 msgid "Invalid naming series {}: dot (.) missing before the numeric placeholders. Kindly use a format like ABCD.#####." -msgstr "" +msgstr "命名序列{}无效:数字占位符前缺少点号(.)。请使用类似ABCD.#####的格式。" #: frappe/core/doctype/data_import/importer.py:453 msgid "Invalid or corrupted content for import" @@ -13563,23 +13607,23 @@ msgstr "请求参数无效" #: frappe/app.py:327 msgid "Invalid request body" -msgstr "" +msgstr "请求正文无效" #: frappe/core/doctype/user_invitation/user_invitation.py:181 msgid "Invalid role" -msgstr "" +msgstr "角色无效" #: frappe/database/query.py:412 msgid "Invalid simple filter format: {0}" -msgstr "" +msgstr "简单筛选器格式无效:{0}" #: frappe/database/query.py:343 msgid "Invalid start for filter condition: {0}. Expected a list or tuple." -msgstr "" +msgstr "筛选条件起始格式无效:{0}。期望为列表或元组。" #: frappe/database/query.py:1491 msgid "Invalid string literal format: {0}" -msgstr "" +msgstr "字符串字面量格式无效:{0}" #: frappe/core/doctype/data_import/importer.py:430 msgid "Invalid template file for import" @@ -13618,35 +13662,35 @@ msgstr "反转" #: frappe/core/doctype/user_invitation/user_invitation.py:95 msgid "Invitation already accepted" -msgstr "" +msgstr "邀请已被接受" #: frappe/core/doctype/user_invitation/user_invitation.py:99 msgid "Invitation already exists" -msgstr "" +msgstr "邀请已存在" #: frappe/core/api/user_invitation.py:84 msgid "Invitation cannot be cancelled" -msgstr "" +msgstr "邀请无法取消" #: frappe/core/doctype/user_invitation/user_invitation.py:127 msgid "Invitation is cancelled" -msgstr "" +msgstr "邀请已取消" #: frappe/core/doctype/user_invitation/user_invitation.py:125 msgid "Invitation is expired" -msgstr "" +msgstr "邀请已过期" #: frappe/core/api/user_invitation.py:73 frappe/core/api/user_invitation.py:78 msgid "Invitation not found" -msgstr "" +msgstr "未找到邀请" #: frappe/core/doctype/user_invitation/user_invitation.py:59 msgid "Invitation to join {0} cancelled" -msgstr "" +msgstr "加入{0}的邀请已取消" #: frappe/core/doctype/user_invitation/user_invitation.py:76 msgid "Invitation to join {0} expired" -msgstr "" +msgstr "加入{0}的邀请已过期" #: frappe/contacts/doctype/contact/contact.js:30 msgid "Invite as User" @@ -13701,7 +13745,7 @@ msgstr "完成了" #. Label of the is_current (Check) field in DocType 'User Session Display' #: frappe/core/doctype/user_session_display/user_session_display.json msgid "Is Current" -msgstr "" +msgstr "是否为当前" #. Label of the is_custom (Check) field in DocType 'Role' #. Label of the is_custom (Check) field in DocType 'User Document Type' @@ -13771,7 +13815,7 @@ msgstr "首选" #: frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.py:43 msgid "Is Primary Address" -msgstr "" +msgstr "是否为主要地址" #. Label of the is_primary_contact (Check) field in DocType 'Contact' #: frappe/contacts/doctype/contact/contact.json @@ -13826,7 +13870,7 @@ msgstr "是否为远程请求" #. Application' #: frappe/core/doctype/installed_application/installed_application.json msgid "Is Setup Complete?" -msgstr "" +msgstr "设置是否完成?" #. Label of the issingle (Check) field in DocType 'DocType' #. Label of the is_single (Check) field in DocType 'Onboarding Step' @@ -14023,24 +14067,31 @@ msgstr "任务名" msgid "Job Status" msgstr "任务状态" +#: frappe/core/doctype/data_import/data_import.js:191 #: frappe/core/doctype/rq_job/rq_job.js:24 msgid "Job Stopped Successfully" msgstr "作业已成功停止" #: frappe/core/doctype/rq_job/rq_job.py:121 msgid "Job is in {0} state and can't be cancelled" -msgstr "" +msgstr "任务处于{0}状态,无法取消" +#: frappe/core/doctype/data_import/data_import.py:167 +#: frappe/core/doctype/prepared_report/prepared_report.py:200 #: frappe/core/doctype/rq_job/rq_job.py:113 msgid "Job is not running." msgstr "作业未运行。" +#: frappe/core/doctype/prepared_report/prepared_report.py:198 +msgid "Job stopped successfully" +msgstr "" + #: frappe/desk/doctype/event/event.js:55 msgid "Join video conference with {0}" msgstr "加入与{0}的视频会议" -#: frappe/public/js/frappe/form/toolbar.js:398 -#: frappe/public/js/frappe/form/toolbar.js:833 +#: frappe/public/js/frappe/form/toolbar.js:424 +#: frappe/public/js/frappe/form/toolbar.js:859 msgid "Jump to field" msgstr "定位到字段" @@ -14492,7 +14543,7 @@ msgstr "上季度" #. Label of the last_received_at (Datetime) field in DocType 'Email Account' #: frappe/email/doctype/email_account/email_account.json msgid "Last Received At" -msgstr "" +msgstr "最后接收时间" #. Label of the last_reset_password_key_generated_on (Datetime) field in #. DocType 'User' @@ -14518,7 +14569,7 @@ msgstr "最后同步" #. Label of the last_updated (Datetime) field in DocType 'User Session Display' #: frappe/core/doctype/user_session_display/user_session_display.json msgid "Last Updated" -msgstr "" +msgstr "最后更新" #: frappe/model/meta.py:57 frappe/public/js/frappe/model/meta.js:213 #: frappe/public/js/frappe/model/model.js:130 @@ -14791,7 +14842,7 @@ msgstr "最大数量" #: frappe/database/query.py:116 msgid "Limit must be a non-negative integer" -msgstr "" +msgstr "限制必须为非负整数" #. Option for the 'Type' (Select) field in DocType 'Dashboard Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json @@ -15092,7 +15143,7 @@ msgstr "载入中" msgid "Loading Filters..." msgstr "正在加载筛选器..." -#: frappe/core/doctype/data_import/data_import.js:257 +#: frappe/core/doctype/data_import/data_import.js:283 msgid "Loading import file..." msgstr "加载上传文件..." @@ -15124,7 +15175,7 @@ msgstr "日志" #. Label of the log_api_requests (Check) field in DocType 'System Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "Log API Requests" -msgstr "" +msgstr "记录API请求" #. Label of the log_data_section (Section Break) field in DocType 'Access Log' #: frappe/core/doctype/access_log/access_log.json @@ -15227,7 +15278,7 @@ msgstr "登录验证码从{}" msgid "Login and view in Browser" msgstr "在浏览器中登录和查看" -#: frappe/website/doctype/web_form/web_form.js:374 +#: frappe/website/doctype/web_form/web_form.js:387 msgid "Login is required to see web form list view. Enable {0} to see list settings" msgstr "需要登录才能查看Web表单列表视图。启用{0}以查看列表设置" @@ -15264,7 +15315,7 @@ msgstr "登录到{0}" msgid "Login token required" msgstr "需要登录令牌" -#: frappe/www/login.html:126 frappe/www/login.html:210 +#: frappe/www/login.html:126 frappe/www/login.html:205 msgid "Login with Email Link" msgstr "通过邮箱链接登录" @@ -15299,7 +15350,7 @@ msgstr "通过{0}登录" #. Label of the logo_uri (Data) field in DocType 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "Logo URI" -msgstr "" +msgstr "标识URI" #. Option for the 'Operation' (Select) field in DocType 'Activity Log' #: frappe/core/doctype/activity_log/activity_log.json frappe/www/apps.html:59 @@ -15664,7 +15715,7 @@ msgstr "最长长度" #. Label of the max_report_rows (Int) field in DocType 'System Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "Max Report Rows" -msgstr "" +msgstr "最大报告行数" #. Label of the max_value (Int) field in DocType 'Web Form Field' #: frappe/website/doctype/web_form_field/web_form_field.json @@ -15686,7 +15737,7 @@ msgstr "每用户最自动邮件发送报表数" #. Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "Max signups allowed per hour" -msgstr "" +msgstr "每小时允许的最大注册数" #: frappe/core/doctype/doctype/doctype.py:1343 msgid "Max width for type Currency is 100px in row {0}" @@ -15734,7 +15785,7 @@ msgstr "中" msgid "Meeting" msgstr "会议" -#: frappe/email/doctype/notification/notification.js:200 +#: frappe/email/doctype/notification/notification.js:208 #: frappe/integrations/doctype/webhook/webhook.js:96 msgid "Meets Condition?" msgstr "满足条件?" @@ -15770,7 +15821,7 @@ msgstr "提及" msgid "Menu" msgstr "菜单" -#: frappe/public/js/frappe/form/toolbar.js:242 +#: frappe/public/js/frappe/form/toolbar.js:246 #: frappe/public/js/frappe/model/model.js:705 msgid "Merge with existing" msgstr "与现有合并" @@ -15795,16 +15846,16 @@ msgstr "只有组和组,叶节点和叶节点之间能合并" #: frappe/automation/doctype/auto_repeat/auto_repeat.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/sms_log/sms_log.json #: frappe/core/doctype/success_action/success_action.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/auto_email_report/auto_email_report.json #: frappe/email/doctype/email_queue/email_queue.json -#: frappe/email/doctype/notification/notification.js:205 +#: frappe/email/doctype/notification/notification.js:213 #: frappe/email/doctype/notification/notification.json #: frappe/public/js/frappe/ui/messages.js:182 -#: frappe/public/js/frappe/views/communication.js:126 +#: frappe/public/js/frappe/views/communication.js:117 #: frappe/workflow/doctype/workflow_document_state/workflow_document_state.json #: frappe/www/message.html:3 msgid "Message" @@ -15841,7 +15892,7 @@ msgstr "消息已发送" msgid "Message Type" msgstr "消息类型" -#: frappe/public/js/frappe/views/communication.js:956 +#: frappe/public/js/frappe/views/communication.js:947 msgid "Message clipped" msgstr "邮件被剪辑" @@ -15849,7 +15900,7 @@ msgstr "邮件被剪辑" msgid "Message from server: {0}" msgstr "服务器消息:{0}" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Message not setup" msgstr "消息未设置" @@ -15915,7 +15966,7 @@ msgstr "SEO元标题" #. Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Metadata" -msgstr "" +msgstr "元数据" #. Label of the method (Data) field in DocType 'Access Log' #. Label of the method (Data) field in DocType 'API Request Log' @@ -15959,7 +16010,7 @@ msgstr "中间名" #. Label of a field in the edit-profile Web Form #: frappe/core/web_form/edit_profile/edit_profile.json msgid "Middle Name (Optional)" -msgstr "" +msgstr "中间名(选填)" #. Name of a DocType #. Label of a Link in the Tools Workspace @@ -16035,7 +16086,7 @@ msgstr "缺失字段" msgid "Missing Fields" msgstr "必填字段信息缺失" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:131 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:133 msgid "Missing Filters Required" msgstr "请维护过滤条件" @@ -16170,7 +16221,7 @@ msgstr "模块集合" msgid "Module Profile Name" msgstr "模块集合名称" -#: frappe/desk/doctype/module_onboarding/module_onboarding.py:69 +#: frappe/desk/doctype/module_onboarding/module_onboarding.py:73 msgid "Module onboarding progress reset" msgstr "模块入门进度已重置" @@ -16178,7 +16229,7 @@ msgstr "模块入门进度已重置" msgid "Module to Export" msgstr "模块导出" -#: frappe/modules/utils.py:273 +#: frappe/modules/utils.py:278 msgid "Module {} not found" msgstr "未找到模块{}" @@ -16578,7 +16629,7 @@ msgstr "导航设置" #: frappe/public/js/frappe/list/list_view.js:485 msgid "Need Help?" -msgstr "" +msgstr "需要帮助?" #: frappe/desk/doctype/workspace/workspace.py:322 msgid "Need Workspace Manager role to edit private workspace of other users" @@ -16590,7 +16641,7 @@ msgstr "负值" #: frappe/database/query.py:335 msgid "Nested filters must be provided as a list or tuple." -msgstr "" +msgstr "嵌套筛选器必须作为列表或元组提供。" #: frappe/utils/nestedset.py:94 msgid "Nested set error. Please contact the Administrator." @@ -16605,7 +16656,7 @@ msgstr "网络打印机设置" #. 'System Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "Never" -msgstr "" +msgstr "从不" #. Option for the 'DocType View' (Select) field in DocType 'Workspace Shortcut' #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' @@ -16694,7 +16745,7 @@ msgstr "从网站的联系页面新消息" #. Label of the new_name (Read Only) field in DocType 'Deleted Document' #: frappe/core/doctype/deleted_document/deleted_document.json -#: frappe/public/js/frappe/form/toolbar.js:218 +#: frappe/public/js/frappe/form/toolbar.js:222 #: frappe/public/js/frappe/model/model.js:713 msgid "New Name" msgstr "新名称" @@ -16762,18 +16813,20 @@ msgstr "新建工作区" msgid "New line separated list of allowed public client URLs (eg https://frappe.io), or * to accept all.\n" "
\n" "Public clients are restricted by default." -msgstr "" +msgstr "以换行符分隔的允许公共客户端URL列表(例如https://frappe.io),或使用*接受所有来源。\n" +"
\n" +"默认情况下公共客户端受到限制。" #. Description of the 'Scopes Supported' (Small Text) field in DocType 'OAuth #. Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "New line separated list of scope values." -msgstr "" +msgstr "以换行符分隔的作用域值列表。" #. Description of the 'Contacts' (Small Text) field in DocType 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "New lines separated list of strings representing ways to contact people responsible for this client, typically email addresses." -msgstr "" +msgstr "以换行符分隔的字符串列表,表示联系此客户端负责人的方式,通常为邮件地址。" #: frappe/www/update-password.html:92 msgid "New password cannot be same as old password" @@ -16796,10 +16849,10 @@ msgid "New value to be set" msgstr "要设置的新值" #: frappe/public/js/frappe/form/quick_entry.js:179 -#: frappe/public/js/frappe/form/toolbar.js:37 -#: frappe/public/js/frappe/form/toolbar.js:206 -#: frappe/public/js/frappe/form/toolbar.js:221 -#: frappe/public/js/frappe/form/toolbar.js:561 +#: frappe/public/js/frappe/form/toolbar.js:41 +#: frappe/public/js/frappe/form/toolbar.js:210 +#: frappe/public/js/frappe/form/toolbar.js:225 +#: frappe/public/js/frappe/form/toolbar.js:587 #: frappe/public/js/frappe/model/model.js:612 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:176 #: frappe/public/js/frappe/ui/toolbar/search_utils.js:177 @@ -16884,6 +16937,10 @@ msgstr "审批邮件模板" msgid "Next Actions HTML" msgstr "下一步操作HTML" +#: frappe/public/js/frappe/form/toolbar.js:329 +msgid "Next Document" +msgstr "下一文档" + #. Label of the next_execution (Datetime) field in DocType 'Scheduled Job Type' #: frappe/core/doctype/scheduled_job_type/scheduled_job_type.json msgid "Next Execution" @@ -16951,8 +17008,8 @@ msgstr "点击进入下一步" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:100 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:132 #: frappe/printing/doctype/print_format/print_format.json @@ -16988,7 +17045,7 @@ msgid "No Copy" msgstr "不能复制" #: frappe/core/doctype/data_export/exporter.py:162 -#: frappe/email/doctype/auto_email_report/auto_email_report.py:301 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:303 #: frappe/public/js/form_builder/components/controls/TableControl.vue:64 #: frappe/public/js/frappe/data_import/import_preview.js:146 #: frappe/public/js/frappe/form/multi_select_dialog.js:224 @@ -17011,7 +17068,7 @@ msgstr "未分派电子邮箱帐号" #: frappe/email/doctype/email_group/email_group.py:50 msgid "No Email field found in {0}" -msgstr "" +msgstr "在{0}中未找到邮件字段" #: frappe/public/js/frappe/views/inbox/inbox_view.js:183 msgid "No Emails" @@ -17128,7 +17185,7 @@ msgstr "无未处理事项" msgid "No address added yet." msgstr "未添加地址。" -#: frappe/email/doctype/notification/notification.js:236 +#: frappe/email/doctype/notification/notification.js:244 msgid "No alerts for today" msgstr "今天无预警通知" @@ -17168,6 +17225,10 @@ msgstr "未添加联系人。" msgid "No contacts linked to document" msgstr "文档未关联联系人" +#: frappe/website/doctype/web_form/web_form.js:180 +msgid "No currency fields in {0}" +msgstr "" + #: frappe/desk/query_report.py:381 msgid "No data to export" msgstr "没有要导出的数据" @@ -17186,9 +17247,9 @@ msgstr "此用户未关联邮箱帐号,请在用户收件箱中设置邮箱" #: frappe/core/api/user_invitation.py:17 msgid "No email addresses to invite" -msgstr "" +msgstr "无邮件地址可邀请" -#: frappe/core/doctype/data_import/data_import.js:478 +#: frappe/core/doctype/data_import/data_import.js:504 msgid "No failed logs" msgstr "无出错信息" @@ -17251,7 +17312,7 @@ msgstr "记录数(最大500行)" msgid "No of Sent SMS" msgstr "发送短信数量" -#: frappe/__init__.py:623 frappe/client.py:109 frappe/client.py:151 +#: frappe/__init__.py:623 frappe/client.py:120 frappe/client.py:162 msgid "No permission for {0}" msgstr "无权限操作{0}" @@ -17288,7 +17349,7 @@ msgstr "没有满足条件的记录" msgid "No rows" msgstr "无行数据" -#: frappe/email/doctype/notification/notification.py:135 +#: frappe/email/doctype/notification/notification.py:137 msgid "No subject" msgstr "无主题" @@ -17429,8 +17490,8 @@ msgstr "无权限读取{0}" msgid "Not Published" msgstr "未发布" -#: frappe/public/js/frappe/form/toolbar.js:287 -#: frappe/public/js/frappe/form/toolbar.js:816 +#: frappe/public/js/frappe/form/toolbar.js:291 +#: frappe/public/js/frappe/form/toolbar.js:842 #: frappe/public/js/frappe/model/indicator.js:28 #: frappe/public/js/frappe/views/kanban/kanban_view.js:183 #: frappe/public/js/frappe/views/reports/report_view.js:209 @@ -17483,7 +17544,7 @@ msgstr "非活动" msgid "Not allowed for {0}: {1}" msgstr "不允许{0}:{1}" -#: frappe/email/doctype/notification/notification.py:639 +#: frappe/email/doctype/notification/notification.py:669 msgid "Not allowed to attach {0} document, please enable Allow Print For {0} in Print Settings" msgstr "不允许附加{0}文档,请在打印设置中启用“允许打印{0}”" @@ -17515,7 +17576,7 @@ msgstr "未在开发模式下" msgid "Not in Developer Mode! Set in site_config.json or make 'Custom' DocType." msgstr "未开启开发模式!请在site_config.json中设置或创建一个自定义单据类型" -#: frappe/core/doctype/system_settings/system_settings.py:220 +#: frappe/core/doctype/system_settings/system_settings.py:233 #: frappe/public/js/frappe/request.js:159 #: frappe/public/js/frappe/request.js:170 #: frappe/public/js/frappe/request.js:175 @@ -17638,15 +17699,15 @@ msgstr "订阅通知的文档" msgid "Notification sent to" msgstr "通知已发送至" -#: frappe/email/doctype/notification/notification.py:544 +#: frappe/email/doctype/notification/notification.py:556 msgid "Notification: customer {0} has no Mobile number set" msgstr "通知:客户{0}未设置手机号码" -#: frappe/email/doctype/notification/notification.py:530 +#: frappe/email/doctype/notification/notification.py:542 msgid "Notification: document {0} has no {1} number set (field: {2})" msgstr "通知:文档{0}未设置{1}号码(字段:{2})" -#: frappe/email/doctype/notification/notification.py:539 +#: frappe/email/doctype/notification/notification.py:551 msgid "Notification: user {0} has no Mobile number set" msgstr "通知:用户{0}未设置手机号码" @@ -17760,7 +17821,7 @@ msgstr "查询次数" msgid "Number of attachment fields are more than {}, limit updated to {}." msgstr "附件字段数超过{},限制已更新为{}。" -#: frappe/core/doctype/system_settings/system_settings.py:175 +#: frappe/core/doctype/system_settings/system_settings.py:188 msgid "Number of backups must be greater than zero." msgstr "备份数量必须大于零。" @@ -17843,7 +17904,7 @@ msgstr "OAuth权限范围" #. Name of a DocType #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "OAuth Settings" -msgstr "" +msgstr "OAuth设置" #: frappe/email/doctype/email_account/email_account.js:250 msgid "OAuth has been enabled but not authorised. Please use \"Authorise API Access\" button to do the same." @@ -17869,14 +17930,30 @@ msgstr "OTP应用程序" msgid "OTP Issuer Name" msgstr "OTP发行人名称" -#: frappe/twofactor.py:450 +#. Label of the otp_sms_template (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP SMS Template" +msgstr "" + +#: frappe/core/doctype/system_settings/system_settings.py:167 +msgid "OTP SMS Template must contain {0} placeholder to insert the OTP." +msgstr "" + +#: frappe/twofactor.py:459 msgid "OTP Secret Reset - {0}" msgstr "OTP密钥重置 - {0}" -#: frappe/twofactor.py:469 +#: frappe/twofactor.py:478 msgid "OTP Secret has been reset. Re-registration will be required on next login." msgstr "OTP Secret已被重置。下次登录时需要重新注册。" +#. Description of the 'OTP SMS Template' (Small Text) field in DocType 'System +#. Settings' +#: frappe/core/doctype/system_settings/system_settings.json +msgid "OTP placeholder should be defined as {{ otp }} " +msgstr "" + #: frappe/templates/includes/login/login.js:355 msgid "OTP setup using OTP App was not completed. Please contact Administrator." msgstr "使用OTP应用的OTP设置未完成。请联系管理员。" @@ -17919,7 +17996,7 @@ msgstr "Y轴偏移" #: frappe/database/query.py:121 msgid "Offset must be a non-negative integer" -msgstr "" +msgstr "偏移量必须为非负整数" #: frappe/www/update-password.html:38 msgid "Old Password" @@ -17992,7 +18069,7 @@ msgstr "在或之后" msgid "On or Before" msgstr "在或之前" -#: frappe/public/js/frappe/views/communication.js:966 +#: frappe/public/js/frappe/views/communication.js:957 msgid "On {0}, {1} wrote:" msgstr "{0},{1}写道:" @@ -18052,7 +18129,7 @@ msgstr "来自{}的一次性密码(OTP)注册码" msgid "One of" msgstr "之一" -#: frappe/client.py:213 +#: frappe/client.py:224 msgid "Only 200 inserts allowed in one request" msgstr "只有200将允许一个请求" @@ -18090,7 +18167,7 @@ msgstr "只发送最后X小时更新的记录" msgid "Only Workspace Manager can edit public workspaces" msgstr "仅工作区管理员可编辑公共工作区" -#: frappe/modules/utils.py:65 +#: frappe/modules/utils.py:66 msgid "Only allowed to export customizations in developer mode" msgstr "仅开发者模式下允许导出自定义项" @@ -18215,7 +18292,7 @@ msgstr "打开一个模块或工具" #: frappe/public/js/frappe/ui/keyboard.js:367 msgid "Open console" -msgstr "" +msgstr "打开控制台" #: frappe/public/js/print_format_builder/Preview.vue:17 msgid "Open in a new tab" @@ -18253,7 +18330,7 @@ msgstr "OpenID配置" #: frappe/integrations/doctype/connected_app/connected_app.js:15 msgid "OpenID Configuration fetched successfully!" -msgstr "" +msgstr "OpenID配置获取成功!" #. Option for the 'Directory Server' (Select) field in DocType 'LDAP Settings' #: frappe/integrations/doctype/ldap_settings/ldap_settings.json @@ -18270,7 +18347,7 @@ msgstr "开业" msgid "Operation" msgstr "工序" -#: frappe/utils/data.py:2172 +#: frappe/utils/data.py:2219 msgid "Operator must be one of {0}" msgstr "运算符必须是{0}" @@ -18373,7 +18450,7 @@ msgstr "订购" #: frappe/database/query.py:769 msgid "Order By must be a string" -msgstr "" +msgstr "排序依据必须为字符串" #. Label of the sb0 (Section Break) field in DocType 'About Us Settings' #. Label of the company_history (Table) field in DocType 'About Us Settings' @@ -18766,13 +18843,13 @@ msgstr "Parent是将数据添加到的单据的名称。" #: frappe/public/js/frappe/ui/group_by/group_by.js:253 msgid "Parent-to-child or child-to-different-child grouping is not allowed." -msgstr "" +msgstr "不允许父子层级或子级到不同子级的分组方式。" #: frappe/permissions.py:822 msgid "Parentfield not specified in {0}: {1}" msgstr "{0}中未指定父字段:{1}" -#: frappe/client.py:467 +#: frappe/client.py:478 msgid "Parenttype, Parent and Parentfield are required to insert a child record" msgstr "插入子记录需要父类型、父项和父字段" @@ -18860,7 +18937,7 @@ msgstr "需要密码,或者选择等待密码" #: frappe/www/update-password.html:94 msgid "Password is valid. 👍" -msgstr "" +msgstr "密码有效。👍" #: frappe/public/js/frappe/desk.js:212 msgid "Password missing in Email Account" @@ -18944,6 +19021,10 @@ msgstr "服务器证书的路径" msgid "Path to private Key File" msgstr "私钥文件的路径" +#: frappe/modules/utils.py:207 +msgid "Path {0} is not within module {1}" +msgstr "" + #: frappe/website/path_resolver.py:230 msgid "Path {0} it not a valid path" msgstr "{0}不是有效路径" @@ -19268,7 +19349,7 @@ msgstr "请设置图表" msgid "Please Update SMS Settings" msgstr "请更新短信设置" -#: frappe/automation/doctype/auto_repeat/auto_repeat.py:613 +#: frappe/automation/doctype/auto_repeat/auto_repeat.py:614 msgid "Please add a subject to your email" msgstr "请在您的电子邮件中添加主题" @@ -19320,7 +19401,7 @@ msgstr "请查看您注册的电子邮件以获取有关如何继续的说明。 msgid "Please click Edit on the Workspace for best results" msgstr "请在工作区点击编辑以获得最佳效果" -#: frappe/core/doctype/data_import/data_import.js:158 +#: frappe/core/doctype/data_import/data_import.js:164 msgid "Please click on 'Export Errored Rows', fix the errors and import again." msgstr "请点击'导出错误行',修正错误后重新导入" @@ -19360,7 +19441,7 @@ msgstr "请不要更改模板标题。" msgid "Please duplicate this to make changes" msgstr "请复制后修改" -#: frappe/core/doctype/system_settings/system_settings.py:168 +#: frappe/core/doctype/system_settings/system_settings.py:181 msgid "Please enable atleast one Social Login Key or LDAP or Login With Email Link before disabling username/password based login." msgstr "禁用用户名/密码登录前,请至少启用一个社交登录密钥/LDAP/邮件链接登录" @@ -19476,6 +19557,10 @@ msgstr "分派待办前请先保存单据" msgid "Please save the document before removing assignment" msgstr "请删除分派之前保存的单据" +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:89 +msgid "Please save the form before previewing the message" +msgstr "" + #: frappe/public/js/frappe/views/reports/report_view.js:1733 msgid "Please save the report first" msgstr "请先保存报表" @@ -19492,7 +19577,7 @@ msgstr "请首先选择单据类型" msgid "Please select Entity Type first" msgstr "请先选择实体类型" -#: frappe/core/doctype/system_settings/system_settings.py:116 +#: frappe/core/doctype/system_settings/system_settings.py:117 msgid "Please select Minimum Password Score" msgstr "请选择最低密码分数" @@ -19558,7 +19643,7 @@ msgstr "请在“打印机设置”中为此打印格式设置打印机映射" msgid "Please set filters" msgstr "请设置过滤条件" -#: frappe/email/doctype/auto_email_report/auto_email_report.py:263 +#: frappe/email/doctype/auto_email_report/auto_email_report.py:265 msgid "Please set filters value in Report Filter table." msgstr "请设置在报表过滤表过滤条件值。" @@ -19574,11 +19659,11 @@ msgstr "请先将仪表板中的以下文档设为标准文档" msgid "Please set the series to be used." msgstr "请设置要使用的单据编号模板。" -#: frappe/core/doctype/system_settings/system_settings.py:130 +#: frappe/core/doctype/system_settings/system_settings.py:131 msgid "Please setup SMS before setting it as an authentication method, via SMS Settings" msgstr "请通过SMS设置将其设置为身份验证方式之前设置短信" -#: frappe/automation/doctype/auto_repeat/auto_repeat.js:104 +#: frappe/automation/doctype/auto_repeat/auto_repeat.js:107 msgid "Please setup a message first" msgstr "请先设置一条消息" @@ -19598,23 +19683,27 @@ msgstr "请先输入" msgid "Please specify a valid parent DocType for {0}" msgstr "请为{0}指定有效的父文档类型" -#: frappe/email/doctype/notification/notification.py:163 +#: frappe/email/doctype/notification/notification.py:165 msgid "Please specify at least 10 minutes due to the trigger cadence of the scheduler" msgstr "由于调度器的触发频率,请至少指定10分钟" -#: frappe/email/doctype/notification/notification.py:160 +#: frappe/email/doctype/notification/notification.py:172 +msgid "Please specify the field from which to attach files" +msgstr "" + +#: frappe/email/doctype/notification/notification.py:162 msgid "Please specify the minutes offset" msgstr "请指定分钟偏移量" -#: frappe/email/doctype/notification/notification.py:154 +#: frappe/email/doctype/notification/notification.py:156 msgid "Please specify which date field must be checked" msgstr "请指定必须检查的日期字段" -#: frappe/email/doctype/notification/notification.py:158 +#: frappe/email/doctype/notification/notification.py:160 msgid "Please specify which datetime field must be checked" msgstr "请指定需要检查的日期时间字段" -#: frappe/email/doctype/notification/notification.py:167 +#: frappe/email/doctype/notification/notification.py:169 msgid "Please specify which value field must be checked" msgstr "请指定必须检查的值字段" @@ -19633,7 +19722,7 @@ msgstr "请使用有效的LDAP搜索过滤器" #: frappe/templates/emails/file_backup_notification.html:4 msgid "Please use following links to download file backup." -msgstr "" +msgstr "请使用以下链接下载文件备份。" #: frappe/utils/password.py:217 msgid "Please visit https://frappecloud.com/docs/sites/migrate-an-existing-site#encryption-key for more information." @@ -19642,7 +19731,7 @@ msgstr "更多信息请访问https://frappecloud.com/docs/sites/migrate-an-exist #. Label of the policy_uri (Data) field in DocType 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "Policy URI" -msgstr "" +msgstr "策略URI" #. Option for the 'SocketIO Transport Mode' (Select) field in DocType 'System #. Health Report' @@ -19728,7 +19817,7 @@ msgstr "过账时间戳" #: frappe/database/query.py:1520 msgid "Potentially dangerous content in string literal: {0}" -msgstr "" +msgstr "字符串字面量中包含潜在危险内容:{0}" #. Label of the precision (Select) field in DocType 'DocField' #. Label of the precision (Select) field in DocType 'Custom Field' @@ -19743,7 +19832,7 @@ msgstr "精度" #: frappe/core/doctype/doctype/doctype.py:1677 msgid "Precision ({0}) for {1} cannot be greater than its length ({2})." -msgstr "" +msgstr "{1}的精度({0})不能大于其长度({2})。" #: frappe/core/doctype/doctype/doctype.py:1401 msgid "Precision should be between 1 and 6" @@ -19801,7 +19890,7 @@ msgstr "预制报表渲染失败" msgid "Preparing Report" msgstr "准备报表" -#: frappe/public/js/frappe/views/communication.js:434 +#: frappe/public/js/frappe/views/communication.js:425 msgid "Prepend the template to the email message" msgstr "将模板内容追加到邮件正文(消息)" @@ -19822,7 +19911,7 @@ msgstr "按Enter键保存" #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/file/file.json #: frappe/desk/doctype/custom_html_block/custom_html_block.json -#: frappe/email/doctype/notification/notification.js:194 +#: frappe/email/doctype/notification/notification.js:202 #: frappe/integrations/doctype/webhook/webhook.js:90 #: frappe/printing/doctype/print_style/print_style.json #: frappe/public/js/frappe/form/controls/markdown_editor.js:17 @@ -19876,6 +19965,10 @@ msgctxt "Go to previous slide" msgid "Previous" msgstr "上一条" +#: frappe/public/js/frappe/form/toolbar.js:321 +msgid "Previous Document" +msgstr "上一份文档" + #: frappe/public/js/frappe/form/form.js:2229 msgid "Previous Submission" msgstr "前次提交" @@ -19925,8 +20018,8 @@ msgstr "文档类型{0}的主键存在值,不可修改" #: frappe/printing/page/print/print.js:78 #: frappe/public/js/frappe/form/success_action.js:81 #: frappe/public/js/frappe/form/templates/print_layout.html:46 -#: frappe/public/js/frappe/form/toolbar.js:360 -#: frappe/public/js/frappe/form/toolbar.js:372 +#: frappe/public/js/frappe/form/toolbar.js:386 +#: frappe/public/js/frappe/form/toolbar.js:398 #: frappe/public/js/frappe/list/bulk_operations.js:95 #: frappe/public/js/frappe/views/reports/query_report.js:1816 #: frappe/public/js/frappe/views/reports/report_view.js:1539 @@ -19992,7 +20085,7 @@ msgstr "打印格式字段模板" #. Label of the print_format_for (Select) field in DocType 'Print Format' #: frappe/printing/doctype/print_format/print_format.json msgid "Print Format For" -msgstr "" +msgstr "打印格式适用对象" #. Label of the print_format_help (HTML) field in DocType 'Print Format' #: frappe/printing/doctype/print_format/print_format.json @@ -20006,7 +20099,7 @@ msgstr "打印格式类型" #: frappe/public/js/frappe/views/reports/query_report.js:1605 msgid "Print Format not found" -msgstr "" +msgstr "未找到打印格式" #: frappe/www/printview.py:451 msgid "Print Format {0} is disabled" @@ -20039,7 +20132,7 @@ msgstr "不打印" msgid "Print Hide If No Value" msgstr "无值不打印" -#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:159 msgid "Print Language" msgstr "打印语言" @@ -20054,10 +20147,8 @@ msgid "Print Server" msgstr "打印服务器" #. Label of a Link in the Tools Workspace -#. Label of the column_break_25 (Section Break) field in DocType 'Notification' #. Name of a DocType #: frappe/automation/workspace/tools/tools.json -#: frappe/email/doctype/notification/notification.json #: frappe/printing/doctype/print_settings/print_settings.json #: frappe/printing/doctype/print_style/print_style.js:6 #: frappe/printing/page/print/print.js:173 @@ -20173,7 +20264,7 @@ msgstr "私有文件(MB)" #: frappe/templates/emails/file_backup_notification.html:6 msgid "Private Files Backup:" -msgstr "" +msgstr "私有文件备份:" #. Description of the 'Auto Reply Message' (Text Editor) field in DocType #. 'Email Account' @@ -20209,7 +20300,7 @@ msgstr "个人信息" #. Label of a field in the edit-profile Web Form #: frappe/core/web_form/edit_profile/edit_profile.json msgid "Profile Picture" -msgstr "" +msgstr "个人资料图片" #. Success message of the edit-profile Web Form #: frappe/core/web_form/edit_profile/edit_profile.json @@ -20309,7 +20400,7 @@ msgstr "公开文件(MB)" #: frappe/templates/emails/file_backup_notification.html:5 msgid "Public Files Backup:" -msgstr "" +msgstr "公共文件备份:" #. Label of the publish (Check) field in DocType 'Package Release' #: frappe/core/doctype/package_release/package_release.json @@ -20679,7 +20770,7 @@ msgstr "回覆:" #: frappe/core/doctype/communication/communication.js:268 #: frappe/public/js/frappe/form/footer/form_timeline.js:601 -#: frappe/public/js/frappe/views/communication.js:370 +#: frappe/public/js/frappe/views/communication.js:361 msgid "Re: {0}" msgstr "回复:{0}" @@ -20690,7 +20781,7 @@ msgstr "回复:{0}" #. Label of the read (Check) field in DocType 'User Document Type' #. Label of the read (Check) field in DocType 'Notification Log' #. Option for the 'Action' (Select) field in DocType 'Email Flag Queue' -#: frappe/client.py:450 frappe/core/doctype/communication/communication.json +#: frappe/client.py:461 frappe/core/doctype/communication/communication.json #: frappe/core/doctype/custom_docperm/custom_docperm.json #: frappe/core/doctype/docperm/docperm.json #: frappe/core/doctype/docshare/docshare.json @@ -20829,7 +20920,7 @@ msgstr "收件人" #: frappe/core/doctype/doctype/doctype.json #: frappe/custom/doctype/customize_form/customize_form.json msgid "Recipient Account Field" -msgstr "" +msgstr "收件人账户字段" #. Option for the 'Delivery Status' (Select) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json @@ -20883,7 +20974,7 @@ msgstr "重定向HTTP状态码" #. Label of the redirect_to_path (Data) field in DocType 'User Invitation' #: frappe/core/doctype/user_invitation/user_invitation.json msgid "Redirect To Path" -msgstr "" +msgstr "重定向至路径" #. Label of the redirect_uri (Data) field in DocType 'Connected App' #: frappe/integrations/doctype/connected_app/connected_app.json @@ -20929,12 +21020,12 @@ msgstr "重定向" msgid "Redis cache server not running. Please contact Administrator / Tech support" msgstr "Redis缓存服务器无法运行。请联系管理员/技术支持" -#: frappe/public/js/frappe/form/toolbar.js:530 +#: frappe/public/js/frappe/form/toolbar.js:556 msgid "Redo" msgstr "恢复" #: frappe/public/js/frappe/form/form.js:165 -#: frappe/public/js/frappe/form/toolbar.js:538 +#: frappe/public/js/frappe/form/toolbar.js:564 msgid "Redo last action" msgstr "重做上一步操作" @@ -21174,7 +21265,7 @@ msgstr "刷新Google表格" #: frappe/printing/page/print/print.js:387 msgid "Refresh Print Preview" -msgstr "" +msgstr "刷新打印预览" #. Label of the refresh_token (Password) field in DocType 'Google Calendar' #. Label of the refresh_token (Password) field in DocType 'Google Contacts' @@ -21247,7 +21338,7 @@ msgstr "重新链接" #. Label of a standard navbar item #. Type: Action #: frappe/custom/doctype/customize_form/customize_form.js:120 frappe/hooks.py -#: frappe/public/js/frappe/form/toolbar.js:447 +#: frappe/public/js/frappe/form/toolbar.js:473 msgid "Reload" msgstr "刷新" @@ -21278,7 +21369,7 @@ msgstr "保存最后一次输入值" msgid "Remind At" msgstr "提醒时间" -#: frappe/public/js/frappe/form/toolbar.js:479 +#: frappe/public/js/frappe/form/toolbar.js:505 msgid "Remind Me" msgstr "提醒我" @@ -21358,9 +21449,9 @@ msgid "Removed" msgstr "已移除" #: frappe/custom/doctype/custom_field/custom_field.js:137 -#: frappe/public/js/frappe/form/toolbar.js:254 #: frappe/public/js/frappe/form/toolbar.js:258 -#: frappe/public/js/frappe/form/toolbar.js:435 +#: frappe/public/js/frappe/form/toolbar.js:262 +#: frappe/public/js/frappe/form/toolbar.js:461 #: frappe/public/js/frappe/model/model.js:723 #: frappe/public/js/frappe/views/treeview.js:311 msgid "Rename" @@ -21388,7 +21479,7 @@ msgstr "本部分标签左对齐,值右对齐" msgid "Reopen" msgstr "重新打开" -#: frappe/public/js/frappe/form/toolbar.js:547 +#: frappe/public/js/frappe/form/toolbar.js:573 msgid "Repeat" msgstr "重复" @@ -21638,7 +21729,7 @@ msgstr "生成报表结果的后台任务已启动,点击查看任务状态" msgid "Report limit reached" msgstr "达到报表限制" -#: frappe/core/doctype/prepared_report/prepared_report.py:223 +#: frappe/core/doctype/prepared_report/prepared_report.py:248 msgid "Report timed out." msgstr "报表超时" @@ -21763,7 +21854,7 @@ msgstr "请求URL" #. Title of the request-to-delete-data Web Form #: frappe/website/web_form/request_to_delete_data/request_to_delete_data.json msgid "Request for Account Deletion" -msgstr "" +msgstr "账户删除请求" #. Label of the requested_numbers (Code) field in DocType 'SMS Log' #: frappe/core/doctype/sms_log/sms_log.json @@ -21832,7 +21923,7 @@ msgstr "重置" msgid "Reset OTP Secret" msgstr "重置一次性密码" -#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:199 +#: frappe/core/doctype/user/user.js:156 frappe/www/login.html:194 #: frappe/www/me.html:48 frappe/www/update-password.html:3 #: frappe/www/update-password.html:32 msgid "Reset Password" @@ -21882,27 +21973,27 @@ msgstr "重置密码" #. Label of the resource_tab (Tab Break) field in DocType 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Resource" -msgstr "" +msgstr "资源" #. Label of the resource_documentation (Data) field in DocType 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Resource Documentation" -msgstr "" +msgstr "资源文档" #. Label of the resource_name (Data) field in DocType 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Resource Name" -msgstr "" +msgstr "资源名称" #. Label of the resource_policy_uri (Data) field in DocType 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Resource Policy URI" -msgstr "" +msgstr "资源策略URI" #. Label of the resource_tos_uri (Data) field in DocType 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Resource TOS URI" -msgstr "" +msgstr "资源服务条款URI" #. Label of the response (Text Editor) field in DocType 'Email Template' #. Label of the response_html (Code) field in DocType 'Email Template' @@ -21988,7 +22079,7 @@ msgid "Resume Sending" msgstr "重新发送" #. Label of the retry (Int) field in DocType 'Email Queue' -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 #: frappe/desk/page/setup_wizard/setup_wizard.js:297 #: frappe/email/doctype/email_queue/email_queue.json msgid "Retry" @@ -22310,7 +22401,7 @@ msgstr "行索引" msgid "Row Name" msgstr "行名称" -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 msgid "Row Number" msgstr "行号" @@ -22318,7 +22409,7 @@ msgstr "行号" msgid "Row Values Changed" msgstr "明细表变更" -#: frappe/core/doctype/data_import/data_import.js:367 +#: frappe/core/doctype/data_import/data_import.js:393 msgid "Row {0}" msgstr "第{0}行" @@ -22350,7 +22441,7 @@ msgstr "已删除行" #: frappe/core/doctype/doctype/doctype.json #: frappe/custom/doctype/customize_form/customize_form.json msgid "Rows Threshold for Grid Search" -msgstr "" +msgstr "网格搜索行数阈值" #. Label of the rule (Select) field in DocType 'Assignment Rule' #: frappe/automation/doctype/assignment_rule/assignment_rule.json @@ -22543,7 +22634,7 @@ msgid "Saturday" msgstr "星期六" #. Option for the 'Send Alert On' (Select) field in DocType 'Notification' -#: frappe/core/doctype/data_import/data_import.js:113 +#: frappe/core/doctype/data_import/data_import.js:119 #: frappe/email/doctype/notification/notification.json #: frappe/printing/page/print/print.js:920 #: frappe/printing/page/print_format_builder/print_format_builder.js:160 @@ -22599,13 +22690,13 @@ msgstr "保存文档。" #: frappe/model/rename_doc.py:106 #: frappe/printing/page/print_format_builder/print_format_builder.js:858 -#: frappe/public/js/frappe/form/toolbar.js:286 +#: frappe/public/js/frappe/form/toolbar.js:290 #: frappe/public/js/frappe/views/kanban/kanban_board.bundle.js:917 #: frappe/public/js/frappe/views/workspace/workspace.js:684 msgid "Saved" msgstr "已保存" -#: frappe/public/js/frappe/list/list_sidebar.html:88 +#: frappe/public/js/frappe/list/list_sidebar.html:86 msgid "Saved Filters" msgstr "已保存的筛选器" @@ -22647,7 +22738,7 @@ msgstr "扫描QR码并输入显示的结果代码。" msgid "Schedule" msgstr "计划任务" -#: frappe/public/js/frappe/views/communication.js:97 +#: frappe/public/js/frappe/views/communication.js:88 msgid "Schedule Send At" msgstr "定时发送" @@ -22711,7 +22802,7 @@ msgstr "调度器" msgid "Scheduler Event" msgstr "后台任务事件" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler Inactive" msgstr "后台任务未启动" @@ -22724,7 +22815,7 @@ msgstr "调度器状态" msgid "Scheduler can not be re-enabled when maintenance mode is active." msgstr "维护模式激活时无法重新启用调度器。" -#: frappe/core/doctype/data_import/data_import.py:107 +#: frappe/core/doctype/data_import/data_import.py:109 msgid "Scheduler is inactive. Cannot import data." msgstr "后台任务未启动,无法导入数据" @@ -22759,7 +22850,7 @@ msgstr "范围" #. Label of the scopes_supported (Small Text) field in DocType 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Scopes Supported" -msgstr "" +msgstr "支持的作用域" #. Label of the report_script (Code) field in DocType 'Report' #. Label of the script (Code) field in DocType 'Server Script' @@ -22907,7 +22998,7 @@ msgstr "搜索中..." #: frappe/public/js/frappe/form/controls/duration.js:35 msgctxt "Duration" msgid "Seconds" -msgstr "" +msgstr "秒" #. Option for the 'Type' (Select) field in DocType 'Web Template' #: frappe/public/js/form_builder/components/Section.vue:263 @@ -23025,8 +23116,8 @@ msgstr "单选" msgid "Select All" msgstr "全选" -#: frappe/public/js/frappe/views/communication.js:177 -#: frappe/public/js/frappe/views/communication.js:601 +#: frappe/public/js/frappe/views/communication.js:168 +#: frappe/public/js/frappe/views/communication.js:592 #: frappe/public/js/frappe/views/interaction.js:93 #: frappe/public/js/frappe/views/interaction.js:155 msgid "Select Attachments" @@ -23092,7 +23183,7 @@ msgstr "选择用户权限限制单据类型。" #: frappe/public/js/form_builder/components/controls/FetchFromControl.vue:33 #: frappe/public/js/frappe/doctype/index.js:200 -#: frappe/public/js/frappe/form/toolbar.js:838 +#: frappe/public/js/frappe/form/toolbar.js:864 msgid "Select Field" msgstr "选择字段" @@ -23108,7 +23199,7 @@ msgstr "选择字段" #: frappe/public/js/frappe/list/list_settings.js:234 msgid "Select Fields (Up to {0})" -msgstr "" +msgstr "选择字段(最多{0}个)" #: frappe/public/js/frappe/data_import/data_exporter.js:147 msgid "Select Fields To Insert" @@ -23166,7 +23257,7 @@ msgid "Select Page" msgstr "选择页面" #: frappe/printing/page/print_format_builder_beta/print_format_builder_beta.js:68 -#: frappe/public/js/frappe/views/communication.js:160 +#: frappe/public/js/frappe/views/communication.js:151 msgid "Select Print Format" msgstr "选择打印格式" @@ -23222,7 +23313,7 @@ msgstr "选择字段在此编辑属性" #: frappe/public/js/frappe/views/treeview.js:358 msgid "Select a group {0} first." -msgstr "" +msgstr "请先选择{0}组。" #: frappe/core/doctype/doctype/doctype.py:1963 msgid "Select a valid Sender Field for creating documents from Email" @@ -23380,7 +23471,7 @@ msgstr "立即发送" msgid "Send Print as PDF" msgstr "使用PDF格式发送打印" -#: frappe/public/js/frappe/views/communication.js:150 +#: frappe/public/js/frappe/views/communication.js:141 msgid "Send Read Receipt" msgstr "发送阅读回执" @@ -23439,11 +23530,11 @@ msgstr "当文档转换到该状态时发送邮件。" msgid "Send enquiries to this email address" msgstr "向此邮件地址发送询价" -#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:230 +#: frappe/templates/includes/login/login.js:72 frappe/www/login.html:220 msgid "Send login link" msgstr "发送登录链接" -#: frappe/public/js/frappe/views/communication.js:144 +#: frappe/public/js/frappe/views/communication.js:135 msgid "Send me a copy" msgstr "抄送给自己" @@ -23633,7 +23724,7 @@ msgstr "服务" #. Display' #: frappe/core/doctype/user_session_display/user_session_display.json msgid "Session Created" -msgstr "" +msgstr "会话已创建" #. Name of a DocType #: frappe/core/doctype/session_default/session_default.json @@ -23667,14 +23758,14 @@ msgstr "会话已过期" msgid "Session Expiry (idle timeout)" msgstr "会话超时(无操作超时)" -#: frappe/core/doctype/system_settings/system_settings.py:123 +#: frappe/core/doctype/system_settings/system_settings.py:124 msgid "Session Expiry must be in format {0}" msgstr "会话到期格式必须是{0}" #. Label of the sessions_tab (Tab Break) field in DocType 'User' #: frappe/core/doctype/user/user.json msgid "Sessions" -msgstr "" +msgstr "会话" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:400 #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:487 @@ -23712,7 +23803,7 @@ msgstr "设置动态过滤器" #: frappe/desk/doctype/dashboard_chart/dashboard_chart.js:381 #: frappe/desk/doctype/number_card/number_card.js:292 #: frappe/public/js/form_builder/components/Field.vue:80 -#: frappe/website/doctype/web_form/web_form.js:272 +#: frappe/website/doctype/web_form/web_form.js:285 msgid "Set Filters" msgstr "设置过滤条件" @@ -23826,7 +23917,7 @@ msgstr "为浮点或货币字段设置非标准精度" #. Description of the 'Precision' (Select) field in DocType 'DocField' #: frappe/core/doctype/docfield/docfield.json msgid "Set non-standard precision for a Float, Currency or Percent field" -msgstr "" +msgstr "为浮点、货币或百分比字段设置非标准精度" #. Label of the set_only_once (Check) field in DocType 'DocField' #: frappe/core/doctype/docfield/docfield.json @@ -24057,7 +24148,7 @@ msgstr "显示" #: frappe/core/doctype/system_settings/system_settings.json #: frappe/core/doctype/user/user.json msgid "Show Absolute Datetime in Timeline" -msgstr "" +msgstr "在时间轴中显示绝对日期时间" #. Label of the absolute_value (Check) field in DocType 'Print Format' #: frappe/printing/doctype/print_format/print_format.json @@ -24072,7 +24163,7 @@ msgstr "显示全部" #. Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Show Auth Server Metadata" -msgstr "" +msgstr "显示认证服务器元数据" #: frappe/desk/doctype/calendar_view/calendar_view.js:10 msgid "Show Calendar" @@ -24106,9 +24197,9 @@ msgstr "显示错误" #. Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "Show External Link Warning" -msgstr "" +msgstr "显示外部链接警告" -#: frappe/public/js/frappe/form/layout.js:586 +#: frappe/public/js/frappe/form/layout.js:588 msgid "Show Fieldname (click to copy on clipboard)" msgstr "显示字段名(点击复制到剪贴板)" @@ -24137,7 +24228,7 @@ msgstr "显示完整表单?" #. Label of the show_full_number (Check) field in DocType 'Number Card' #: frappe/desk/doctype/number_card/number_card.json msgid "Show Full Number" -msgstr "" +msgstr "显示完整数字" #: frappe/public/js/frappe/ui/keyboard.js:234 msgid "Show Keyboard Shortcuts" @@ -24160,7 +24251,7 @@ msgstr "显示语言选择框" msgid "Show Line Breaks after Sections" msgstr "章节后,显示换行符" -#: frappe/public/js/frappe/form/toolbar.js:410 +#: frappe/public/js/frappe/form/toolbar.js:436 msgid "Show Links" msgstr "显示链接" @@ -24201,7 +24292,7 @@ msgstr "显示进程清单" #. 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Show Protected Resource Metadata" -msgstr "" +msgstr "显示受保护资源元数据" #: frappe/core/doctype/error_log/error_log.js:9 msgid "Show Related Errors" @@ -24233,9 +24324,9 @@ msgstr "显示左边栏" #. DocType 'OAuth Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "Show Social Login Key as Authorization Server" -msgstr "" +msgstr "将社交登录密钥显示为授权服务器" -#: frappe/public/js/frappe/list/list_sidebar.html:77 +#: frappe/public/js/frappe/list/list_sidebar.html:76 #: frappe/public/js/frappe/list/list_view.js:1858 msgid "Show Tags" msgstr "显示标签" @@ -24261,7 +24352,7 @@ msgstr "显示总计" msgid "Show Tour" msgstr "显示引导" -#: frappe/core/doctype/data_import/data_import.js:448 +#: frappe/core/doctype/data_import/data_import.js:474 msgid "Show Traceback" msgstr "显示回溯信息" @@ -24269,7 +24360,7 @@ msgstr "显示回溯信息" #. Chart' #: frappe/desk/doctype/dashboard_chart/dashboard_chart.json msgid "Show Values over Chart" -msgstr "" +msgstr "在图表上显示数值" #: frappe/public/js/frappe/data_import/import_preview.js:204 msgid "Show Warnings" @@ -24324,7 +24415,7 @@ msgstr "模块主页中的显示位置" #. Login Key' #: frappe/integrations/doctype/social_login_key/social_login_key.json msgid "Show in Resource Metadata" -msgstr "" +msgstr "在资源元数据中显示" #. Label of the show_in_filter (Check) field in DocType 'Web Form Field' #: frappe/website/doctype/web_form_field/web_form_field.json @@ -24341,8 +24432,8 @@ msgstr "显示文档链接" msgid "Show list" msgstr "显示列表" -#: frappe/public/js/frappe/form/layout.js:280 -#: frappe/public/js/frappe/form/layout.js:298 +#: frappe/public/js/frappe/form/layout.js:282 +#: frappe/public/js/frappe/form/layout.js:300 msgid "Show more details" msgstr "显示更多详情" @@ -24403,7 +24494,7 @@ msgstr "边栏和评论" #. Label of the sign_out (Button) field in DocType 'User Session Display' #: frappe/core/doctype/user_session_display/user_session_display.json msgid "Sign Out" -msgstr "" +msgstr "退出登录" #. Label of the sign_up_and_confirmation_section (Section Break) field in #. DocType 'Email Group' @@ -24452,19 +24543,19 @@ msgstr "此网站已禁用注册功能" #. Rule' #: frappe/automation/doctype/assignment_rule/assignment_rule.json msgid "Simple Python Expression, Example: status == \"Invalid\"" -msgstr "" +msgstr "简单Python表达式,示例:status == \"Invalid\" 状态 == \"无效\"" #. Description of the 'Assign Condition' (Code) field in DocType 'Assignment #. Rule' #: frappe/automation/doctype/assignment_rule/assignment_rule.json msgid "Simple Python Expression, Example: status == 'Open' and issue_type == 'Bug'" -msgstr "" +msgstr "简单Python表达式,示例:status == 'Open' and issue_type == 'Bug' 状态 == 'Open' 和问题类型 == 'Bug'" #. Description of the 'Unassign Condition' (Code) field in DocType 'Assignment #. Rule' #: frappe/automation/doctype/assignment_rule/assignment_rule.json msgid "Simple Python Expression, Example: status in (\"Closed\", \"Cancelled\")" -msgstr "" +msgstr "简单Python表达式,示例: 状态 (\"已关闭\", \"已取消\")" #. Label of the simultaneous_sessions (Int) field in DocType 'User' #: frappe/core/doctype/user/user.json @@ -24530,7 +24621,7 @@ msgstr "跳过未命名列" msgid "Skipping column {0}" msgstr "跳过列{0}" -#: frappe/modules/utils.py:176 +#: frappe/modules/utils.py:177 msgid "Skipping fixture syncing for doctype {0} from file {1}" msgstr "跳过从文件{1}同步文档类型{0}的夹具" @@ -24672,12 +24763,12 @@ msgstr "软退回" #. Label of the software_id (Data) field in DocType 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "Software ID" -msgstr "" +msgstr "软件ID" #. Label of the software_version (Data) field in DocType 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "Software Version" -msgstr "" +msgstr "软件版本" #: frappe/printing/page/print_format_builder/print_format_builder_column_selector.html:4 msgid "Some columns might get cut off when printing to PDF. Try to keep number of columns under 10." @@ -24754,7 +24845,7 @@ msgstr "来源" #: frappe/public/js/frappe/ui/toolbar/about.js:11 msgid "Source Code" -msgstr "" +msgstr "源代码" #. Label of the source_name (Data) field in DocType 'Dashboard Chart Source' #: frappe/desk/doctype/dashboard_chart_source/dashboard_chart_source.json @@ -24786,7 +24877,7 @@ msgstr "SparkPost" #. Transition Task' #: frappe/workflow/doctype/workflow_transition_task/workflow_transition_task.json msgid "Spawns actions in a background job" -msgstr "" +msgstr "在后台任务中生成操作" #: frappe/custom/doctype/custom_field/custom_field.js:83 msgid "Special Characters are not allowed" @@ -24926,7 +25017,7 @@ msgstr "开始日期" msgid "Start Date Field" msgstr "开始日期字段" -#: frappe/core/doctype/data_import/data_import.js:110 +#: frappe/core/doctype/data_import/data_import.js:111 msgid "Start Import" msgstr "开始导入" @@ -25060,7 +25151,7 @@ msgstr "频率" #: frappe/contacts/doctype/contact/contact.json #: frappe/core/doctype/activity_log/activity_log.json #: frappe/core/doctype/communication/communication.json -#: frappe/core/doctype/data_import/data_import.js:483 +#: frappe/core/doctype/data_import/data_import.js:509 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/permission_log/permission_log.json #: frappe/core/doctype/prepared_report/prepared_report.json @@ -25147,7 +25238,7 @@ msgstr "存储PDF附件" #: frappe/core/doctype/user/user.js:497 msgid "Store the API secret securely. It won't be displayed again." -msgstr "" +msgstr "请安全存储API密钥。该密钥将不再显示。" #. Description of the 'Last Known Versions' (Text) field in DocType 'User' #: frappe/core/doctype/user/user.json @@ -25227,9 +25318,9 @@ msgstr "子域名" #: frappe/desk/doctype/event/event.json #: frappe/desk/doctype/notification_log/notification_log.json #: frappe/email/doctype/email_template/email_template.json -#: frappe/email/doctype/notification/notification.js:204 +#: frappe/email/doctype/notification/notification.js:212 #: frappe/email/doctype/notification/notification.json -#: frappe/public/js/frappe/views/communication.js:119 +#: frappe/public/js/frappe/views/communication.js:110 #: frappe/public/js/frappe/views/inbox/inbox_view.js:63 msgid "Subject" msgstr "主题" @@ -25373,12 +25464,12 @@ msgstr "子标题" #. Label of the success (Check) field in DocType 'Data Import Log' #. Option for the 'Style' (Select) field in DocType 'Workflow State' #: frappe/core/doctype/activity_log/activity_log.json -#: frappe/core/doctype/data_import/data_import.js:459 +#: frappe/core/doctype/data_import/data_import.js:485 #: frappe/core/doctype/data_import/data_import.json #: frappe/core/doctype/data_import_log/data_import_log.json #: frappe/desk/doctype/bulk_update/bulk_update.js:31 #: frappe/desk/doctype/desktop_icon/desktop_icon.py:446 -#: frappe/public/js/frappe/form/grid.js:1172 +#: frappe/public/js/frappe/form/grid.js:1192 #: frappe/public/js/frappe/views/translation_manager.js:21 #: frappe/templates/includes/login/login.js:230 #: frappe/templates/includes/login/login.js:236 @@ -25438,11 +25529,11 @@ msgstr "成功:{0} {1}" msgid "Successfully Updated" msgstr "更新成功" -#: frappe/core/doctype/data_import/data_import.js:423 +#: frappe/core/doctype/data_import/data_import.js:449 msgid "Successfully imported {0}" msgstr "成功导入了{0}" -#: frappe/core/doctype/data_import/data_import.js:144 +#: frappe/core/doctype/data_import/data_import.js:150 msgid "Successfully imported {0} out of {1} records." msgstr "成功导入{1}条记录中的{0}条。" @@ -25452,17 +25543,17 @@ msgstr "已成功重置所有用户的入职状态。" #: frappe/core/doctype/user/user.py:1451 msgid "Successfully signed out" -msgstr "" +msgstr "已成功退出登录" #: frappe/public/js/frappe/views/translation_manager.js:22 msgid "Successfully updated translations" msgstr "成功更新翻译" -#: frappe/core/doctype/data_import/data_import.js:431 +#: frappe/core/doctype/data_import/data_import.js:457 msgid "Successfully updated {0}" msgstr "成功更新了{0}" -#: frappe/core/doctype/data_import/data_import.js:149 +#: frappe/core/doctype/data_import/data_import.js:155 msgid "Successfully updated {0} out of {1} records." msgstr "成功更新{1}条记录中的{0}条。" @@ -25597,7 +25688,7 @@ msgstr "同步" msgid "Syncing {0} of {1}" msgstr "正在同步{1}中的{0}" -#: frappe/utils/data.py:2573 +#: frappe/utils/data.py:2620 msgid "Syntax Error" msgstr "语法错误" @@ -25840,7 +25931,7 @@ msgstr "T" #. Label of the tos_uri (Data) field in DocType 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "TOS URI" -msgstr "" +msgstr "服务条款URI" #. Option for the 'Type' (Select) field in DocType 'DocField' #. Option for the 'Field Type' (Select) field in DocType 'Custom Field' @@ -25908,7 +25999,7 @@ msgstr "表-多选" msgid "Table Trimmed" msgstr "表格已截断" -#: frappe/public/js/frappe/form/grid.js:1171 +#: frappe/public/js/frappe/form/grid.js:1191 msgid "Table updated" msgstr "表更新" @@ -26125,7 +26216,7 @@ msgstr "谢谢" msgid "The Auto Repeat for this document has been disabled." msgstr "此文档的自动重复功能已禁用。" -#: frappe/public/js/frappe/form/grid.js:1194 +#: frappe/public/js/frappe/form/grid.js:1214 msgid "The CSV format is case sensitive" msgstr "CSV格式区分大小写" @@ -26138,7 +26229,7 @@ msgstr "从 Google Cloud Console 下的 获取的客户端 ID" -#: frappe/email/doctype/notification/notification.py:219 +#: frappe/email/doctype/notification/notification.py:224 msgid "The Condition '{0}' is invalid" msgstr "条件“{0}”无效" @@ -26301,7 +26392,7 @@ msgstr "从\n" #: frappe/desk/utils.py:106 msgid "The report you requested has been generated.

Click here to download:
{0}

This link will expire in {1} hours." -msgstr "" +msgstr "您请求的报告已生成。

点击此处下载:
{0}

此链接将在{1}小时后过期。" #: frappe/core/doctype/user/user.py:1038 msgid "The reset password link has been expired" @@ -26389,7 +26480,7 @@ msgid "There are {0} with the same filters already in the queue:" msgstr "队列中已有{0}条相同筛选条件的记录:" #: frappe/website/doctype/web_form/web_form.js:81 -#: frappe/website/doctype/web_form/web_form.js:321 +#: frappe/website/doctype/web_form/web_form.js:334 msgid "There can be only 9 Page Break fields in a Web Form" msgstr "网页表单最多允许9个分页符字段" @@ -26407,7 +26498,7 @@ msgstr "没有可导出的数据" #: frappe/model/workflow.py:170 msgid "There is no task called \"{}\"" -msgstr "" +msgstr "不存在名为\"{}\"的任务" #: frappe/public/js/frappe/ui/notifications/notifications.js:492 msgid "There is nothing new to show you right now." @@ -26441,7 +26532,7 @@ msgstr "出错了" msgid "There were errors while creating the document. Please try again." msgstr "创建单据时出错。请再试一次。" -#: frappe/public/js/frappe/views/communication.js:843 +#: frappe/public/js/frappe/views/communication.js:834 msgid "There were errors while sending email. Please try again." msgstr "邮件发送失败,请重试。" @@ -26459,7 +26550,7 @@ msgstr "这些公告将显示在导航栏下方可关闭的提示框中。" #. Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "These fields are used to provide resource server metadata to clients querying the \"well known protected resource\" end point." -msgstr "" +msgstr "这些字段用于向查询\"知名受保护资源\"端点的客户端提供资源服务器元数据。" #. Description of the 'LDAP Custom Settings' (Section Break) field in DocType #. 'LDAP Settings' @@ -26496,7 +26587,7 @@ msgstr "本月" #: frappe/core/doctype/file/file.py:396 msgid "This PDF cannot be uploaded as it contains unsafe content." -msgstr "" +msgstr "此PDF文件因包含不安全内容而无法上传。" #: frappe/public/js/frappe/ui/filters/filter.js:670 msgid "This Quarter" @@ -26518,7 +26609,7 @@ msgstr "此操作不可逆。是否继续?" msgid "This action is only allowed for {}" msgstr "此操作仅允许{}执行" -#: frappe/public/js/frappe/form/toolbar.js:117 +#: frappe/public/js/frappe/form/toolbar.js:121 #: frappe/public/js/frappe/model/model.js:706 msgid "This cannot be undone" msgstr "不可撤销" @@ -26526,7 +26617,7 @@ msgstr "不可撤销" #: frappe/desk/doctype/number_card/number_card.js:484 msgctxt "Number Card" msgid "This card is visible only to Administrator and System Managers by default. Set a DocType to share with users who have read access." -msgstr "" +msgstr "默认情况下,此卡片仅对管理员和系统经理可见。请设置文档类型以与具有读取权限的用户共享。" #. Description of the 'Is Public' (Check) field in DocType 'Number Card' #: frappe/desk/doctype/number_card/number_card.json @@ -26552,7 +26643,7 @@ msgstr "此文档正被其他用户修改,暂时无法删除。请稍后重试 #: frappe/core/doctype/submission_queue/submission_queue.py:171 msgid "This document has already been queued for submission. You can track the progress over {0}." -msgstr "" +msgstr "本文档已加入提交队列。您可通过{0}跟踪进度。" #: frappe/www/confirm_workflow_action.html:8 msgid "This document has been modified after the email was sent." @@ -26721,7 +26812,7 @@ msgstr "此值取自{0}的{1}字段" #. Settings' #: frappe/core/doctype/system_settings/system_settings.json msgid "This value specifies the max number of rows that can be rendered in report view." -msgstr "" +msgstr "此值指定报告视图中可渲染的最大行数。" #: frappe/website/doctype/web_page/web_page.js:85 msgid "This will be automatically generated when you publish the page, you can also enter a route yourself if you wish" @@ -26751,9 +26842,11 @@ msgstr "这将彻底删除您的数据。" msgid "This will reset this tour and show it to all users. Are you sure?" msgstr "将重置此导览并向所有用户显示。是否继续?" +#: frappe/core/doctype/data_import/data_import.js:182 +#: frappe/core/doctype/prepared_report/prepared_report.js:68 #: frappe/core/doctype/rq_job/rq_job.js:15 msgid "This will terminate the job immediately and might be dangerous, are you sure?" -msgstr "" +msgstr "此操作将立即终止任务且可能存在风险,是否确认继续?" #: frappe/core/doctype/user/user.py:1293 msgid "Throttled" @@ -26942,7 +27035,7 @@ msgstr "时间戳" #: frappe/desk/doctype/system_console/system_console.js:41 msgid "Tip: Try the new dropdown console using" -msgstr "" +msgstr "提示:尝试使用新的下拉控制台" #. Label of the title (Data) field in DocType 'DocType State' #. Label of the method (Data) field in DocType 'Error Log' @@ -27195,7 +27288,7 @@ msgstr "Token缓存" #. Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "Token Endpoint Auth Method" -msgstr "" +msgstr "令牌端点认证方法" #. Label of the token_type (Data) field in DocType 'Token Cache' #: frappe/integrations/doctype/token_cache/token_cache.json @@ -27341,7 +27434,7 @@ msgstr "总进程时间" #. Account' #: frappe/email/doctype/email_account/email_account.json msgid "Total number of emails to sync in initial sync process" -msgstr "" +msgstr "初始同步过程中要同步的邮件总数" #: frappe/public/js/print_format_builder/ConfigureColumns.vue:12 msgid "Total:" @@ -27439,7 +27532,7 @@ msgstr "状态转换规则" #. Label of the transition_tasks (Link) field in DocType 'Workflow Transition' #: frappe/workflow/doctype/workflow_transition/workflow_transition.json msgid "Transition Tasks" -msgstr "" +msgstr "过渡任务" #. Label of the transitions (Table) field in DocType 'Workflow' #: frappe/workflow/doctype/workflow/workflow.json @@ -27491,7 +27584,7 @@ msgstr "翻译" #. Name of a role #: frappe/core/doctype/translation/translation.json msgid "Translator" -msgstr "" +msgstr "翻译人员" #. Option for the 'Email Status' (Select) field in DocType 'Communication' #: frappe/core/doctype/communication/communication.json @@ -27719,24 +27812,24 @@ msgstr "URL必须以http://或https://开头" #. Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "URL of a human-readable page with info that developers might need." -msgstr "" +msgstr "包含开发人员可能需要信息的人类可读页面URL。" #. Description of the 'Client URI' (Data) field in DocType 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "URL of a web page providing information about the client." -msgstr "" +msgstr "提供客户端相关信息的网页URL。" #. Description of the 'Resource TOS URI' (Data) field in DocType 'OAuth #. Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "URL of human-readable page with info about the protected resource's terms of service." -msgstr "" +msgstr "包含受保护资源服务条款信息的人类可读页面URL。" #. Description of the 'Resource Policy URI' (Data) field in DocType 'OAuth #. Settings' #: frappe/integrations/doctype/oauth_settings/oauth_settings.json msgid "URL of human-readable page with info on requirements about how the client can use the data." -msgstr "" +msgstr "包含客户端数据使用要求信息的人类可读页面URL。" #: frappe/website/doctype/web_page/web_page.js:84 msgid "URL of the page" @@ -27745,17 +27838,17 @@ msgstr "页面URL" #. Description of the 'Policy URI' (Data) field in DocType 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "URL that points to a human-readable policy document for the client. Should be shown to end-user before authorizing." -msgstr "" +msgstr "指向客户端人类可读策略文档的URL。应在授权前向最终用户展示。" #. Description of the 'TOS URI' (Data) field in DocType 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "URL that points to a human-readable terms of service document for the client. Should be shown to end-user before authorizing." -msgstr "" +msgstr "指向客户端人类可读服务条款文档的URL。应在授权前向最终用户展示。" #. Description of the 'Logo URI' (Data) field in DocType 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "URL that references a logo for the client." -msgstr "" +msgstr "引用客户端标识的URL。" #. Description of the 'URL' (Data) field in DocType 'Website Slideshow Item' #: frappe/website/doctype/website_slideshow_item/website_slideshow_item.json @@ -27827,24 +27920,24 @@ msgstr "取消分派条件" msgid "Uncaught Exception" msgstr "未捕获异常" -#: frappe/public/js/frappe/form/toolbar.js:103 +#: frappe/public/js/frappe/form/toolbar.js:107 msgid "Unchanged" msgstr "未变更" -#: frappe/public/js/frappe/form/toolbar.js:518 +#: frappe/public/js/frappe/form/toolbar.js:544 msgid "Undo" msgstr "撤销" -#: frappe/public/js/frappe/form/toolbar.js:526 +#: frappe/public/js/frappe/form/toolbar.js:552 msgid "Undo last action" msgstr "撤销上一步操作" #: frappe/database/query.py:1497 msgid "Unescaped quotes in string literal: {0}" -msgstr "" +msgstr "字符串字面量中存在未转义的引号:{0}" #: frappe/public/js/frappe/form/templates/form_sidebar.html:109 -#: frappe/public/js/frappe/form/toolbar.js:879 +#: frappe/public/js/frappe/form/toolbar.js:905 msgid "Unfollow" msgstr "取消关注" @@ -27872,7 +27965,7 @@ msgstr "唯一" msgid "Unique ID assigned by the client developer used to identify the client software to be dynamically registered.\n" "
\n" "Should remain same across multiple versions or updates of the software." -msgstr "" +msgstr "由客户端开发人员分配的唯一ID,用于标识要动态注册的客户端软件。
应在软件的多个版本或更新中保持不变。" #: frappe/website/report/website_analytics/website_analytics.js:60 msgid "Unknown" @@ -27882,7 +27975,7 @@ msgstr "未知" msgid "Unknown Column: {0}" msgstr "未知列: {0}" -#: frappe/utils/data.py:1256 +#: frappe/utils/data.py:1255 msgid "Unknown Rounding Method: {}" msgstr "未知舍入方法:{}" @@ -27956,7 +28049,7 @@ msgstr "已退订" #: frappe/database/query.py:655 frappe/database/query.py:1389 #: frappe/database/query.py:1399 msgid "Unsupported function or invalid field name: {0}" -msgstr "" +msgstr "不支持的函数或无效字段名:{0}" #: frappe/public/js/frappe/data_import/import_preview.js:72 msgid "Untitled Column" @@ -28025,7 +28118,7 @@ msgstr "更新密码" #. Title of the edit-profile Web Form #: frappe/core/web_form/edit_profile/edit_profile.json msgid "Update Profile" -msgstr "" +msgstr "更新个人资料" #. Label of the update_series (Section Break) field in DocType 'Document Naming #. Settings' @@ -28110,7 +28203,7 @@ msgstr "更新全局设置" msgid "Updating naming series options" msgstr "更新命名系列选项" -#: frappe/public/js/frappe/form/toolbar.js:136 +#: frappe/public/js/frappe/form/toolbar.js:140 msgid "Updating related fields..." msgstr "正在更新相关字段..." @@ -28446,7 +28539,7 @@ msgstr "用户图片" #. Name of a DocType #: frappe/core/doctype/user_invitation/user_invitation.json msgid "User Invitation" -msgstr "" +msgstr "用户邀请" #: frappe/public/js/frappe/ui/toolbar/navbar.html:115 msgid "User Menu" @@ -28504,7 +28597,7 @@ msgstr "用户选择单据类型" #. Name of a DocType #: frappe/core/doctype/user_session_display/user_session_display.json msgid "User Session Display" -msgstr "" +msgstr "用户会话显示" #. Label of a standard navbar item #. Type: Action @@ -28559,7 +28652,7 @@ msgstr "用户无权创建新{0}" #: frappe/core/doctype/user_invitation/user_invitation.py:102 msgid "User is disabled" -msgstr "" +msgstr "用户已禁用" #: frappe/core/doctype/docshare/docshare.py:56 msgid "User is mandatory for Share" @@ -28756,7 +28849,7 @@ msgstr "有效性" #: frappe/public/js/frappe/list/bulk_operations.js:336 #: frappe/public/js/frappe/list/bulk_operations.js:398 #: frappe/public/js/frappe/list/list_view_permission_restrictions.html:4 -#: frappe/website/doctype/web_form/web_form.js:200 +#: frappe/website/doctype/web_form/web_form.js:213 #: frappe/website/doctype/website_meta_tag/website_meta_tag.json msgid "Value" msgstr "值" @@ -28819,7 +28912,7 @@ msgstr "值必须是 {0} 之一" #. 'OAuth Client' #: frappe/integrations/doctype/oauth_client/oauth_client.json msgid "Value of \"None\" implies a public client. In such a case Client Secret is not given to the client and token exchange makes use of PKCE." -msgstr "" +msgstr "值为\"None\"表示公共客户端。在此情况下,客户端密钥不会提供给客户端,令牌交换将使用PKCE。" #. Label of the value_to_validate (Data) field in DocType 'Onboarding Step' #: frappe/desk/doctype/onboarding_step/onboarding_step.json @@ -28834,7 +28927,7 @@ msgstr "值过大" msgid "Value {0} missing for {1}" msgstr "{1} 不包括值 {0}" -#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:869 +#: frappe/core/doctype/data_import/importer.py:773 frappe/utils/data.py:868 msgid "Value {0} must be in the valid duration format: d h m s" msgstr "值{0}必须符合有效时长格式:d h m s" @@ -28856,7 +28949,7 @@ msgstr "Verdana" msgid "Verification" msgstr "验证" -#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:357 +#: frappe/templates/includes/login/login.js:336 frappe/twofactor.py:366 msgid "Verification Code" msgstr "验证码" @@ -28914,7 +29007,7 @@ msgstr "查看" msgid "View All" msgstr "查看全部" -#: frappe/public/js/frappe/form/toolbar.js:580 +#: frappe/public/js/frappe/form/toolbar.js:606 msgid "View Audit Trail" msgstr "查看审计跟踪" @@ -29025,7 +29118,7 @@ msgstr "虚拟文档类型{}需要重写名为{}的实例方法,找到{}" #: frappe/core/doctype/doctype/doctype.py:1658 msgid "Virtual tables must be virtual fields" -msgstr "" +msgstr "虚拟表必须为虚拟字段" #. Label of the visibility_section (Section Break) field in DocType 'DocField' #: frappe/core/doctype/docfield/docfield.json @@ -29668,7 +29761,7 @@ msgstr "工作流状态" #. Option for the 'Script Type' (Select) field in DocType 'Server Script' #: frappe/core/doctype/server_script/server_script.json msgid "Workflow Task" -msgstr "" +msgstr "工作流任务" #. Name of a DocType #: frappe/workflow/doctype/workflow_transition/workflow_transition.json @@ -29678,12 +29771,12 @@ msgstr "工作流状态转换" #. Name of a DocType #: frappe/workflow/doctype/workflow_transition_task/workflow_transition_task.json msgid "Workflow Transition Task" -msgstr "" +msgstr "工作流转场任务" #. Name of a DocType #: frappe/workflow/doctype/workflow_transition_tasks/workflow_transition_tasks.json msgid "Workflow Transition Tasks" -msgstr "" +msgstr "工作流转场任务" #. Description of a DocType #: frappe/workflow/doctype/workflow_state/workflow_state.json @@ -29880,9 +29973,9 @@ msgstr "黄色" #. Settings' #. Option for the 'Standard' (Select) field in DocType 'Print Format' #: frappe/core/doctype/page/page.json frappe/core/doctype/report/report.json -#: frappe/email/doctype/notification/notification.py:95 -#: frappe/email/doctype/notification/notification.py:100 +#: frappe/email/doctype/notification/notification.py:97 #: frappe/email/doctype/notification/notification.py:102 +#: frappe/email/doctype/notification/notification.py:104 #: frappe/integrations/doctype/ldap_settings/ldap_settings.json #: frappe/integrations/doctype/webhook/webhook.py:125 #: frappe/integrations/doctype/webhook/webhook.py:132 @@ -29920,15 +30013,15 @@ msgstr "您已点赞" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:266 msgid "You added 1 row to {0}" -msgstr "" +msgstr "您向{0}添加了1行" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:244 msgid "You added {0} rows to {1}" -msgstr "" +msgstr "您向{1}添加了{0}行" #: frappe/public/js/frappe/router.js:642 msgid "You are about to open an external link. To confirm, click the link again." -msgstr "" +msgstr "您即将打开外部链接。请再次点击链接以确认。" #: frappe/public/js/frappe/dom.js:438 msgid "You are connected to internet." @@ -29977,7 +30070,7 @@ msgstr "未被授权导出单据类型{}" msgid "You are not allowed to print this report" msgstr "您未被授权打印此报表" -#: frappe/public/js/frappe/views/communication.js:787 +#: frappe/public/js/frappe/views/communication.js:778 msgid "You are not allowed to send emails related to this document" msgstr "你不允许发送与此单据相关的电子邮件" @@ -29999,7 +30092,7 @@ msgstr "你没有权限访问此页面。" #: frappe/__init__.py:465 msgid "You are not permitted to access this resource. Login to access" -msgstr "" +msgstr "您无权访问此资源。请登录后访问" #: frappe/public/js/frappe/form/sidebar/document_follow.js:131 msgid "You are now following this document. You will receive daily updates via email. You can change this in User Settings." @@ -30032,7 +30125,7 @@ msgstr "也可在浏览器中粘贴以下链接" #: frappe/templates/emails/download_data.html:9 msgid "You can also copy-paste this" -msgstr "" +msgstr "您也可以复制粘贴此内容" #: frappe/templates/emails/delete_data_confirmation.html:11 msgid "You can also copy-paste this {0} to your browser" @@ -30040,7 +30133,7 @@ msgstr "也可将{0}粘贴到浏览器" #: frappe/templates/emails/user_invitation_expired.html:8 msgid "You can ask your team to resend the invitation if you'd still like to join." -msgstr "" +msgstr "若您仍希望加入,可请团队重新发送邀请。" #: frappe/core/page/permission_manager/permission_manager_help.html:17 msgid "You can change Submitted documents by cancelling them and then, amending them." @@ -30163,9 +30256,9 @@ msgstr "你创建了本单据" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:340 msgctxt "Form timeline" msgid "You created this document {0}" -msgstr "" +msgstr "您于{0}创建本文档" -#: frappe/client.py:417 +#: frappe/client.py:428 msgid "You do not have Read or Select Permissions for {}" msgstr "您对{}无读取或选择权限" @@ -30179,7 +30272,7 @@ msgstr "您未被授权完成此操作" #: frappe/database/query.py:531 msgid "You do not have permission to access field: {0}" -msgstr "" +msgstr "您无权访问字段:{0}" #: frappe/desk/query_report.py:934 msgid "You do not have permission to access {0}: {1}." @@ -30211,7 +30304,7 @@ msgstr "您未被授权访问此单据" #: frappe/templates/emails/new_message.html:1 msgid "You have a new message from:" -msgstr "" +msgstr "您收到来自以下用户的新消息:" #: frappe/handler.py:119 msgid "You have been successfully logged out" @@ -30225,7 +30318,7 @@ msgstr "已达到数据库表{0}的行大小限制" msgid "You have not entered a value. The field will be set to empty." msgstr "未输入字段值,字段值将被设为空值" -#: frappe/twofactor.py:437 +#: frappe/twofactor.py:446 msgid "You have to enable Two Factor Auth from System Settings." msgstr "需从系统设置启用双因素认证" @@ -30304,7 +30397,7 @@ msgstr "您需要登录才能访问此{0}。" #: frappe/public/js/frappe/widgets/links_widget.js:63 msgid "You need to create these first:" -msgstr "" +msgstr "您需要先创建以下内容:" #: frappe/www/login.html:76 msgid "You need to enable JavaScript for your app to work." @@ -30334,13 +30427,13 @@ msgstr "您需要{0} {1}的写入权限才能合并" msgid "You need write permission on {0} {1} to rename" msgstr "您需要{0} {1}的写入权限才能重命名" -#: frappe/client.py:449 +#: frappe/client.py:460 msgid "You need {0} permission to fetch values from {1} {2}" msgstr "您需要{0}权限才能从{1} {2}获取值" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:311 msgid "You removed 1 row from {0}" -msgstr "" +msgstr "您从{0}移除了1行" #: frappe/public/js/frappe/form/footer/form_timeline.js:419 msgctxt "Form timeline" @@ -30349,7 +30442,7 @@ msgstr "您移除了附件{0}" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:289 msgid "You removed {0} rows from {1}" -msgstr "" +msgstr "您从{1}移除了{0}行" #: frappe/public/js/frappe/widgets/onboarding_widget.js:520 msgid "You seem good to go!" @@ -30383,15 +30476,15 @@ msgstr "您查看了此内容" #: frappe/public/js/frappe/router.js:653 msgid "You will be redirected to:" -msgstr "" +msgstr "您将被重定向至:" #: frappe/core/doctype/user_invitation/user_invitation.py:113 msgid "You've been invited to join {0}" -msgstr "" +msgstr "您已获邀加入{0}" #: frappe/templates/emails/user_invitation.html:5 msgid "You've been invited to join {0}." -msgstr "" +msgstr "您已获邀加入{0}。" #: frappe/public/js/frappe/desk.js:547 msgid "You've logged in as another user from another tab. Refresh this page to continue using system." @@ -30403,7 +30496,7 @@ msgstr "YouTube的" #: frappe/core/doctype/prepared_report/prepared_report.js:57 msgid "Your CSV file is being generated and will appear in the Attachments section once ready. Additionally, you will get notified when the file is available for download." -msgstr "" +msgstr "您的CSV文件正在生成,完成后将显示在附件区域。此外,文件可供下载时您将收到通知。" #: frappe/desk/page/setup_wizard/setup_wizard.js:397 msgid "Your Country" @@ -30456,7 +30549,7 @@ msgstr "您的电子邮件地址" #: frappe/desk/utils.py:105 msgid "Your exported report: {0}" -msgstr "" +msgstr "您导出的报告:{0}" #: frappe/public/js/frappe/web_form/web_form.js:452 msgid "Your form has been successfully updated" @@ -30464,11 +30557,11 @@ msgstr "您的表单已成功更新" #: frappe/templates/emails/user_invitation_cancelled.html:5 msgid "Your invitation to join {0} has been cancelled by the site administrator." -msgstr "" +msgstr "您加入{0}的邀请已被站点管理员取消。" #: frappe/templates/emails/user_invitation_expired.html:5 msgid "Your invitation to join {0} has expired." -msgstr "" +msgstr "您加入{0}的邀请已过期。" #: frappe/templates/emails/new_user.html:6 msgid "Your login id is" @@ -30494,7 +30587,7 @@ msgstr "您的问题已收到。我们将尽快回复邮件。如果您还有任 #: frappe/desk/query_report.py:342 frappe/desk/reportview.py:397 msgid "Your report is being generated in the background. You will receive an email on {0} with a download link once it is ready." -msgstr "" +msgstr "您的报告正在后台生成。报告准备就绪后,您将在{0}收到包含下载链接的邮件。" #: frappe/app.py:377 msgid "Your session has expired, please login again to continue." @@ -30508,7 +30601,7 @@ msgstr "您的站点正在进行维护或更新" msgid "Your verification code is {0}" msgstr "您的验证码是{0}" -#: frappe/utils/data.py:1558 +#: frappe/utils/data.py:1557 msgid "Zero" msgstr "零" @@ -30551,7 +30644,7 @@ msgstr "新增" msgid "amend" msgstr "修订" -#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1564 +#: frappe/public/js/frappe/utils/utils.js:395 frappe/utils/data.py:1563 msgid "and" msgstr "和" @@ -30592,7 +30685,7 @@ msgstr "取消" #. Option for the 'PDF Generator' (Select) field in DocType 'Print Format' #: frappe/printing/doctype/print_format/print_format.json msgid "chrome" -msgstr "" +msgstr "Chrome浏览器" #: frappe/templates/includes/list/filters.html:19 msgid "clear" @@ -30838,7 +30931,7 @@ msgstr "列表" msgid "logged in" msgstr "已登录" -#: frappe/website/doctype/web_form/web_form.js:369 +#: frappe/website/doctype/web_form/web_form.js:382 msgid "login_required" msgstr "需要登录" @@ -31133,7 +31226,7 @@ msgstr "这不应中断" #: frappe/templates/emails/download_data.html:9 msgid "to your browser" -msgstr "" +msgstr "至您的浏览器" #. Option for the 'Social Link Type' (Select) field in DocType 'Social Link #. Settings' @@ -31164,7 +31257,7 @@ msgstr "通过分配规则" #: frappe/automation/doctype/auto_repeat/auto_repeat.py:264 msgid "via Auto Repeat" -msgstr "" +msgstr "通过自动重复" #: frappe/core/doctype/data_import/importer.py:271 #: frappe/core/doctype/data_import/importer.py:292 @@ -31176,7 +31269,7 @@ msgstr "通过数据导入" msgid "via Google Meet" msgstr "通过Google Meet" -#: frappe/email/doctype/notification/notification.py:405 +#: frappe/email/doctype/notification/notification.py:410 msgid "via Notification" msgstr "通过通知" @@ -31216,7 +31309,7 @@ msgstr "wkhtmltopdf 0.12.x(带补丁的qt)" #. Option for the 'Doc Event' (Select) field in DocType 'Webhook' #: frappe/integrations/doctype/webhook/webhook.json msgid "workflow_transition" -msgstr "" +msgstr "工作流转换" #. Option for the 'Permission Type' (Select) field in DocType 'Permission #. Inspector' @@ -31313,7 +31406,7 @@ msgstr "{0}列表" #: frappe/public/js/frappe/list/list_settings.js:33 msgid "{0} List View Settings" -msgstr "" +msgstr "{0}列表视图设置" #: frappe/public/js/frappe/utils/pretty_date.js:37 msgid "{0} M" @@ -31367,11 +31460,11 @@ msgstr "{0} 成功添加" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:268 msgid "{0} added 1 row to {1}" -msgstr "" +msgstr "{0}向{1}添加了1行" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:246 msgid "{0} added {1} rows to {2}" -msgstr "" +msgstr "{0}向{2}添加了{1}行" #: frappe/public/js/frappe/form/controls/data.js:215 msgid "{0} already exists. Select another name" @@ -31385,7 +31478,7 @@ msgstr "{0}已经退订" msgid "{0} already unsubscribed for {1} {2}" msgstr "{0}已经退订了{1} {2}" -#: frappe/utils/data.py:1765 +#: frappe/utils/data.py:1764 msgid "{0} and {1}" msgstr "{0}和{1}" @@ -31410,7 +31503,7 @@ msgctxt "Form timeline" msgid "{0} attached {1}" msgstr "{0}附加了{1}" -#: frappe/core/doctype/system_settings/system_settings.py:156 +#: frappe/core/doctype/system_settings/system_settings.py:158 msgid "{0} can not be more than {1}" msgstr "{0}不能超过{1}" @@ -31468,7 +31561,7 @@ msgstr "{0} 创建了本单据" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:343 msgctxt "Form timeline" msgid "{0} created this document {1}" -msgstr "" +msgstr "{0}于{1}创建本文档" #: frappe/public/js/frappe/utils/pretty_date.js:33 msgid "{0} d" @@ -31489,7 +31582,7 @@ msgstr "{0}字段不能在{1}中设置为唯一,因为这里存在非唯一的 #: frappe/database/query.py:710 msgid "{0} fields cannot contain backticks (`): {1}" -msgstr "" +msgstr "{0}字段不能包含反引号(`):{1}" #: frappe/core/doctype/data_import/importer.py:1071 msgid "{0} format could not be determined from the values in this column. Defaulting to {1}." @@ -31583,7 +31676,7 @@ msgstr "{0}是必填项" #: frappe/database/query.py:487 msgid "{0} is not a child table of {1}" -msgstr "" +msgstr "{0}不是{1}的子表" #: frappe/core/doctype/document_naming_rule/document_naming_rule.py:50 msgid "{0} is not a field of doctype {1}" @@ -31644,7 +31737,7 @@ msgstr "{0}不是zip文件" #: frappe/core/doctype/user_invitation/user_invitation.py:182 msgid "{0} is not an allowed role for {1}" -msgstr "" +msgstr "{0}不是{1}的允许角色" #: frappe/public/js/frappe/views/reports/report_view.js:1444 msgid "{0} is not equal to {1}" @@ -31723,7 +31816,7 @@ msgstr "{0}分钟前" msgid "{0} months ago" msgstr "{0}个月前" -#: frappe/model/document.py:1837 +#: frappe/model/document.py:1841 msgid "{0} must be after {1}" msgstr "{0}必须在{1}之后" @@ -31780,12 +31873,12 @@ msgstr "第{0}项 / 共{1}项" msgid "{0} of {1} ({2} rows with children)" msgstr "{0} / {1} ({2} 行有子记录)" -#: frappe/utils/data.py:1566 +#: frappe/utils/data.py:1565 msgctxt "Money in words" msgid "{0} only." msgstr "仅{0}" -#: frappe/utils/data.py:1747 +#: frappe/utils/data.py:1746 msgid "{0} or {1}" msgstr "{0}或{1}" @@ -31811,7 +31904,7 @@ msgstr "将导出 {0} 笔记录" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:313 msgid "{0} removed 1 row from {1}" -msgstr "" +msgstr "{0}从{1}移除了1行" #: frappe/public/js/frappe/form/footer/form_timeline.js:420 msgctxt "Form timeline" @@ -31824,25 +31917,25 @@ msgstr "{0}移除了其分配" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:291 msgid "{0} removed {1} rows from {2}" -msgstr "" +msgstr "{0}从{2}移除了{1}行" #: frappe/public/js/frappe/roles_editor.js:64 msgid "{0} role does not have permission on any doctype" msgstr "角色 {0} 无单据类型权限" -#: frappe/model/document.py:1828 +#: frappe/model/document.py:1832 msgid "{0} row #{1}:" -msgstr "" +msgstr "{0}第{1}行:" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:299 msgctxt "User removed rows from child table" msgid "{0} rows from {1}" -msgstr "" +msgstr "{0}行来自{1}" #: frappe/public/js/frappe/form/footer/version_timeline_content_builder.js:254 msgctxt "User added rows to child table" msgid "{0} rows to {1}" -msgstr "" +msgstr "{0}行至{1}" #: frappe/desk/query_report.py:666 msgid "{0} saved successfully" @@ -32109,11 +32202,11 @@ msgstr "{{{0}}}是不是一个有效的字段名模式。它应该是{{FIELD_NAM msgid "{} Complete" msgstr "已完成{}" -#: frappe/utils/data.py:2567 +#: frappe/utils/data.py:2614 msgid "{} Invalid python code on line {}" msgstr "第{}行存在无效Python代码" -#: frappe/utils/data.py:2576 +#: frappe/utils/data.py:2623 msgid "{} Possibly invalid python code.
{}" msgstr "可能存在无效Python代码:
{}" diff --git a/frappe/middlewares.py b/frappe/middlewares.py index 168d129ebe..1898734917 100644 --- a/frappe/middlewares.py +++ b/frappe/middlewares.py @@ -1,7 +1,7 @@ # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors # License: MIT. See LICENSE -import os +from pathlib import Path from werkzeug.exceptions import NotFound from werkzeug.middleware.shared_data import SharedDataMiddleware @@ -18,11 +18,12 @@ class StaticDataMiddleware(SharedDataMiddleware): def get_directory_loader(self, directory): def loader(path): site = get_site_name(frappe.app._site or self.environ.get("HTTP_HOST")) - path = os.path.join(directory, site, "public", "files", cstr(path)) - if os.path.isfile(path): - return os.path.basename(path), self._opener(path) - else: + files_path = Path(directory) / site / "public" / "files" + requested_path = Path(cstr(path)) + path = (files_path / requested_path).resolve() + if not path.is_relative_to(files_path) or not path.is_file(): raise NotFound - # return None, None + + return path.name, self._opener(path) return loader diff --git a/frappe/model/db_query.py b/frappe/model/db_query.py index 6a0b358654..ae39b9913c 100644 --- a/frappe/model/db_query.py +++ b/frappe/model/db_query.py @@ -846,7 +846,7 @@ from {tables} nodes = frappe.get_all( ref_doctype, filters={"lft": [">", lft], "rgt": ["<", rgt]}, - order_by="`lft` ASC", + order_by="lft ASC", pluck="name", ) if f.operator.lower() == "descendants of (inclusive)": @@ -856,7 +856,7 @@ from {tables} nodes = frappe.get_all( ref_doctype, filters={"lft": ["<", lft], "rgt": [">", rgt]}, - order_by="`lft` DESC", + order_by="lft DESC", pluck="name", ) @@ -1377,7 +1377,7 @@ def get_order_by(doctype, meta): # will covert to # `tabItem`.`idx` desc, `tabItem`.`creation` desc order_by = ", ".join( - f"`tab{doctype}`.`{f_split[0].strip()}` {f_split[1].strip()}" + f"{f_split[0].strip()} {f_split[1].strip()}" for f in meta.sort_field.split(",") if (f_split := f.split(maxsplit=2)) ) @@ -1385,7 +1385,7 @@ def get_order_by(doctype, meta): else: sort_field = meta.sort_field or "creation" sort_order = (meta.sort_field and meta.sort_order) or "desc" - order_by = f"`tab{doctype}`.`{sort_field}` {sort_order}" + order_by = f"{sort_field} {sort_order}" return order_by diff --git a/frappe/model/document.py b/frappe/model/document.py index ff59909ed7..06114abc93 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -1703,10 +1703,14 @@ class Document(BaseDocument): return view_log - def log_error(self, title=None, message=None): + def log_error(self, title=None, message=None, *, defer_insert=False): """Helper function to create an Error Log""" return frappe.log_error( - message=message, title=title, reference_doctype=self.doctype, reference_name=self.name + message=message, + title=title, + reference_doctype=self.doctype, + reference_name=self.name, + defer_insert=defer_insert, ) def get_signature(self): diff --git a/frappe/model/meta.py b/frappe/model/meta.py index e566017ba7..8167bd145d 100644 --- a/frappe/model/meta.py +++ b/frappe/model/meta.py @@ -167,6 +167,8 @@ class Meta(Document): # don't process for special doctypes # prevents circular dependency if self.name in self.special_doctypes: + if self.name == "DocPerm": + self.add_custom_fields() self.init_field_caches() return @@ -418,11 +420,6 @@ class Meta(Document): self.extend("fields", custom_fields) def apply_property_setters(self): - """ - Property Setters are set via Customize Form. They override standard properties - of the doctype or its child properties like fields, links etc. This method - applies the customized properties over the standard meta object - """ if not frappe.db.table_exists("Property Setter"): return diff --git a/frappe/model/naming.py b/frappe/model/naming.py index bc1eb9d0f3..c5db6241cb 100644 --- a/frappe/model/naming.py +++ b/frappe/model/naming.py @@ -137,7 +137,7 @@ class NamingSeries: def get_current_value(self) -> int: prefix = self.get_prefix() - return cint(frappe.db.get_value("Series", prefix, "current", order_by="name")) + return cint(frappe.db.get_value("Series", prefix, "current", order_by="name", for_update=True)) def set_new_name(doc): diff --git a/frappe/model/qb_query.py b/frappe/model/qb_query.py new file mode 100644 index 0000000000..035526843a --- /dev/null +++ b/frappe/model/qb_query.py @@ -0,0 +1,346 @@ +# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors +# License: MIT. See LICENSE +"""Query implementation using frappe's query builder""" + +import copy +import json +from typing import Any + +import frappe +from frappe.database.utils import DefaultOrderBy, FilterValue +from frappe.deprecation_dumpster import deprecation_warning +from frappe.model.utils import is_virtual_doctype +from frappe.model.utils.user_settings import get_user_settings, update_user_settings +from frappe.query_builder.utils import Column + + +class DatabaseQuery: + """ + Copy of db_query.py DatabaseQuery, using query builder instead. + """ + + def __init__(self, doctype: str) -> None: + self.doctype = doctype + + def execute( + self, + fields: list[str] | tuple[str, ...] | str | None = None, + filters: dict[str, FilterValue] | FilterValue | list[list | FilterValue] | None = None, + or_filters: dict[str, FilterValue] | FilterValue | list[list | FilterValue] | None = None, + group_by: str | None = None, + order_by: str = DefaultOrderBy, + limit: int | None = None, + offset: int | None = None, + limit_start: int = 0, + limit_page_length: int | None = None, + as_list: bool = False, + with_childnames: bool = False, + debug: bool = False, + ignore_permissions: bool = False, + user: str | None = None, + with_comment_count: bool = False, + join: str = "left join", + distinct: bool = False, + start: int | None = None, + page_length: int | None = None, + ignore_ifnull: bool = False, + save_user_settings: bool = False, + save_user_settings_fields: bool = False, + update: dict[str, Any] | None = None, + user_settings: str | dict[str, Any] | None = None, + reference_doctype: str | None = None, + run: bool = True, + strict: bool = True, + pluck: str | None = None, + ignore_ddl: bool = False, + *, + parent_doctype: str | None = None, + ) -> list: + """Execute a database query using the Query Builder engine. + + Args: + fields: Fields to select. Can be a list, tuple, or comma-separated string. + filters: Main filter conditions. Supports dicts, lists, and operator tuples. + or_filters: Additional filter conditions to be combined with OR. + group_by: Fields to group results by. + order_by: Fields to order results by. + limit: Maximum number of records to return. + offset: Number of records to skip for pagination. + limit_start: Legacy pagination start (deprecated, use offset). + limit_page_length: Legacy pagination length (deprecated, use limit). + as_list: Return results as list of lists instead of list of dicts. + with_childnames: Include child document names (not implemented). + debug: Enable debug mode for query inspection. + ignore_permissions: Skip permission checks for the query. + user: Execute query as specific user. + with_comment_count: Add comment count to results (_comment_count field). + join: Type of join for related tables (QB engine auto-determines optimal joins). + distinct: Return only distinct results. + start: Legacy alias for limit_start (deprecated). + page_length: Legacy alias for limit_page_length (deprecated). + ignore_ifnull: Skip IFNULL wrapping (QB engine handles NULL optimization automatically). + save_user_settings: Save current query settings for user. + save_user_settings_fields: Save field selection in user settings. + update: Dictionary to merge into each result when as_list=False. + user_settings: Custom user settings as JSON string or dict. + reference_doctype: Reference doctype for contextual user permissions. + run: Execute query immediately (True) or return query object (False). + strict: Enable strict mode for query validation (legacy compatibility). + pluck: Extract single field values as a simple list. + ignore_ddl: Ignore DDL operations during query execution (legacy compatibility). + parent_doctype: Parent doctype for child table queries. + + Returns: + Query results as list of dicts (default) or list of lists (as_list=True). + If pluck is specified, returns list of field values. + If run=False, returns query object instead of results. + + Raises: + ValidationError: For invalid parameters or query structure. + PermissionError: When user lacks required permissions. + """ + + # filters and fields swappable + # its hard to remember what comes first + if isinstance(fields, dict) or (fields and isinstance(fields, list) and isinstance(fields[0], list)): + # if fields is given as dict/list of list, its probably filters + filters, fields = fields, filters + + elif fields and isinstance(filters, list) and len(filters) > 1 and isinstance(filters[0], str): + # if `filters` is a list of strings, its probably fields + filters, fields = fields, filters + + # Handle virtual doctypes before any other processing + if is_virtual_doctype(self.doctype): + return self._handle_virtual_doctype( + filters, + or_filters, + start, + offset, + limit_start, + page_length, + limit, + limit_page_length, + order_by, + as_list, + with_comment_count, + save_user_settings, + save_user_settings_fields, + pluck, + parent_doctype, + ) + + # Handle deprecated parameters + if limit_start: + deprecation_warning( + "2024-01-01", "v17", "The 'limit_start' parameter is deprecated. Use 'offset' instead." + ) + if offset is None: + offset = limit_start + + if limit_page_length: + deprecation_warning( + "2024-01-01", "v17", "The 'limit_page_length' parameter is deprecated. Use 'limit' instead." + ) + if limit is None: + limit = limit_page_length + + if start: + deprecation_warning( + "2024-01-01", "v17", "The 'start' parameter is deprecated. Use 'offset' instead." + ) + if offset is None: + offset = start + + if page_length: + deprecation_warning( + "2024-01-01", "v17", "The 'page_length' parameter is deprecated. Use 'limit' instead." + ) + if limit is None: + limit = page_length + + # Set fields to the requested field or `name` if none specified + if not fields: + fields = [pluck or "name"] + + # Check if table exists before running query + from frappe.model.meta import get_table_columns + + try: + get_table_columns(self.doctype) + except frappe.db.TableMissingError: + if ignore_ddl: + return [] + else: + raise + + # Build query using QB engine with converted syntax + kwargs = { + "table": self.doctype, + "fields": fields, + "filters": filters, + "or_filters": or_filters, + "group_by": group_by, + "order_by": order_by, + "limit": frappe.cint(limit), + "offset": frappe.cint(offset), + "distinct": distinct, + "ignore_permissions": ignore_permissions, + "user": user, + "parent_doctype": parent_doctype, + "reference_doctype": reference_doctype, + "db_query_compat": True, + } + + query = frappe.qb.get_query(**kwargs) + + if not run: + # Return the SQL query string instead of executing + return str(query.get_sql()) + + # Run the query + if pluck: + result = query.run(debug=debug, as_dict=True, pluck=pluck) + else: + result = query.run(debug=debug, as_dict=not as_list, update=update) + + # Add comment count if requested and not as_list + if with_comment_count and not as_list and self.doctype: + self._add_comment_count(result) + + # Save user settings if requested + if save_user_settings: + user_settings_fields = copy.deepcopy(fields) if save_user_settings_fields else None + + if user_settings and isinstance(user_settings, str): + user_settings = json.loads(user_settings) + + self._save_user_settings(user_settings, user_settings_fields, save_user_settings_fields) + + return result + + def _add_comment_count(self, result: list[Any]) -> None: + """Add comment count to each result row by parsing _comments field. + + This method adds a _comment_count field to each row based on the _comments field content. + It parses the JSON structure to count the number of comments. + + Args: + result: List of result dictionaries to modify + """ + if not result: + return + + for row in result: + if isinstance(row, dict) and "_comments" in row: + try: + comments_data = json.loads(row["_comments"] or "[]") + row["_comment_count"] = len(comments_data) if isinstance(comments_data, list) else 0 + except (json.JSONDecodeError, TypeError): + row["_comment_count"] = 0 + elif isinstance(row, dict): + row["_comment_count"] = 0 + + def _save_user_settings( + self, + user_settings: dict[str, Any] | None, + user_settings_fields: list[str] | None, + save_user_settings_fields: bool, + ) -> None: + """Save user settings for the current query. + + This method stores user preferences for field selections and other query parameters + to provide a personalized experience for repeated queries. + + Args: + user_settings: Custom user settings to save + user_settings_fields: Field list to save if save_user_settings_fields is True + save_user_settings_fields: Whether to save the field selection + """ + if not self.doctype: + return + + try: + current_settings = get_user_settings(self.doctype) or {} + + # Update with custom user settings if provided + if user_settings: + current_settings.update(user_settings) + + # Save field selection if requested + if save_user_settings_fields and user_settings_fields: + current_settings["fields"] = user_settings_fields + + # Only save if there are actual settings to save + if current_settings: + update_user_settings(self.doctype, current_settings) + + except Exception: + # Don't let user settings errors break the query + pass + + def _handle_virtual_doctype( + self, + filters: dict[str, FilterValue] | FilterValue | list[list | FilterValue] | None, + or_filters: dict[str, FilterValue] | FilterValue | list[list | FilterValue] | None, + start: int | None, + offset: int | None, + limit_start: int, + page_length: int | None, + limit: int | None, + limit_page_length: int | None, + order_by: str, + as_list: bool, + with_comment_count: bool, + save_user_settings: bool, + save_user_settings_fields: bool, + pluck: str | None, + parent_doctype: str | None, + ) -> list: + """Handle virtual doctype queries by delegating to controller.get_list(). + + Virtual doctypes don't have database tables and use controller methods + to generate data dynamically. Converts filters to Filters objects and + calls the doctype controller's get_list method. + + Returns: + List of results from controller.get_list() + """ + from frappe.model.base_document import get_controller + from frappe.types.filter import Filters + + controller = get_controller(self.doctype) + if not hasattr(controller, "get_list"): + return [] + + filters = filters or Filters() + if isinstance(filters, str): + filters = json.loads(filters) + if not isinstance(filters, Filters): + filters = Filters(filters, doctype=self.doctype) + + or_filters = or_filters or Filters() + if isinstance(or_filters, str): + or_filters = json.loads(or_filters) + if not isinstance(or_filters, Filters): + or_filters = Filters(or_filters, doctype=self.doctype) + + _page_length = page_length or limit or limit_page_length or 20 + kwargs = { + "filters": filters, + "or_filters": or_filters, + "start": start or offset or limit_start or 0, + "page_length": _page_length, + "limit_page_length": _page_length, + "order_by": order_by, + "as_list": as_list, + "with_comment_count": with_comment_count, + "save_user_settings": save_user_settings, + "save_user_settings_fields": save_user_settings_fields, + "pluck": pluck, + "parent_doctype": parent_doctype, + "doctype": self.doctype, + } + + # Use frappe.call to filter kwargs and call controller + return frappe.call(controller.get_list, args=kwargs, **kwargs) diff --git a/frappe/model/sync.py b/frappe/model/sync.py index 72d644cd0b..4d6b01c14b 100644 --- a/frappe/model/sync.py +++ b/frappe/model/sync.py @@ -9,12 +9,18 @@ import os import frappe from frappe.cache_manager import clear_controller_cache +from frappe.desk.doctype.desktop_icon.desktop_icon import sync_desktop_icons from frappe.model.base_document import get_controller from frappe.modules.import_file import import_file_by_path from frappe.modules.patch_handler import _patch_mode +from frappe.modules.utils import get_app_level_directory_path from frappe.utils import update_progress_bar IMPORTABLE_DOCTYPES = [ + # for a permission type "impersonate" + # its custom field should exists in DocPerm + # to ensure permissions defined in doctype.json are synced correctly + ("core", "permission_type"), ("core", "doctype"), ("core", "page"), ("core", "report"), @@ -27,6 +33,7 @@ IMPORTABLE_DOCTYPES = [ ("email", "notification"), ("printing", "print_style"), ("desk", "workspace"), + ("desk", "workspace_sidebar"), ("desk", "onboarding_step"), ("desk", "module_onboarding"), ("desk", "form_tour"), @@ -39,7 +46,6 @@ IMPORTABLE_DOCTYPES = [ def sync_all(force=0, reset_permissions=False): _patch_mode(True) - for app in frappe.get_installed_apps(): sync_for(app, force, reset_permissions=reset_permissions) @@ -68,6 +74,10 @@ def sync_for(app_name, force=0, reset_permissions=False): ]: files.append(os.path.join(FRAPPE_PATH, "core", "doctype", core_module, f"{core_module}.json")) + # sync permission type and its dependencies + for dt in ["user", "docshare", "custom_docperm", "docperm", "permission_type"]: + files.append(os.path.join(FRAPPE_PATH, "core", "doctype", dt, f"{dt}.json")) + for custom_module in ["custom_field", "property_setter"]: files.append( os.path.join(FRAPPE_PATH, "custom", "doctype", custom_module, f"{custom_module}.json") @@ -93,6 +103,8 @@ def sync_for(app_name, force=0, reset_permissions=False): "workspace_number_card", "workspace_custom_block", "workspace", + "workspace_sidebar", + "workspace_sidebar_item", ]: files.append(os.path.join(FRAPPE_PATH, "desk", "doctype", desk_module, f"{desk_module}.json")) @@ -105,8 +117,15 @@ def sync_for(app_name, force=0, reset_permissions=False): folder = os.path.dirname(frappe.get_module(app_name + "." + module_name).__file__) files = get_doc_files(files=files, start_path=folder) - l = len(files) + app_level_folders = ["desktop_icon", "workspace_sidebar", "sidebar_item_group"] + for folder_name in app_level_folders: + directory_path = get_app_level_directory_path(folder_name, app_name) + if os.path.exists(directory_path): + icon_files = [os.path.join(directory_path, filename) for filename in os.listdir(directory_path)] + for doc_path in icon_files: + files.append(doc_path) + l = len(files) if l: for i, doc_path in enumerate(files): imported = import_file_by_path( diff --git a/frappe/modules/utils.py b/frappe/modules/utils.py index eb62d994b1..8ad5127cba 100644 --- a/frappe/modules/utils.py +++ b/frappe/modules/utils.py @@ -6,6 +6,8 @@ Utilities for using modules import json import os +import shutil +from pathlib import Path from textwrap import dedent, indent from typing import TYPE_CHECKING, Union @@ -216,7 +218,11 @@ def scrub_dt_dn(dt: str, dn: str) -> tuple[str, str]: def get_doc_path(module: str, doctype: str, name: str) -> str: """Return path of a doc in a module.""" - return os.path.join(get_module_path(module), *scrub_dt_dn(doctype, name)) + module_path = Path(get_module_path(module)) + path = module_path / Path(*scrub_dt_dn(doctype, name)) + if not path.resolve().is_relative_to(module_path.resolve()): + raise ValueError(_("Path {0} is not within module {1}").format(path, module)) + return path.resolve() def reload_doc( @@ -369,3 +375,24 @@ def make_boilerplate( custom_controller=controller_body, ) target.write(frappe.as_unicode(controller_file_content)) + + +def create_directory_on_app_path(folder_name, app_name): + app_path = frappe.get_app_path(app_name) + folder_path = os.path.join(app_path, folder_name) + + if not os.path.exists(folder_path): + frappe.create_folder(folder_path) + + return folder_path + + +def get_app_level_directory_path(folder_name, app_name): + app_path = frappe.get_app_path(app_name) + path = os.path.join(app_path, folder_name) + return path + + +def delete_app_level_folder(folder_name, app_name): + path = get_app_level_directory_path(folder_name, app_name) + shutil.rmtree(path, ignore_errors=True) diff --git a/frappe/patches.txt b/frappe/patches.txt index b6374edd7b..3a20616fb0 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -196,6 +196,7 @@ execute:frappe.reload_doc("desk", "doctype", "Form Tour") execute:frappe.delete_doc('Page', 'recorder', ignore_missing=True, force=True) frappe.patches.v14_0.modify_value_column_size_for_singles frappe.integrations.doctype.oauth_bearer_token.patches.clear_old_tokens +execute:frappe.db.truncate("Desktop Icon") [post_model_sync] execute:frappe.get_doc('Role', 'Guest').save() # remove desk access @@ -247,3 +248,5 @@ frappe.patches.v14_0.fix_user_settings_collation execute:frappe.call("frappe.core.doctype.system_settings.system_settings.sync_system_settings") frappe.patches.v15_0.migrate_to_utm frappe.patches.v16_0.add_module_deprecation_warning +frappe.patches.v16_0.auto_generate_desktop_icon_and_sidebar +frappe.patches.v16_0.add_private_workspaces_to_sidebar \ No newline at end of file diff --git a/frappe/patches/v16_0/add_private_workspaces_to_sidebar.py b/frappe/patches/v16_0/add_private_workspaces_to_sidebar.py new file mode 100644 index 0000000000..1f10e42af7 --- /dev/null +++ b/frappe/patches/v16_0/add_private_workspaces_to_sidebar.py @@ -0,0 +1,19 @@ +import click + +import frappe + + +def execute(): + from frappe.query_builder import DocType + + workspace = DocType("Workspace") + all_workspaces = (frappe.qb.from_(workspace).select(workspace.name).where(workspace.public == 0)).run( + pluck=True + ) + from frappe.desk.doctype.workspace_sidebar.workspace_sidebar import add_to_my_workspace + + for space in all_workspaces: + workspace_doc = frappe.get_doc("Workspace", space) + add_to_my_workspace(workspace_doc) + # save the sidebar items + frappe.db.commit() # nosemgrep diff --git a/frappe/patches/v16_0/auto_generate_desktop_icon_and_sidebar.py b/frappe/patches/v16_0/auto_generate_desktop_icon_and_sidebar.py new file mode 100644 index 0000000000..794438375a --- /dev/null +++ b/frappe/patches/v16_0/auto_generate_desktop_icon_and_sidebar.py @@ -0,0 +1,6 @@ +from frappe.utils.install import auto_generate_icons_and_sidebar + + +def execute(): + """Auto Create desktop icons and workspace sidebars.""" + auto_generate_icons_and_sidebar() diff --git a/frappe/permissions.py b/frappe/permissions.py index 2ae9d25d13..eb88809667 100644 --- a/frappe/permissions.py +++ b/frappe/permissions.py @@ -6,10 +6,11 @@ import functools import frappe import frappe.share from frappe import _, msgprint +from frappe.core.doctype.permission_type.permission_type import get_doctype_ptype_map from frappe.query_builder import DocType from frappe.utils import cint, cstr -rights = ( +std_rights = ( "select", "read", "write", @@ -26,6 +27,8 @@ rights = ( "share", ) +rights = std_rights + GUEST_ROLE = "Guest" ALL_USER_ROLE = "All" # This includes website users too. @@ -166,7 +169,10 @@ def has_permission( ) def false_if_not_shared(): - if ptype not in ("read", "write", "share", "submit", "email", "print"): + share_rights = ["read", "write", "share", "submit", "email", "print"] + custom_rights = get_doctype_ptype_map().get(doctype, []) + + if ptype not in share_rights + custom_rights: debug and _debug_log(f"Permission type {ptype} can not be shared") return False @@ -278,7 +284,7 @@ def get_role_permissions(doctype_meta, user=None, is_owner=None, debug=False): if user == "Administrator": debug and _debug_log("all permissions granted because user is Administrator") - return allow_everything() + return allow_everything(doctype_meta.name) if not frappe.local.role_permissions.get(cache_key) or debug: perms = frappe._dict(if_owner={}) @@ -296,7 +302,7 @@ def get_role_permissions(doctype_meta, user=None, is_owner=None, debug=False): has_if_owner_enabled = any(p.get("if_owner", 0) for p in applicable_permissions) perms["has_if_owner_enabled"] = has_if_owner_enabled - for ptype in rights: + for ptype in get_rights(doctype_meta.name): pvalue = any(p.get(ptype, 0) for p in applicable_permissions) # check if any perm object allows perm type perms[ptype] = cint(pvalue) @@ -737,9 +743,16 @@ def get_doc_name(doc): return doc if isinstance(doc, str) else str(doc.name) -def allow_everything(): +def get_rights(doctype=None): + if not doctype: + return std_rights + custom_rights = get_doctype_ptype_map().get(doctype, []) + return list(std_rights) + custom_rights + + +def allow_everything(doctype=None): """Return a dict with access to everything, eg. {"read": 1, "write": 1, ...}.""" - return {ptype: 1 for ptype in rights} + return {ptype: 1 for ptype in get_rights(doctype)} def get_allowed_docs_for_doctype(user_permissions, doctype): diff --git a/frappe/public/icons/icons.svg b/frappe/public/icons/icons.svg new file mode 100644 index 0000000000..58aef42fb3 --- /dev/null +++ b/frappe/public/icons/icons.svg @@ -0,0 +1,9791 @@ + + diff --git a/frappe/public/icons/timeless/icons.svg b/frappe/public/icons/timeless/icons.svg index b8de8f59bc..804a77c568 100644 --- a/frappe/public/icons/timeless/icons.svg +++ b/frappe/public/icons/timeless/icons.svg @@ -19,6 +19,10 @@ Tip: use lucide.svg in /icons for all downloaded icons + + + + @@ -30,19 +34,74 @@ Tip: use lucide.svg in /icons for all downloaded icons + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -161,6 +220,22 @@ Tip: use lucide.svg in /icons for all downloaded icons + + + + + + + + + + + + + + + + @@ -184,11 +259,17 @@ Tip: use lucide.svg in /icons for all downloaded icons - + + + + + + + @@ -329,10 +410,19 @@ Tip: use lucide.svg in /icons for all downloaded icons + + + + + + + + + @@ -390,6 +480,17 @@ Tip: use lucide.svg in /icons for all downloaded icons + + + + + + + + + + + @@ -428,10 +529,61 @@ Tip: use lucide.svg in /icons for all downloaded icons - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frappe/public/js/desk.bundle.js b/frappe/public/js/desk.bundle.js index cd7653fba3..91577b6bfa 100644 --- a/frappe/public/js/desk.bundle.js +++ b/frappe/public/js/desk.bundle.js @@ -9,10 +9,11 @@ import "./frappe/dom.js"; import "./frappe/ui/messages.js"; import "./frappe/ui/keyboard.js"; import "./frappe/ui/colors.js"; -import "./frappe/ui/sidebar.html"; -import "./frappe/ui/sidebar.js"; -import "./frappe/ui/apps_switcher.js"; -import "./frappe/ui/apps_switcher.html"; +import "./frappe/ui/sidebar/sidebar_header.js"; +import "./frappe/ui/sidebar/sidebar_header.html"; +import "./frappe/ui/sidebar/sidebar.html"; +import "./frappe/ui/sidebar/sidebar_item.html"; +import "./frappe/ui/sidebar/sidebar.js"; import "./frappe/ui/link_preview.js"; import "./frappe/request.js"; @@ -40,6 +41,7 @@ import "./frappe/ui/field_group.js"; import "./frappe/form/link_selector.js"; import "./frappe/form/multi_select_dialog.js"; import "./frappe/ui/dialog.js"; +import "./frappe/ui/menu.js"; import "./frappe/ui/capture.js"; import "./frappe/ui/app_icon.js"; import "./frappe/ui/theme_switcher.js"; @@ -108,3 +110,4 @@ import "./frappe/ui/driver.js"; import "./frappe/scanner"; import "./frappe/ui/address_autocomplete/autocomplete_dialog.js"; +import "./frappe/ui/desktop_icon.html"; diff --git a/frappe/public/js/form_builder/components/controls/CheckControl.vue b/frappe/public/js/form_builder/components/controls/CheckControl.vue index 38c49de355..f19b3b6b79 100644 --- a/frappe/public/js/form_builder/components/controls/CheckControl.vue +++ b/frappe/public/js/form_builder/components/controls/CheckControl.vue @@ -30,7 +30,7 @@ let display_checked = computed(() => { type="checkbox" :checked="display_checked" :disabled="read_only" - @change="(event) => $emit('update:modelValue', event.target.checked)" + @change="(event) => $emit('update:modelValue', event.target.checked ? 1 : 0)" /> {{ __(df.label) }} diff --git a/frappe/public/js/frappe/desk.js b/frappe/public/js/frappe/desk.js index 9b5f095144..3e7bf70ccc 100644 --- a/frappe/public/js/frappe/desk.js +++ b/frappe/public/js/frappe/desk.js @@ -292,7 +292,7 @@ frappe.Application = class Application { setup_workspaces() { frappe.modules = {}; frappe.workspaces = {}; - frappe.boot.allowed_workspaces = frappe.boot.sidebar_pages.pages; + frappe.boot.allowed_workspaces = frappe.boot.workspaces.pages; for (let page of frappe.boot.allowed_workspaces || []) { frappe.modules[page.module] = page; diff --git a/frappe/public/js/frappe/form/controls/autocomplete.js b/frappe/public/js/frappe/form/controls/autocomplete.js index beb951a567..97844c4965 100644 --- a/frappe/public/js/frappe/form/controls/autocomplete.js +++ b/frappe/public/js/frappe/form/controls/autocomplete.js @@ -11,6 +11,9 @@ frappe.ui.form.ControlAutocomplete = class ControlAutoComplete extends frappe.ui set_options() { if (this.df.options) { let options = this.df.options || []; + if (options == "Installed Applications") { + this.load_installed_apps(); + } this.set_data(options); } } @@ -241,4 +244,16 @@ frappe.ui.form.ControlAutocomplete = class ControlAutoComplete extends frappe.ui } this._data = data; } + + async load_installed_apps(frm) { + const me = this; + await frappe.call({ + method: "frappe.desk.desktop.get_installed_apps", + callback: function (r) { + if (r.message) { + me.set_data(r.message); + } + }, + }); + } }; diff --git a/frappe/public/js/frappe/form/controls/duration.js b/frappe/public/js/frappe/form/controls/duration.js index 0055d925cb..120c497c56 100644 --- a/frappe/public/js/frappe/form/controls/duration.js +++ b/frappe/public/js/frappe/form/controls/duration.js @@ -103,6 +103,7 @@ frappe.ui.form.ControlDuration = class ControlDuration extends frappe.ui.form.Co }); this.$input.on("focus", () => { + if (this.df.read_only) return; this.$picker.show(); let is_picker_set = this.is_duration_picker_set(this.inputs); if (!is_picker_set) { diff --git a/frappe/public/js/frappe/form/controls/icon.js b/frappe/public/js/frappe/form/controls/icon.js index f3386ed813..a964153d2b 100644 --- a/frappe/public/js/frappe/form/controls/icon.js +++ b/frappe/public/js/frappe/form/controls/icon.js @@ -21,6 +21,7 @@ frappe.ui.form.ControlIcon = class ControlIcon extends frappe.ui.form.ControlDat parent: picker_wrapper, icon: this.get_icon(), icons: frappe.symbols, + include_emoji: this.df.options == "Emojis", }); this.$wrapper diff --git a/frappe/public/js/frappe/form/form.js b/frappe/public/js/frappe/form/form.js index 249f957d94..eb0dc7e8ae 100644 --- a/frappe/public/js/frappe/form/form.js +++ b/frappe/public/js/frappe/form/form.js @@ -2028,9 +2028,10 @@ frappe.ui.form.Form = class FrappeForm { scroll_to_field(fieldname, focus = true) { let field = this.get_field(fieldname); - if (!field) return; + if (!field) return false; let $el = field.$wrapper; + if (!$el || !$el.length) return false; // set tab as active if (field.tab && !field.tab.is_active()) { @@ -2054,10 +2055,12 @@ frappe.ui.form.Form = class FrappeForm { // highlight control inside field let control_element = $el.closest(".frappe-control"); - control_element.addClass("highlight"); - setTimeout(() => { - control_element.removeClass("highlight"); - }, 2000); + if (control_element.length) { + control_element.addClass("highlight"); + setTimeout(() => { + control_element.removeClass("highlight"); + }, 2000); + } return true; } diff --git a/frappe/public/js/frappe/form/formatters.js b/frappe/public/js/frappe/form/formatters.js index 48a954a637..f8d7e1f080 100644 --- a/frappe/public/js/frappe/form/formatters.js +++ b/frappe/public/js/frappe/form/formatters.js @@ -397,7 +397,7 @@ frappe.form.formatters = { }, Icon: (value) => { return value - ? `
+ ? `
${frappe.utils.icon(value, "md")}
${value}
` diff --git a/frappe/public/js/frappe/form/grid.js b/frappe/public/js/frappe/form/grid.js index b433c90549..7cce820f60 100644 --- a/frappe/public/js/frappe/form/grid.js +++ b/frappe/public/js/frappe/form/grid.js @@ -499,6 +499,7 @@ export default class Grid { this.form_grid.toggleClass("error", !!(this.df.reqd && !(this.data && this.data.length))); this.refresh_remove_rows_button(); + this.refresh_duplicate_rows_button(); this.wrapper.trigger("change"); } diff --git a/frappe/public/js/frappe/form/grid_row.js b/frappe/public/js/frappe/form/grid_row.js index 52e7e833c9..25b1087070 100644 --- a/frappe/public/js/frappe/form/grid_row.js +++ b/frappe/public/js/frappe/form/grid_row.js @@ -384,7 +384,6 @@ export default class GridRow { add_column_configure_button() { if (this.grid.df.in_place_edit && !this.frm) return; - if (this.configure_columns && this.frm) { this.configure_columns_button = $(`
@@ -1121,14 +1120,14 @@ export default class GridRow { this.columns[df.fieldname] = $col; this.columns_list.push($col); - if (ci == 0 && !this.header_row) { + if (ci == 0 && this.header_row) { $col.attr("tabIndex", 0); $col.on("focus", function () { if (me.grid.grid_rows.length == 0) { me.grid.add_new_row(); } me.grid.grid_rows[me.grid.grid_rows.length - 1].toggle_editable_row(true); - me.grid.set_focus_on_row(); + me.grid.set_focus_on_row(0); $col.attr("tabIndex", ""); }); } @@ -1296,9 +1295,13 @@ export default class GridRow { if (is_last_column) { // last row if (me.doc.idx === values.length) { - me.grid.add_new_row(null, null, true); - me.grid.grid_rows[me.grid.grid_rows.length - 1].toggle_editable_row(); - me.grid.set_focus_on_row(); + setTimeout(function () { + me.grid.add_new_row(null, null, true); + me.grid.grid_rows[ + me.grid.grid_rows.length - 1 + ].toggle_editable_row(); + me.grid.set_focus_on_row(); + }, 100); } else { // last column before last row me.grid.grid_rows[me.doc.idx].toggle_editable_row(); diff --git a/frappe/public/js/frappe/form/save.js b/frappe/public/js/frappe/form/save.js index b28e277a86..efe6e6ef53 100644 --- a/frappe/public/js/frappe/form/save.js +++ b/frappe/public/js/frappe/form/save.js @@ -131,6 +131,15 @@ frappe.ui.form.check_mandatory = function (frm) { if (docfield.fieldname) { const df = frappe.meta.get_docfield(doc.doctype, docfield.fieldname, doc.name); + // skip fields that don't hold data + if ( + ["Section Break", "Column Break", "Tab Break", "HTML", "Heading"].includes( + df.fieldtype + ) + ) { + return; + } + if (df.fieldtype === "Fold") { folded = frm.layout.folded; } @@ -222,8 +231,9 @@ frappe.ui.form.check_mandatory = function (frm) { } function scroll_to(fieldname) { - frm.scroll_to_field(fieldname); - frm.scroll_set = true; + if (frm.scroll_to_field(fieldname)) { + frm.scroll_set = true; + } } }; diff --git a/frappe/public/js/frappe/form/sidebar/share.js b/frappe/public/js/frappe/form/sidebar/share.js index ed91b49c26..b771929a64 100644 --- a/frappe/public/js/frappe/form/sidebar/share.js +++ b/frappe/public/js/frappe/form/sidebar/share.js @@ -86,6 +86,7 @@ frappe.ui.form.Share = class Share { frm: this.frm, shared: this.shared, everyone: everyone, + custom_perm_types: this.frm.get_docinfo().custom_perm_types || [], }) ).appendTo(d.body); @@ -126,18 +127,34 @@ frappe.ui.form.Share = class Share { if (!user) { return; } + + // Build args dynamically with all permission types + var args = { + doctype: me.frm.doctype, + name: me.frm.doc.name, + user: user, + notify: 1, + }; + + // Add standard permissions + args.read = $(d.body).find(".add-share-read").prop("checked") ? 1 : 0; + args.write = $(d.body).find(".add-share-write").prop("checked") ? 1 : 0; + args.submit = $(d.body).find(".add-share-submit").prop("checked") ? 1 : 0; + args.share = $(d.body).find(".add-share-share").prop("checked") ? 1 : 0; + + // Add custom permissions + var custom_perm_types = me.frm.get_docinfo().custom_perm_types || []; + custom_perm_types.forEach(function (perm) { + args[perm] = $(d.body) + .find(".add-share-" + perm) + .prop("checked") + ? 1 + : 0; + }); + frappe.call({ method: "frappe.share.add", - args: { - doctype: me.frm.doctype, - name: me.frm.doc.name, - user: user, - read: $(d.body).find(".add-share-read").prop("checked") ? 1 : 0, - write: $(d.body).find(".add-share-write").prop("checked") ? 1 : 0, - submit: $(d.body).find(".add-share-submit").prop("checked") ? 1 : 0, - share: $(d.body).find(".add-share-share").prop("checked") ? 1 : 0, - notify: 1, - }, + args: args, btn: this, callback: function (r) { $.each(me.shared, function (i, s) { diff --git a/frappe/public/js/frappe/form/templates/set_sharing.html b/frappe/public/js/frappe/form/templates/set_sharing.html index 5b748f5f3c..c7a516c4a7 100644 --- a/frappe/public/js/frappe/form/templates/set_sharing.html +++ b/frappe/public/js/frappe/form/templates/set_sharing.html @@ -1,43 +1,57 @@ +{% var standard_perms = [ + {name: "read", label: __("Read"), disable_check: false}, + {name: "write", label: __("Write"), disable_check: true}, + {name: "submit", label: __("Submit"), disable_check: true}, + {name: "share", label: __("Share"), disable_check: false} +]; + +var custom_perms = (custom_perm_types || []).map(function(perm) { + return { + name: perm, + label: __(frappe.model.unscrub(perm)), + disable_check: true + }; +}); + +var all_perms = standard_perms.concat(custom_perms); +%}
-
-
{%= __("User") %}
-
{%= __("Can Read") %}
-
{%= __("Can Write") %}
-
{%= __("Can Submit") %}
-
{%= __("Can Share") %}
+
+
{%= __("User") %}
+ {% for (var i=0; i < all_perms.length; i++) { var perm = all_perms[i]; %} +
{%= perm.label %}
+ {% } %}
-
- -
-
+
+ + {% for (var i=0; i < all_perms.length; i++) { + var perm = all_perms[i]; + var is_disabled = perm.disable_check && !frm.perm[0][perm.name]; %} +
+
-
-
-
+ {% } %}
{% for (var i=0, l=shared.length; i < l; i++) { var s = shared[i]; %} {% if(s && !s.everyone) { %} -
-
{%= s.user %}
-
-
-
-
+
+
{%= s.user %}
+ {% for (var j=0; j < all_perms.length; j++) { + var perm = all_perms[j]; + var is_disabled = perm.disable_check && !frm.perm[0][perm.name]; %} +
+ +
+ {% } %}
{% } %} {% } %} @@ -45,27 +59,27 @@ {% if(frappe.model.can_share(null, frm)) { %}
-
-
{%= __("Share this document with") %}
-
{%= __("Can Read") %}
-
{%= __("Can Write") %}
-
{%= __("Can Submit") %}
-
{%= __("Can Share") %}
+
+
{%= __("Share this document with") %}
+ {% for (var i=0; i < all_perms.length; i++) { + var perm = all_perms[i]; %} +
{%= perm.label %}
+ {% } %}
-
-
-
-
+
+
+ {% for (var i=0; i < all_perms.length; i++) { + var perm = all_perms[i]; + var is_disabled = perm.disable_check && !frm.perm[0][perm.name]; %} +
+
-
-
-
+ {% } %}
- +
{% endif %} -
\ No newline at end of file +
diff --git a/frappe/public/js/frappe/form/toolbar.js b/frappe/public/js/frappe/form/toolbar.js index a39fa21d0e..a551aaeaaa 100644 --- a/frappe/public/js/frappe/form/toolbar.js +++ b/frappe/public/js/frappe/form/toolbar.js @@ -304,11 +304,33 @@ frappe.ui.form.Toolbar = class Toolbar { this.page.clear_menu(); if (frappe.boot.desk_settings.form_sidebar) { - // this.make_navigation(); + this.make_navigation(); this.make_menu_items(); } } + make_navigation() { + // Navigate + if (!this.frm.is_new() && !this.frm.meta.issingle) { + this.page.add_action_icon( + "es-line-left-chevron", + () => { + this.frm.navigate_records(1); + }, + "prev-doc", + __("Previous Document") + ); + this.page.add_action_icon( + "es-line-right-chevron", + () => { + this.frm.navigate_records(0); + }, + "next-doc", + __("Next Document") + ); + } + } + make_menu_items() { // Print this.add_discard(); diff --git a/frappe/public/js/frappe/icon_picker/icon_picker.js b/frappe/public/js/frappe/icon_picker/icon_picker.js index 8d8cccd748..0f2f5dc212 100644 --- a/frappe/public/js/frappe/icon_picker/icon_picker.js +++ b/frappe/public/js/frappe/icon_picker/icon_picker.js @@ -5,6 +5,7 @@ class Picker { this.height = opts.height; this.set_icon(opts.icon); this.icons = opts.icons; + this.include_emoji = opts.include_emoji; this.setup_picker(); } @@ -19,7 +20,7 @@ class Picker { ${frappe.utils.icon("search", "sm")}
-
+
@@ -29,8 +30,106 @@ class Picker { this.search_input = this.icon_picker_wrapper.find(".search-icons > input"); this.refresh(); this.setup_icons(); + if (this.include_emoji) { + this.setup_emojis(); + } } + setup_emojis() { + console.log("Making emojis"); + // setup tab + this.setup_tab(); + // setup emoji container + this.setup_emoji_container(); + // emojis + this.emoji_wrapper = this.icon_picker_wrapper.find(".emojis"); + gemoji.forEach((emoji, i) => { + let $icon = $( + `
${gemoji[i].emoji}
` + ); + this.emoji_wrapper.append($icon); + const set_values = () => { + this.set_icon(gemoji[i].emoji); + this.update_icon_selected(); + }; + $icon.on("click", () => { + set_values(); + }); + // $icon.keydown((e) => { + // const key_code = e.keyCode; + // if ([13, 32].includes(key_code)) { + // e.preventDefault(); + // set_values(); + // } + // }); + }); + this.search_input.on("input", (e) => { + e.preventDefault(); + this.filter_emojis(); + }); + } + filter_emojis() { + let value = this.search_input.val(); + let filtered_emoji_names = []; + if (value) { + gemoji.forEach((g) => { + g.tags.forEach((t) => { + if (t.includes(value)) { + filtered_emoji_names.push(g); + } + }); + g.names.forEach((t) => { + if (t.includes(value)) { + filtered_emoji_names.push(g); + } + }); + }); + } + if (filtered_emoji_names.length == 0) { + this.emoji_wrapper.find(".emoji-wrapper").removeClass("hidden"); + } else { + this.emoji_wrapper.find(".emoji-wrapper").addClass("hidden"); + filtered_emoji_names.forEach((g) => { + this.emoji_wrapper.find(`.emoji-wrapper[id*='${g.emoji}']`).removeClass("hidden"); + }); + } + } + setup_emoji_container() { + this.icon_picker_wrapper.find(".icon-section") + .after(``); + } + setup_tab() { + this.icon_picker_wrapper.find(".search-icons").after(`
+ +
`); + let icon_types = ["icon", "emoji"]; + const me = this; + + this.icon_picker_wrapper.find(".nav-item").on("click", function (e) { + let container_name = $(this).text().trim().toLowerCase(); + + icon_types.forEach((type) => { + if (type === container_name) { + me.icon_picker_wrapper.find(`.${type}-section`).removeClass("hidden"); + } else { + me.icon_picker_wrapper.find(`.${type}-section`).addClass("hidden"); + } + }); + }); + } setup_icons() { this.icons.forEach((icon) => { let $icon = $( diff --git a/frappe/public/js/frappe/list/list_sidebar.html b/frappe/public/js/frappe/list/list_sidebar.html index de420c98f5..358c110a7c 100644 --- a/frappe/public/js/frappe/list/list_sidebar.html +++ b/frappe/public/js/frappe/list/list_sidebar.html @@ -72,10 +72,8 @@
-
diff --git a/frappe/public/js/frappe/list/list_view.js b/frappe/public/js/frappe/list/list_view.js index e3d236ad21..73f6c06b88 100644 --- a/frappe/public/js/frappe/list/list_view.js +++ b/frappe/public/js/frappe/list/list_view.js @@ -997,7 +997,7 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList { * If the length of the text is not available, it defaults to a length of 22.5. */ let textLength = $(column_html).text()?.trim()?.length || 22.5; - let calculatedWidth = (textLength * 10) / 1.3; + let calculatedWidth = (textLength * 10) / 1.3 + (col.type == "Subject" ? 30 : 0); /** * Updates the `column_max_widths` object by setting the maximum width for a specific column (fieldname). @@ -1234,7 +1234,7 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList { return this.settings.get_form_link(doc); } - return `/app/${encodeURIComponent( + return `/desk/${encodeURIComponent( frappe.router.slug(frappe.router.doctype_layout || this.doctype) )}/${encodeURIComponent(cstr(doc.name))}`; } diff --git a/frappe/public/js/frappe/model/perm.js b/frappe/public/js/frappe/model/perm.js index 7f16386be9..5442097594 100644 --- a/frappe/public/js/frappe/model/perm.js +++ b/frappe/public/js/frappe/model/perm.js @@ -60,8 +60,12 @@ $.extend(frappe.perm, { perm[0].read = 1; } - if (!meta) return perm; - + if (!meta) { + if (frappe.boot.user.can_read.includes(doctype)) { + perm[0].read = 1; + } + return perm; + } perm = frappe.perm.get_role_permissions(meta); const base_perm = perm[0]; diff --git a/frappe/public/js/frappe/router.js b/frappe/public/js/frappe/router.js index 01d983d493..b0ac7676e5 100644 --- a/frappe/public/js/frappe/router.js +++ b/frappe/public/js/frappe/router.js @@ -107,7 +107,7 @@ frappe.router = { if (path.substr(0, 1) === "/") path = path.substr(1); path = path.split("/"); if (path[0]) { - return path[0] === "app"; + return path[0] === "desk"; } }, @@ -144,11 +144,11 @@ frappe.router = { this.current_sub_path = sub_path; this.current_route = await this.parse(); + this.set_history(sub_path); - this.set_active_sidebar_item(); this.render(); this.set_title(sub_path); - this.trigger("change"); + this.trigger("change", this); }, async parse(route) { @@ -202,7 +202,7 @@ frappe.router = { return frappe.model.with_doctype(doctype_route.doctype).then(() => { // doctype route let meta = frappe.get_meta(doctype_route.doctype); - + this.meta = meta; if (route[1] && route[1] === "view" && route[2]) { route = this.get_standard_route_for_list( route, @@ -289,10 +289,6 @@ frappe.router = { frappe.ui.hide_open_dialog(); }, - async set_active_sidebar_item() { - frappe.app.sidebar.set_active_workspace_item(); - }, - render() { if (this.current_route[0]) { this.render_page(); @@ -308,7 +304,6 @@ frappe.router = { const route = this.current_route; const factory = frappe.utils.to_title_case(route[0]); - if (route[1] && frappe.views[factory + "Factory"]) { route[0] = factory; // has a view generator, generate! @@ -467,9 +462,12 @@ frappe.router = { }).join("/"); if (path_string) { - return "/app/" + path_string; + return "/desk/" + path_string; } + if (params.length == 0) { + return "/desk"; + } // Resolution order // 1. User's default workspace in user doctype // 2. Private home @@ -488,11 +486,13 @@ frappe.router = { if (workspace) { return ( - "/app/" + (workspace.public ? "" : "private/") + frappe.router.slug(workspace.name) + "/desk/" + + (workspace.public ? "" : "private/") + + frappe.router.slug(workspace.name) ); } - return "/app"; + return "/desk"; }, /** @@ -525,8 +525,8 @@ frappe.router = { strip_prefix(route) { if (route.substr(0, 1) == "/") route = route.substr(1); // for /app/sub - if (route == "app") route = route.substr(4); // for app - if (route.startsWith("app/")) route = route.substr(4); // for desk/sub + if (route == "desk") route = route.substr(4); // for app + if (route.startsWith("desk/")) route = route.substr(4); // for desk/sub if (route.substr(0, 1) == "/") route = route.substr(1); if (route.substr(0, 1) == "#") route = route.substr(1); if (route.substr(0, 1) == "!") route = route.substr(1); diff --git a/frappe/public/js/frappe/ui/apps_switcher.html b/frappe/public/js/frappe/ui/apps_switcher.html deleted file mode 100644 index 69ab6242d8..0000000000 --- a/frappe/public/js/frappe/ui/apps_switcher.html +++ /dev/null @@ -1,23 +0,0 @@ - -
-
- - -
- -
-
- - \ No newline at end of file diff --git a/frappe/public/js/frappe/ui/apps_switcher.js b/frappe/public/js/frappe/ui/apps_switcher.js deleted file mode 100644 index 643e47cd07..0000000000 --- a/frappe/public/js/frappe/ui/apps_switcher.js +++ /dev/null @@ -1,197 +0,0 @@ -frappe.ui.AppsSwitcher = class AppsSwitcher { - constructor(sidebar) { - this.sidebar = sidebar; - this.sidebar_wrapper = $(this.sidebar.wrapper.find(".body-sidebar")); - this.drop_down_expanded = false; - this.make(); - this.setup_app_switcher(); - this.set_hover(); - } - - make() { - this.wrapper = $( - frappe.render_template("apps_switcher", { - app_logo_url: frappe.boot.app_data[0].app_logo_url, - app_title: __(frappe.boot.app_data[0].app_title), - }) - ).prependTo(this.sidebar_wrapper); - this.app_switcher_dropdown = $(".app-switcher-dropdown"); - } - - setup_app_switcher() { - this.app_switcher_menu = $(".app-switcher-menu"); - $(".app-switcher-dropdown").on("click", (e) => { - this.toggle_app_menu(); - e.stopImmediatePropagation(); - }); - } - toggle_app_menu() { - this.toggle_active(); - this.app_switcher_menu.toggleClass("hidden"); - } - create_app_data_map() { - frappe.boot.app_data_map = {}; - for (var app of frappe.boot.app_data) { - frappe.boot.app_data_map[app.app_name] = app; - if (app.workspaces?.length) { - this.add_app_item(app); - } - } - } - populate_apps_menu() { - this.add_private_app(); - - this.add_website_select(); - this.add_settings_select(); - this.setup_select_app(); - } - - add_app_item(app) { - $(``).appendTo(this.app_switcher_menu); - } - - add_private_app() { - let private_pages = this.sidebar.all_pages.filter((p) => p.public === 0); - if (private_pages.length === 0) return; - - const app = { - app_name: "private", - app_title: __("My Workspaces"), - app_route: "/app/private", - app_logo_url: "/assets/frappe/images/frappe-framework-logo.svg", - workspaces: private_pages, - }; - - frappe.boot.app_data_map["private"] = app; - $(`
`).prependTo(this.app_switcher_menu); - $(``).prependTo(this.app_switcher_menu); - } - - setup_select_app() { - this.app_switcher_menu.find(".app-item").on("click", (e) => { - let item = $(e.delegateTarget); - let route = item.attr("data-app-route"); - this.app_switcher_menu.toggleClass("hidden"); - this.toggle_active(); - - if (item.attr("data-app-name") == "settings") { - frappe.quick_edit("Workspace Settings"); - return; - } - if (route.startsWith("/app/private")) { - this.set_current_app("private"); - let ws = Object.values(frappe.workspace_map).find((ws) => ws.public === 0); - route += "/" + frappe.router.slug(ws.title); - frappe.set_route(route); - } else if (route.startsWith("/app")) { - frappe.set_route(route); - this.set_current_app(item.attr("data-app-name")); - } else { - // new page - window.open(route); - } - }); - } - // refactor them into one single function - add_website_select() { - $(`
`).appendTo(this.app_switcher_menu); - this.add_app_item( - { - app_name: "website", - app_title: __("Website"), - app_route: "/", - app_logo_url: "/assets/frappe/images/web.svg", - }, - this.app_switcher_menu - ); - } - - add_settings_select() { - $(`
`).appendTo(this.app_switcher_menu); - this.add_app_item({ - app_name: "settings", - app_title: __("Settings"), - app_logo_url: "/assets/frappe/images/settings-gear.svg", - }); - let settings_item = this.app_switcher_menu.children().last(); - } - - set_current_app(app) { - if (!app) { - console.warn("set_current_app: app not defined"); - return; - } - let app_data = frappe.boot.app_data_map[app] || frappe.boot.app_data_map["frappe"]; - - this.sidebar_wrapper - .find(".app-switcher-dropdown .sidebar-item-icon img") - .attr("src", app_data.app_logo_url); - this.sidebar_wrapper - .find(".app-switcher-dropdown .sidebar-item-label") - .html(app_data.app_title); - - frappe.frappe_toolbar.set_app_logo(app_data.app_logo_url); - - if (frappe.current_app === app) return; - frappe.current_app = app; - - // re-render the sidebar - frappe.app.sidebar.make_sidebar(); - } - - set_hover() { - const me = this; - - this.app_switcher_dropdown.on("mouseover", function () { - if ($(this).hasClass("active-sidebar")) return; - $(this).addClass("hover"); - - if (!me.sidebar.sidebar_expanded) { - $(this).removeClass("hover"); - } - }); - - this.app_switcher_dropdown.on("mouseleave", function () { - $(this).removeClass("hover"); - }); - } - - toggle_active() { - this.toggle_dropdown(); - this.app_switcher_dropdown.toggleClass("active-sidebar"); - if (!this.sidebar.sidebar_expanded) { - this.app_switcher_dropdown.removeClass("active-sidebar"); - } - } - toggle_dropdown() { - if (this.drop_down_expanded) { - this.drop_down_expanded = false; - } else { - this.drop_down_expanded = true; - } - } -}; diff --git a/frappe/public/js/frappe/ui/desktop_icon.html b/frappe/public/js/frappe/ui/desktop_icon.html new file mode 100644 index 0000000000..61489dfa15 --- /dev/null +++ b/frappe/public/js/frappe/ui/desktop_icon.html @@ -0,0 +1,21 @@ + + {% if (icon.logo_url) { %} +
+ {{ icon.label }} +
+ {% } else if (icon.icon_type == "Folder") { %} +
+ +
+ {% } else { %} +
+ {%= frappe.utils.icon(icon.icon || "list-alt" , "lg", "", "", "text-ink-gray-7 current-color", true)%} +
+ {% } %} + {% if (!in_folder) { %} +
+
{{ icon.label }}
+
+
+ {% } %} +
\ No newline at end of file diff --git a/frappe/public/js/frappe/ui/dialog.js b/frappe/public/js/frappe/ui/dialog.js index d40385bb85..714edade37 100644 --- a/frappe/public/js/frappe/ui/dialog.js +++ b/frappe/public/js/frappe/ui/dialog.js @@ -249,7 +249,7 @@ frappe.ui.Dialog = class Dialog extends frappe.ui.FieldGroup { show() { // show it - if (window.location.pathname.startsWith("/app")) { + if (window.location.pathname.startsWith("/desk")) { this.handle_focus(); } diff --git a/frappe/public/js/frappe/ui/keyboard.js b/frappe/public/js/frappe/ui/keyboard.js index 020999f768..a824074298 100644 --- a/frappe/public/js/frappe/ui/keyboard.js +++ b/frappe/public/js/frappe/ui/keyboard.js @@ -217,6 +217,16 @@ frappe.ui.keys.add_shortcut({ description: __("Open Awesomebar"), }); +frappe.ui.keys.add_shortcut({ + shortcut: "ctrl+g", + action: function (e) { + $("#navbar-search").focus(); + e.preventDefault(); + return false; + }, + description: __("Open Awesomebar"), +}); + frappe.ui.keys.add_shortcut({ shortcut: "alt+s", action: function (e) { diff --git a/frappe/public/js/frappe/ui/menu.js b/frappe/public/js/frappe/ui/menu.js new file mode 100644 index 0000000000..8ba1c39712 --- /dev/null +++ b/frappe/public/js/frappe/ui/menu.js @@ -0,0 +1,162 @@ +import "../dom"; +frappe.provide("frappe.ui"); + +frappe.ui.menu = class ContextMenu { + constructor(menu_items, left) { + this.template = $(``); + this.menu_items = menu_items; + this.open_on_left = left; + } + + make() { + this.template.empty(); + + this.menu_items.forEach((f) => { + this.add_menu_item(f); + }); + + if (!$.contains(document.body, this.template[0])) { + $(document.body).append(this.template); + } + } + add_menu_item(item) { + const me = this; + let item_wrapper = $(``); + if (!item.url) { + item_wrapper.on("click", function () { + item.onClick(); + me.hide(); + }); + } else { + $(item_wrapper).find("a").attr("href", item.url); + } + item_wrapper.appendTo(this.template); + } + show(element) { + this.close_all_other_menu(); + + this.make(); + + const offset = $(element).offset(); + const height = $(element).outerHeight(); + this.left_offset = 0; + + this.template.css({ + display: "block", + position: "absolute", + top: offset.top + height + "px", + left: offset.left, + }); + if (this.open_on_left) { + this.left_offset = element.getBoundingClientRect().width; + this.template.css({ + left: + offset.left - + this.template.get(0).getBoundingClientRect().width + + this.left_offset + + "px", + }); + } + + this.visible = true; + } + close_all_other_menu() { + $(".context-menu").hide(); + } + hide() { + this.template.css("display", "none"); + this.visible = false; + } + mouseX(evt) { + if (evt.pageX) { + return evt.pageX; + } else if (evt.clientX) { + return ( + evt.clientX + + (document.documentElement.scrollLeft + ? document.documentElement.scrollLeft + : document.body.scrollLeft) + ); + } else { + return null; + } + } + + mouseY(evt) { + if (evt.pageY) { + return evt.pageY; + } else if (evt.clientY) { + return ( + evt.clientY + + (document.documentElement.scrollTop + ? document.documentElement.scrollTop + : document.body.scrollTop) + ); + } else { + return null; + } + } +}; + +frappe.menu_map = {}; + +frappe.ui.create_menu = function attachContextMenuToElement( + element, + menuItems, + right_click, + open_on_left +) { + let contextMenu = new frappe.ui.menu(menuItems, open_on_left); + + frappe.menu_map[$(element).data("menu")] = contextMenu; + if (right_click) { + $(element).on("contextmenu", function (event) { + event.preventDefault(); + event.stopPropagation(); + if ( + frappe.menu_map[$(element).data("menu")] && + frappe.menu_map[$(element).data("menu")].visible + ) { + frappe.menu_map[$(element).data("menu")].hide(); + } else { + frappe.menu_map[$(element).data("menu")].show(this); + } + }); + } else { + $(element).on("click", function (event) { + event.preventDefault(); + event.stopPropagation(); + if (frappe.menu_map[$(element).data("menu")].visible) { + frappe.menu_map[$(element).data("menu")].hide(); + } else { + frappe.menu_map[$(element).data("menu")].show(this); + } + }); + } + + $(document).on("click", function () { + if (frappe.menu_map[$(element).data("menu")].visible) { + frappe.menu_map[$(element).data("menu")].hide(); + } + }); + + $(document).on("keydown", function (e) { + if (e.key === "Escape" && frappe.menu_map[$(element).data("menu")].visible) { + frappe.menu_map[$(element).data("menu")].hide(); + } + }); +}; diff --git a/frappe/public/js/frappe/ui/page.html b/frappe/public/js/frappe/ui/page.html index fc98f8d33e..7bc39be3d2 100644 --- a/frappe/public/js/frappe/ui/page.html +++ b/frappe/public/js/frappe/ui/page.html @@ -52,7 +52,7 @@
-
diff --git a/frappe/public/js/frappe/ui/sidebar.js b/frappe/public/js/frappe/ui/sidebar.js deleted file mode 100644 index 372072a76b..0000000000 --- a/frappe/public/js/frappe/ui/sidebar.js +++ /dev/null @@ -1,501 +0,0 @@ -frappe.ui.Sidebar = class Sidebar { - constructor() { - this.items = {}; - this.parent_items = []; - this.sidebar_expanded = false; - - if (!frappe.boot.setup_complete) { - // no sidebar if setup is not complete - return; - } - - this.set_all_pages(); - this.make_dom(); - this.sidebar_items = { - public: {}, - private: {}, - }; - this.indicator_colors = [ - "green", - "cyan", - "blue", - "orange", - "yellow", - "gray", - "grey", - "red", - "pink", - "darkgrey", - "purple", - "light-blue", - ]; - - this.setup_pages(); - this.apps_switcher.populate_apps_menu(); - this.handle_outside_click(); - } - - make_dom() { - this.set_default_app(); - this.wrapper = $(frappe.render_template("sidebar")).prependTo("body"); - - this.$sidebar = this.wrapper.find(".sidebar-items"); - - this.wrapper.find(".body-sidebar .collapse-sidebar-link").on("click", () => { - this.toggle_sidebar(); - }); - - this.wrapper.find(".overlay").on("click", () => { - this.close_sidebar(); - }); - this.apps_switcher = new frappe.ui.AppsSwitcher(this); - this.apps_switcher.create_app_data_map(); - } - - set_hover() { - $(".standard-sidebar-item > .item-anchor").on("mouseover", function (event) { - if ($(this).parent().hasClass("active-sidebar")) return; - $(this).parent().addClass("hover"); - }); - - $(".standard-sidebar-item > .item-anchor").on("mouseleave", function () { - $(this).parent().removeClass("hover"); - }); - } - - set_all_pages() { - this.sidebar_pages = frappe.boot.sidebar_pages; - this.all_pages = this.sidebar_pages.pages; - this.has_access = this.sidebar_pages.has_access; - this.has_create_access = this.sidebar_pages.has_create_access; - } - - set_default_app() { - // sort apps based on # of workspaces - frappe.boot.app_data.sort((a, b) => (a.workspaces.length < b.workspaces.length ? 1 : -1)); - frappe.current_app = frappe.boot.app_data[0].app_name; - frappe.frappe_toolbar.set_app_logo(frappe.boot.app_data[0].app_logo_url); - } - - set_active_workspace_item() { - if (!frappe.get_route()) return; - let current_route = frappe.get_route(); - let current_route_str = frappe.get_route_str(); - let current_item; - if (current_route[0] == "Workspaces") { - current_item = current_route[1]; - } else if (frappe.breadcrumbs) { - if (Object.keys(frappe.breadcrumbs.all).length == 0) return; - if (frappe.breadcrumbs.all[current_route_str]) { - current_item = - frappe.breadcrumbs.all[current_route_str].workspace || - frappe.breadcrumbs.all[current_route_str].module; - } - } - if (this.is_route_in_sidebar(current_item)) { - this.active_item.addClass("active-sidebar"); - } - if (this.active_item) { - if (this.is_nested_item(this.active_item.parent())) { - let current_item = this.active_item.parent(); - this.expand_parent_item(current_item); - } - } - if (!this.sidebar_expanded) this.close_children_item(); - } - expand_parent_item(item) { - let parent_title = item.attr("item-parent"); - if (!parent_title) return; - - let parent = this.get_sidebar_item(parent_title); - if (parent) { - let $drop_icon = $(parent).find(".drop-icon"); - if ($($(parent).children()[1]).hasClass("hidden")) { - $drop_icon[0].click(); - if (this.is_nested_item($(parent))) { - this.expand_parent_item($(parent)); - } - } - } - } - is_nested_item(item) { - if (item.attr("item-parent")) { - return true; - } else { - return false; - } - } - - get_sidebar_item(name) { - let sidebar_item = ""; - $(".sidebar-item-container").each(function () { - if ($(this).attr("item-name") == name) { - sidebar_item = this; - } - }); - return sidebar_item; - } - is_route_in_sidebar(active_module) { - let match = false; - const that = this; - $(".item-anchor").each(function () { - if ($(this).attr("title") == active_module) { - match = true; - if (that.active_item) that.active_item.removeClass("active-sidebar"); - that.active_item = $(this).parent(); - // this exists the each loop - return false; - } - }); - return match; - } - - setup_pages() { - this.set_all_pages(); - this.all_pages.forEach((page) => { - page.is_editable = !page.public || this.has_access; - if (typeof page.content == "string") { - page.content = JSON.parse(page.content); - } - }); - - if (this.all_pages) { - frappe.workspaces = {}; - frappe.workspace_list = []; - frappe.workspace_map = {}; - for (let page of this.all_pages) { - frappe.workspaces[frappe.router.slug(page.name)] = { - name: page.name, - public: page.public, - }; - if (!page.app && page.module) { - page.app = frappe.boot.module_app[frappe.slug(page.module)]; - } - frappe.workspace_map[page.name] = page; - frappe.workspace_list.push(page); - } - this.make_sidebar(); - } - this.set_hover(); - this.set_sidebar_state(); - } - set_sidebar_state() { - this.sidebar_expanded = true; - if (localStorage.getItem("sidebar-expanded") !== null) { - this.sidebar_expanded = JSON.parse(localStorage.getItem("sidebar-expanded")); - } - if (frappe.is_mobile()) { - this.sidebar_expanded = false; - } - this.expand_sidebar(); - } - make_sidebar() { - if (this.wrapper.find(".standard-sidebar-section")[0]) { - this.wrapper.find(".standard-sidebar-section").remove(); - } - - let app_workspaces = frappe.boot.app_data_map[frappe.current_app || "frappe"].workspaces; - - let parent_pages = this.all_pages.filter((p) => !p.parent_page).uniqBy((p) => p.name); - if (frappe.current_app === "private") { - parent_pages = parent_pages.filter((p) => !p.public); - } else { - parent_pages = parent_pages.filter((p) => p.public && app_workspaces.includes(p.name)); - } - - this.build_sidebar_section("All", parent_pages); - - // Scroll sidebar to selected page if it is not in viewport. - this.wrapper.find(".selected").length && - !frappe.dom.is_element_in_viewport(this.wrapper.find(".selected")) && - this.wrapper.find(".selected")[0].scrollIntoView(); - - this.setup_sorting(); - this.set_active_workspace_item(); - this.set_hover(); - } - - build_sidebar_section(title, root_pages) { - let sidebar_section = $( - `
` - ); - - this.prepare_sidebar(root_pages, sidebar_section, this.wrapper.find(".sidebar-items")); - - if (Object.keys(root_pages).length === 0) { - sidebar_section.addClass("hidden"); - } - - $(".item-anchor").on("click", () => { - $(".list-sidebar.hidden-xs.hidden-sm").removeClass("opened"); - // $(".close-sidebar").css("display", "none"); - $("body").css("overflow", "auto"); - if (frappe.is_mobile()) { - this.close_sidebar(); - } - }); - - if ( - sidebar_section.find(".sidebar-item-container").length && - sidebar_section.find("> [item-is-hidden='0']").length == 0 - ) { - sidebar_section.addClass("hidden show-in-edit-mode"); - } - } - - prepare_sidebar(items, child_container, item_container) { - let last_item = null; - for (let item of items) { - if (item.public && last_item && !last_item.public) { - $(`
`).appendTo(child_container); - } - - // visibility not explicitly set to 0 - if (item.visibility !== 0) { - this.append_item(item, child_container); - } - last_item = item; - } - child_container.appendTo(item_container); - } - toggle_sidebar() { - if (!this.sidebar_expanded) { - this.open_sidebar(); - } else { - this.close_sidebar(); - } - } - expand_sidebar() { - let direction; - if (this.sidebar_expanded) { - this.wrapper.addClass("expanded"); - // this.sidebar_expanded = false - direction = "left"; - } else { - this.wrapper.removeClass("expanded"); - // this.sidebar_expanded = true - direction = "right"; - } - localStorage.setItem("sidebar-expanded", this.sidebar_expanded); - this.wrapper - .find(".body-sidebar .collapse-sidebar-link") - .find("use") - .attr("href", `#icon-arrow-${direction}-to-line`); - } - - append_item(item, container) { - let is_current_page = false; - - item.selected = is_current_page; - - if (is_current_page) { - this.current_page = { name: item.name, public: item.public }; - } - - let $item_container = this.sidebar_item_container(item); - let sidebar_control = $item_container.find(".sidebar-item-control"); - - let child_items = this.all_pages.filter( - (page) => page.parent_page == item.name || page.parent_page == item.title - ); - if (child_items.length > 0) { - let child_container = $item_container.find(".sidebar-child-item"); - child_container.addClass("hidden"); - this.prepare_sidebar(child_items, child_container, $item_container); - this.parent_items.push($item_container); - } - - $item_container.appendTo(container); - this.sidebar_items[item.public ? "public" : "private"][item.name] = $item_container; - - if ($item_container.parent().hasClass("hidden") && is_current_page) { - $item_container.parent().toggleClass("hidden"); - } - - this.add_toggle_children(item, sidebar_control, $item_container); - - if (child_items.length > 0) { - $item_container.find(".drop-icon").first().addClass("show-in-edit-mode"); - } - } - - sidebar_item_container(item) { - item.indicator_color = - item.indicator_color || this.indicator_colors[Math.floor(Math.random() * 12)]; - let path; - if (item.type === "Link") { - if (item.link_type === "Report") { - path = frappe.utils.generate_route({ - type: item.link_type, - name: item.link_to, - is_query_report: item.report.report_type === "Query Report", - report_ref_doctype: item.report.ref_doctype, - }); - } else { - path = frappe.utils.generate_route({ type: item.link_type, name: item.link_to }); - } - } else if (item.type === "URL") { - path = item.external_link; - } else { - if (item.public) { - path = "/app/" + frappe.router.slug(item.name); - } else { - path = "/app/private/" + frappe.router.slug(item.name.split("-")[0]); - } - } - - return $(` - - `); - } - - add_toggle_children(item, sidebar_control, item_container) { - let drop_icon = "es-line-down"; - if ( - this.current_page && - item_container.find(`[item-name="${this.current_page.name}"]`).length - ) { - drop_icon = "small-up"; - } - - let $child_item_section = item_container.find(".sidebar-child-item"); - let $drop_icon = $(` + +
+ + {%= frappe.utils.icon("arrow-left-to-line" , "sm", "", "", "text-ink-gray-7 current-color", true)%} + {%= __("Collapse") %} + +
+
+
+
+
diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar.js b/frappe/public/js/frappe/ui/sidebar/sidebar.js new file mode 100644 index 0000000000..da50e3a0ae --- /dev/null +++ b/frappe/public/js/frappe/ui/sidebar/sidebar.js @@ -0,0 +1,829 @@ +import "./sidebar_item"; +frappe.ui.Sidebar = class Sidebar { + constructor() { + if (!frappe.boot.setup_complete) { + // no sidebar if setup is not complete + return; + } + this.make_dom(); + // states + this.edit_mode = false; + this.sidebar_expanded = false; + this.all_sidebar_items = frappe.boot.workspace_sidebar_item; + this.$items = []; + this.fields_for_dialog = []; + this.workspace_sidebar_items = []; + this.new_sidebar_items = []; + this.$items_container = this.wrapper.find(".sidebar-items"); + this.$sidebar = this.wrapper.find(".body-sidebar"); + this.items = []; + this.setup_events(); + this.sidebar_module_map = {}; + this.build_sidebar_module_map(); + } + + prepare() { + try { + this.sidebar_data = + frappe.boot.workspace_sidebar_item[this.workspace_title.toLowerCase()]; + this.workspace_sidebar_items = this.sidebar_data.items; + if (this.edit_mode) { + this.workspace_sidebar_items = this.new_sidebar_items; + } + this.choose_app_name(); + this.find_nested_items(); + } catch (e) { + console.log(e); + } + } + build_sidebar_module_map() { + for (const [key, value] of Object.entries(frappe.boot.workspace_sidebar_item)) { + if (value.module) { + if (!this.sidebar_module_map[value.module]) { + this.sidebar_module_map[value.module] = []; + } + this.sidebar_module_map[value.module].push(value.label); + } + } + } + choose_app_name() { + if (frappe.boot.app_name_style === "Default") return; + + for (const app of frappe.boot.app_data) { + if (app.workspaces.includes(this.workspace_title)) { + this.header_subtitle = app.app_title; + this.app_logo_url = app.app_logo_url; + return; + } + } + + const icon = frappe.boot.desktop_icons.find((i) => i.label === this.workspace_title); + if (icon) { + this.header_subtitle = icon.parent_icon; + } + + if (this.workspace_title == "My Workspaces") { + this.header_subtitle = frappe.session.user; + } + } + + find_nested_items() { + const me = this; + let currentSection = null; + const updated_items = []; + + this.workspace_sidebar_items.forEach((item) => { + item.nested_items = []; + + if (item.type === "Section Break") { + currentSection = item; + updated_items.push(item); + } else if (currentSection && item.child) { + item.parent = currentSection; + currentSection.nested_items.push(item); + } else { + updated_items.push(item); + } + }); + this.workspace_sidebar_items = updated_items; + } + setup(workspace_title) { + this.workspace_title = workspace_title; + this.check_for_private_workspace(workspace_title); + this.prepare(); + this.$sidebar.attr("data-title", this.workspace_title); + this.sidebar_header = new frappe.ui.SidebarHeader(this); + this.make_sidebar(); + this.setup_complete = true; + } + check_for_private_workspace(workspace_title) { + if (workspace_title == "private" || workspace_title == "Personal") { + this.workspace_title = "My Workspaces"; + } + } + setup_events() { + const me = this; + frappe.router.on("change", function (router) { + frappe.app.sidebar.set_workspace_sidebar(router); + }); + $(document).on("page-change", function () { + frappe.app.sidebar.toggle(); + }); + $(document).on("form-refresh", function () { + frappe.app.sidebar.toggle(); + }); + } + + toggle() { + if (!frappe.container.page.page) return; + if (frappe.container.page.page.hide_sidebar) { + this.wrapper.hide(); + } else { + this.wrapper.show(); + this.set_sidebar_for_page(); + } + } + make_dom() { + this.load_sidebar_state(); + this.wrapper = $( + frappe.render_template("sidebar", { + expanded: this.sidebar_expanded, + }) + ).prependTo("body"); + this.$sidebar = this.wrapper.find(".sidebar-items"); + + this.wrapper.find(".body-sidebar .collapse-sidebar-link").on("click", () => { + this.toggle_width(); + }); + + this.wrapper.find(".overlay").on("click", () => { + this.close(); + }); + } + + set_active_workspace_item() { + if (this.is_route_in_sidebar()) { + this.active_item.addClass("active-sidebar"); + } + } + + is_route_in_sidebar() { + let match = false; + const that = this; + $(".item-anchor").each(function () { + let href = $(this).attr("href")?.split("?")[0]; + const path = decodeURIComponent(window.location.pathname); + + // Match only if path equals href or starts with it followed by "/" or end of string + const isActive = new RegExp(`^${href}(?:/|$)`).test(path); + if (href && isActive) { + match = true; + if (that.active_item) that.active_item.removeClass("active-sidebar"); + that.active_item = $(this).parent(); + // this exists the each loop + return false; + } + }); + return match; + } + + set_sidebar_state() { + this.load_sidebar_state(); + if (this.workspace_sidebar_items.length === 0) { + this.sidebar_expanded = true; + } + + this.expand_sidebar(); + } + + load_sidebar_state() { + this.sidebar_expanded = true; + if (localStorage.getItem("sidebar-expanded") !== null) { + this.sidebar_expanded = JSON.parse(localStorage.getItem("sidebar-expanded")); + } + + if (frappe.is_mobile()) { + this.sidebar_expanded = false; + } + } + empty() { + if (this.wrapper.find(".sidebar-items")[0]) { + this.wrapper.find(".sidebar-items").html(""); + } + } + make_sidebar() { + this.empty(); + this.wrapper.find(".collapse-sidebar-link").removeClass("hidden"); + this.create_sidebar(this.workspace_sidebar_items); + + // Scroll sidebar to selected page if it is not in viewport. + this.wrapper.find(".selected").length && + !frappe.dom.is_element_in_viewport(this.wrapper.find(".selected")) && + this.wrapper.find(".selected")[0].scrollIntoView(); + + this.set_active_workspace_item(); + this.set_sidebar_state(); + } + create_sidebar(items) { + this.empty(); + if (items && items.length > 0) { + items.forEach((w) => { + if (!w.display_depends_on || frappe.utils.eval(w.display_depends_on)) { + this.add_item(w); + } + }); + } else { + let no_items_message = $( + "
No Sidebar Items
" + ); + this.wrapper.find(".sidebar-items").append(no_items_message); + this.wrapper.find(".collapse-sidebar-link").addClass("hidden"); + } + if (this.edit_mode) { + $(".edit-menu").removeClass("hidden"); + } + this.handle_outside_click(); + } + + add_item(item) { + this.items.push( + this.make_sidebar_item({ + container: this.$items_container, + item: item, + }) + ); + } + make_sidebar_item(opts) { + let class_name = `Type${frappe.utils.to_title_case(opts.item.type).replace(/ /g, "")}`; + + return new frappe.ui.sidebar_item[class_name](opts); + } + update_item(item, index) {} + + remove_item(item, index) {} + + toggle_width() { + if (!this.sidebar_expanded) { + this.open(); + } else { + this.close(); + } + } + + expand_sidebar() { + let direction; + if (this.sidebar_expanded) { + this.wrapper.addClass("expanded"); + // this.sidebar_expanded = false + direction = "left"; + } else { + this.wrapper.removeClass("expanded"); + // this.sidebar_expanded = true + direction = "right"; + } + + localStorage.setItem("sidebar-expanded", this.sidebar_expanded); + this.wrapper + .find(".body-sidebar .collapse-sidebar-link") + .find("use") + .attr("href", `#icon-arrow-${direction}-to-line`); + this.sidebar_header.toggle_width(this.sidebar_expanded); + $(document).trigger("sidebar-expand", { + sidebar_expand: this.sidebar_expanded, + }); + } + + close() { + this.sidebar_expanded = false; + + this.expand_sidebar(); + if (frappe.is_mobile()) frappe.app.sidebar.prevent_scroll(); + } + open() { + this.sidebar_expanded = true; + this.expand_sidebar(); + this.set_active_workspace_item(); + } + + set_height() { + $(".body-sidebar").css("height", window.innerHeight + "px"); + $(".overlay").css("height", window.innerHeight + "px"); + document.body.style.overflow = "hidden"; + } + + handle_outside_click() { + document.addEventListener("click", (e) => { + if (this.sidebar_header.drop_down_expanded) { + if (!e.composedPath().includes(this.sidebar_header.app_switcher_dropdown)) { + this.sidebar_header.toggle_dropdown_menu(); + } + } + }); + } + + prevent_scroll() { + let main_section = $(".main-section"); + if (this.sidebar_expanded) { + main_section.css("overflow", "hidden"); + } else { + main_section.css("overflow", ""); + } + } + + set_workspace_sidebar(router) { + let route = frappe.get_route(); + if (frappe.get_route()[0] == "setup-wizard") return; + if (route[0] == "Workspaces") { + let workspace; + if (!route[1]) { + workspace = "My Workspaces"; + } else { + workspace = route[1]; + } + + frappe.app.sidebar.setup(workspace); + } else if (route[0] == "List" || route[0] == "Form") { + let doctype = route[1]; + let sidebars = this.get_correct_workspace_sidebars(doctype); + // prevents switching of the sidebar if one item is linked in two sidebars + if (sidebars.includes(this.workspace_title)) { + frappe.app.sidebar.setup(this.workspace_title); + return; + } + if (sidebars.length == 0) { + let module_name = router.meta?.module; + if (module_name) { + frappe.app.sidebar.setup( + this.sidebar_module_map[module_name][0] || module_name + ); + } + } else { + if ( + this.workspace_title && + sidebars.includes(this.workspace_title.toLowerCase()) + ) { + frappe.app.sidebar.setup(this.workspace_title.toLowerCase()); + } else { + frappe.app.sidebar.setup(sidebars[0]); + } + } + } else if (route[0] == "query-report") { + let doctype = route[1]; + let sidebars = this.get_correct_workspace_sidebars(doctype); + if (this.workspace_title && sidebars.includes(this.workspace_title.toLowerCase())) { + frappe.app.sidebar.setup(this.workspace_title.toLowerCase()); + } else { + frappe.app.sidebar.setup(sidebars[0]); + } + } + + this.set_active_workspace_item(); + } + + set_sidebar_for_page() { + let route = frappe.get_route(); + let views = ["List", "Form", "Workspaces", "query-report"]; + let matches = views.some((view) => route.includes(view)); + if (matches) return; + let workspace_title; + if (route.length == 2) { + workspace_title = this.get_correct_workspace_sidebars(route[1]); + } else { + workspace_title = this.get_correct_workspace_sidebars(route); + } + let module_name = workspace_title[0]; + if (module_name) { + frappe.app.sidebar.setup(module_name || this.workspace_title); + } + } + + get_correct_workspace_sidebars(link_to) { + let sidebars = []; + Object.entries(this.all_sidebar_items).forEach(([name, sidebar]) => { + const { items, label } = sidebar; + items.forEach((item) => { + if (item.link_to === link_to) { + sidebars.push(label || name); + } + }); + }); + return sidebars; + } + + toggle_editing_mode() { + const me = this; + if (this.edit_mode) { + this.wrapper.attr("data-mode", "edit"); + this.new_sidebar_items = Array.from(me.workspace_sidebar_items); + $(this.active_item).removeClass("active-sidebar"); + $(".collapse-sidebar-link").addClass("hidden"); + this.wrapper.find(".edit-mode").removeClass("hidden"); + this.add_new_item_button = this.wrapper.find("[data-name='add-sidebar-item']"); + this.setup_sorting(); + + this.setup_editing_controls(); + this.add_new_item_button.on("click", function () { + me.show_new_dialog(); + }); + } else { + $(this.active_item).addClass("active-sidebar"); + $(".collapse-sidebar-link").removeClass("hidden"); + this.wrapper.find(".edit-mode").addClass("hidden"); + this.add_new_item_button = this.wrapper.find("[data-name='add-sidebar-item']"); + } + } + setup_sorting() { + const me = this; + this.sortable = Sortable.create($(".sidebar-items").get(0), { + handler: ".drag-handle", + onEnd: function (event) { + if (me.new_sidebar_items.length == 0) { + me.new_sidebar_items = Array.from(me.workspace_sidebar_items); + } + let old_index = event.oldIndex; + let new_index = event.newIndex; + me.new_sidebar_items[old_index]; + let b = me.new_sidebar_items[old_index]; + me.new_sidebar_items[old_index] = me.new_sidebar_items[new_index]; + me.new_sidebar_items[new_index] = b; + }, + }); + this.setup_sorting_for_nested_container(); + } + setup_sorting_for_nested_container() { + const me = this; + $(".nested-container").each(function (index, el) { + Sortable.create(el, { + handle: ".drag-handle", + onEnd: function (event) { + let new_index = event.newIndex; + let old_index = event.oldIndex; + let item_label = $(event.item).data("id"); + me.new_sidebar_items.forEach((item) => { + if (item.nested_items.length) { + let child = item.nested_items.find( + (child) => child.label === item_label + ); + if (child) { + let b = item.nested_items[old_index]; + item.nested_items[old_index] = item.nested_items[new_index]; + item.nested_items[new_index] = b; + } + } + }); + }, + }); + }); + } + make_dialog(opts) { + let title = "New Sidebar Item"; + + const me = this; + this.dialog_opts = opts; + + // Create the dialog + let dialog_fields = [ + { + fieldname: "label", + fieldtype: "Data", + in_list_view: 1, + label: "Label", + onchange: function (opts) { + let label = this.get_value(); + switch (label) { + case "Home": + d.set_value("icon", "home"); + d.set_value("link_type", "Workspace"); + d.set_value("link_to", me.workspace_title); + break; + + case "Reports": + d.set_value("type", "Section Break"); + d.set_value("link_to", null); + break; + + case "Dashboard": + d.set_value("link_type", "Dashboard"); + d.set_value("link_to", me.workspace_title); + d.set_value("icon", "layout-dashboard"); + break; + + case "Learn": + d.set_value("icon", "graduation-cap"); + d.set_value("link_type", "URL"); + break; + + case "Settings": + d.set_value("icon", "settings"); + break; + } + + if (d.get_value("type") == "Link" && d.get_value("link_type") !== "URL") { + d.set_value("link_to", label); + } + + if ( + me.dialog_opts && + me.dialog_opts.parent_item && + me.dialog_opts.parent_item.label == "Reports" + ) { + d.set_value("icon", "table"); + d.set_value("link_type", "Report"); + } + }, + }, + { + default: "Link", + fieldname: "type", + fieldtype: "Select", + in_list_view: 1, + label: "Type", + options: "Link\nSection Break\nSpacer\nSidebar Item Group", + onchange: function () { + let type = this.get_value(); + if (type == "Section Break") { + d.set_value("link_to", null); + } + }, + }, + { + default: "DocType", + depends_on: "eval: doc.type == 'Link'", + fieldname: "link_type", + fieldtype: "Select", + in_list_view: 1, + label: "Link Type", + options: "DocType\nPage\nReport\nWorkspace\nDashboard\nURL", + onchange: function () { + d.set_value("link_to", null); + }, + }, + { + depends_on: "eval: doc.link_type != \"URL\" && doc.type == 'Link'", + fieldname: "link_to", + fieldtype: "Dynamic Link", + in_list_view: 1, + label: "Link To", + options: "link_type", + onchange: function () { + if (d.get_value("link_type") == "DocType") { + let doctype = this.get_value(); + if (doctype) { + me.setup_filter(d, doctype); + } + } + }, + }, + { + depends_on: 'eval: doc.link_type == "URL"', + fieldname: "url", + fieldtype: "Data", + label: "URL", + }, + { + depends_on: + 'eval: doc.type == "Link" || (doc.indent == 1 && doc.type == "Section Break")', + fieldname: "icon", + fieldtype: "Icon", + options: "Emojis", + in_list_view: 1, + label: "Icon", + }, + { + fieldtype: "HTML", + fieldname: "filter_area", + }, + { + depends_on: 'eval: doc.type == "Section Break"', + fieldname: "display_section", + fieldtype: "Section Break", + label: "Options", + }, + { + default: "0", + depends_on: 'eval: doc.type == "Section Break"', + fieldname: "indent", + fieldtype: "Check", + label: "Indent", + }, + { + depends_on: "eval: doc.indent == 1", + fieldname: "show_arrow", + fieldtype: "Check", + label: "Show Arrow", + }, + { + default: "1", + depends_on: 'eval: doc.type == "Section Break"', + fieldname: "collapsible", + fieldtype: "Check", + label: "Collapsible", + }, + { + fieldname: "column_break_krzu", + fieldtype: "Column Break", + }, + { + default: "0", + depends_on: 'eval: doc.type == "Section Break"', + fieldname: "keep_closed", + fieldtype: "Check", + label: "Keep Closed", + }, + { + fieldname: "details_section", + fieldtype: "Section Break", + label: "Details", + }, + + { + fieldtype: "Section Break", + }, + { + fieldname: "display_depends_on", + fieldtype: "Code", + label: "Display Depends On (JS)", + options: "JS", + max_height: "10px", + }, + { + fieldtype: "Section Break", + }, + { + fieldname: "route_options", + fieldtype: "Code", + display_depends_on: "eval: doc.link_type == 'Page'", + label: "Route Options", + options: "JSON", + max_height: "50px", + }, + ]; + if (opts && opts.item) { + dialog_fields.forEach((f) => { + if ( + opts.item[f.fieldname] !== undefined && + f.fieldtype !== "Section Break" && + f.fieldtype !== "Column Break" + ) { + f.default = opts.item[f.fieldname]; + } + }); + title = "Edit Sidebar Item"; + } + let d; + this.dialog = d = new frappe.ui.Dialog({ + title: title, + fields: dialog_fields, + primary_action_label: "Save", + size: "small", + primary_action(values) { + if (me.filter_group) { + me.filter_group.get_filters(); + } + + if (me.new_sidebar_items.length === 0) { + me.new_sidebar_items = Array.from(me.workspace_sidebar_items); + } + if (opts && opts.nested) { + values.child = 1; + console.log("Add it as a nested item"); + console.log(opts.parent_item); + let index = me.new_sidebar_items.findIndex((f) => { + return f.label == opts.parent_item.label; + }); + + if (!me.new_sidebar_items[index].nested_items) { + me.new_sidebar_items[index].nested_items = []; + } + me.new_sidebar_items[index].nested_items.push(values); + } else if (opts && opts.item) { + if (opts.item.child) { + let parent_icon = me.find_parent(me.new_sidebar_items, opts.item); + if (parent_icon) { + let index = parent_icon.nested_items.indexOf(opts.item); + let parent_icon_index = me.new_sidebar_items.indexOf(parent_icon); + me.new_sidebar_items[parent_icon_index].nested_items[index] = values; + } + } else { + let index = me.new_sidebar_items.indexOf(opts.item); + + me.new_sidebar_items[index] = { + ...me.new_sidebar_items[index], + ...values, + }; + } + } else { + me.new_sidebar_items.push(values); + } + me.create_sidebar(me.new_sidebar_items); + me.setup_sorting_for_nested_container(); + d.hide(); + }, + }); + + return d; + } + setup_filter(d, doctype) { + if (this.filter_group) { + this.filter_group.wrapper.empty(); + delete this.filter_group; + } + + // let $loading = this.dialog.get_field("filter_area_loading").$wrapper; + // $(`${__("Loading Filters...")}`).appendTo($loading); + + this.filters = []; + + this.generate_filter_from_json && this.generate_filter_from_json(); + + this.filter_group = new frappe.ui.FilterGroup({ + parent: d.get_field("filter_area").$wrapper, + doctype: doctype, + on_change: () => {}, + }); + + frappe.model.with_doctype(doctype, () => { + this.filter_group.add_filters_to_filter_group(this.filters); + }); + } + hide_field(fieldname) { + this.dialog.set_df_property(fieldname, "hidden", true); + } + + show_field(fieldname) { + this.dialog.set_df_property(fieldname, "hidden", false); + } + setup_editing_controls() { + const me = this; + this.save_sidebar_button = this.wrapper.find(".save-sidebar"); + this.discard_button = this.wrapper.find(".discard-button"); + this.save_sidebar_button.on("click", async function (event) { + frappe.show_alert({ + message: __("Saving Sidebar"), + indicator: "success", + }); + + await frappe.call({ + type: "POST", + method: "frappe.desk.doctype.workspace_sidebar.workspace_sidebar.add_sidebar_items", + args: { + sidebar_title: + me.workspace_title || frappe.app.sidebar.sidebar_header.workspace_title, + sidebar_items: me.new_sidebar_items, + }, + callback: function (r) { + frappe.boot.workspace_sidebar_item[me.workspace_title.toLowerCase()] = [ + ...me.new_sidebar_items, + ]; + frappe.ui.toolbar.clear_cache(); + me.edit_mode = false; + me.toggle_editing_mode(); + me.make_sidebar(me); + }, + }); + }); + + this.discard_button.on("click", function () { + me.edit_mode = false; + me.toggle_editing_mode(); + me.make_sidebar(me); + }); + } + + find_parent(sidebar_items, item) { + for (const f of sidebar_items) { + if (f.nested_items && f.nested_items.includes(item)) { + return f; + } + } + } + + delete_item(item) { + let index; + if (item.child) { + let parent_icon = this.find_parent(this.new_sidebar_items, item); + index = parent_icon.nested_items.indexOf(item); + parent_icon.nested_items.splice(index, 1); + } else { + index = this.new_sidebar_items.indexOf(item); + this.new_sidebar_items.splice(index, 1); + } + this.create_sidebar(this.new_sidebar_items); + } + + add_below(item) { + let index = this.workspace_sidebar_items.indexOf(item); + this.show_new_dialog(index); + this.create_sidebar(this.new_sidebar_items); + } + + duplicate_item(item) { + let index = this.workspace_sidebar_items.indexOf(item); + this.new_sidebar_items.splice(index, 0, item); + this.create_sidebar(this.new_sidebar_items); + } + + edit_item(item) { + let d = this.make_dialog({ + item: item, + }); + d.show(); + } + + show_new_dialog(opts) { + let d = this.make_dialog(opts); + d.show(); + } + make_fields_for_grids(fields) { + let doc_fields = Array.from(fields); + doc_fields = doc_fields + .filter((f) => f.fieldtype !== "Section Break" && f.fieldtype !== "Column Break") + .map((f, i) => ({ + ...f, + in_list_view: i < 5 ? 1 : 0, + })); + let link_to_field = doc_fields.find((f) => f.label == "Link To"); + link_to_field.field_in_dialog = true; + return doc_fields; + } +}; diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar_header.html b/frappe/public/js/frappe/ui/sidebar/sidebar_header.html new file mode 100644 index 0000000000..1bf076fd8d --- /dev/null +++ b/frappe/public/js/frappe/ui/sidebar/sidebar_header.html @@ -0,0 +1,29 @@ + + + +
+ + + +
+ +
+ + \ No newline at end of file diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar_header.js b/frappe/public/js/frappe/ui/sidebar/sidebar_header.js new file mode 100644 index 0000000000..c4c26f0867 --- /dev/null +++ b/frappe/public/js/frappe/ui/sidebar/sidebar_header.js @@ -0,0 +1,185 @@ +frappe.ui.SidebarHeader = class SidebarHeader { + constructor(sidebar) { + this.sidebar = sidebar; + this.sidebar_wrapper = $(".body-sidebar"); + this.drop_down_expanded = false; + this.workspace_title = this.sidebar.workspace_title; + const me = this; + this.dropdown_items = [ + { + name: "desktop", + label: __("Desktop"), + icon: "layout-grid", + onClick: function (el) { + frappe.set_route("/desk"); + }, + }, + { + name: "edit-sidebar", + label: __("Edit Sidebar"), + icon: "edit", + onClick: function () { + me.sidebar.edit_mode = true; + me.sidebar.toggle_editing_mode(); + }, + }, + { + name: "website", + label: __("Website"), + icon: "web", + onClick: function () { + window.open(window.location.origin); + }, + }, + ]; + this.make(); + this.setup_app_switcher(); + this.populate_dropdown_menu(); + this.setup_select_options(); + } + + make() { + $(".sidebar-header").remove(); + $(".sidebar-header-menu").remove(); + this.set_header_icon(); + $( + frappe.render_template("sidebar_header", { + workspace_title: this.workspace_title, + header_icon: this.header_icon, + header_bg_color: this.header_stroke_color, + }) + ).prependTo(this.sidebar_wrapper); + this.wrapper = $(".sidebar-header"); + this.dropdown_menu = this.wrapper.find(".sidebar-header-menu"); + this.$header_title = this.wrapper.find(".header-title"); + this.$drop_icon = this.wrapper.find(".drop-icon"); + } + set_header_icon() { + let desktop_icon = this.get_desktop_icon_by_label(this.sidebar.workspace_title); + if (desktop_icon && desktop_icon.logo_url) { + this.header_icon = this.get_desktop_icon_by_label( + this.sidebar.workspace_title + ).logo_url; + this.header_icon = ``; + } else if (this.sidebar.sidebar_data) { + this.header_icon = this.sidebar.sidebar_data.header_icon; + this.header_icon = frappe.utils.icon( + this.header_icon, + "lg", + "", + "", + "", + false, + `var(${this.header_bg_color})` + ); + } + } + get_desktop_icon_by_label(title, filters) { + if (!filters) { + return frappe.boot.desktop_icons.find((f) => f.label === title && f.hidden != 1); + } else { + return frappe.boot.desktop_icons.find((f) => { + return ( + f.label === title && + Object.keys(filters).every((key) => f[key] === filters[key]) && + f.hidden != 1 + ); + }); + } + } + + setup_app_switcher() { + this.dropdown_menu = $(".sidebar-header-menu"); + $(".sidebar-header").on("click", (e) => { + this.toggle_dropdown_menu(); + e.stopImmediatePropagation(); + }); + } + + toggle_dropdown_menu() { + this.toggle_active(); + this.dropdown_menu.toggleClass("hidden"); + } + + populate_dropdown_menu() { + const me = this; + this.check_editing_access(); + this.dropdown_items.forEach((d) => { + me.add_app_item(d); + }); + } + check_editing_access() { + if (!frappe.boot.developer_mode) { + this.dropdown_items.splice(1, 1); + } + } + add_app_item(item) { + $(``).appendTo(this.dropdown_menu); + } + + setup_select_options() { + this.dropdown_menu.find(".dropdown-menu-item").on("click", (e) => { + let item = $(e.delegateTarget); + let name = item.attr("data-name"); + let current_item = this.dropdown_items.find((f) => f.name == name); + this.dropdown_menu.toggleClass("hidden"); + this.toggle_active(); + current_item.onClick(item); + }); + } + + toggle_active() { + this.toggle_dropdown(); + this.wrapper.toggleClass("active-sidebar"); + if (!this.sidebar.sidebar_expanded) { + this.wrapper.removeClass("active-sidebar"); + } + } + + toggle_dropdown() { + if (this.drop_down_expanded) { + this.drop_down_expanded = false; + } else { + this.drop_down_expanded = true; + } + } + + setup_hover() { + $(".sidebar-header").on("mouseover", function (event) { + if ($(this).parent().hasClass("active-sidebar")) return; + $(this).addClass("hover"); + }); + + $(".sidebar-header").on("mouseleave", function () { + $(this).removeClass("hover"); + }); + } + + toggle_width(expand) { + if (!expand) { + $(this.wrapper[0]).off("mouseleave"); + $(this.wrapper[0]).off("mouseover"); + this.wrapper.css("padding-left", "0px"); + this.wrapper.css("padding-right", "0px"); + } else { + this.setup_hover(); + this.wrapper.css("padding-left", "8px"); + this.wrapper.css("padding-right", "8px"); + } + } +}; diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar_item.html b/frappe/public/js/frappe/ui/sidebar/sidebar_item.html new file mode 100644 index 0000000000..f448294c1d --- /dev/null +++ b/frappe/public/js/frappe/ui/sidebar/sidebar_item.html @@ -0,0 +1,52 @@ + \ No newline at end of file diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar_item.js b/frappe/public/js/frappe/ui/sidebar/sidebar_item.js new file mode 100644 index 0000000000..58f3e4b6b6 --- /dev/null +++ b/frappe/public/js/frappe/ui/sidebar/sidebar_item.js @@ -0,0 +1,354 @@ +frappe.provide("frappe.ui.sidebar_item"); +frappe.ui.sidebar_item.TypeLink = class SidebarItem { + constructor(opts) { + this.item = opts.item; + this.container = opts.container; + this.nested_items = opts.item.nested_items || []; + this.workspace_title = $(".body-sidebar").attr("data-title").toLowerCase(); + this.prepare(opts); + this.make(); + } + get_path() { + let path; + if (this.item.type === "Link") { + if (this.item.link_type === "Report") { + let args = { + type: this.item.link_type, + name: this.item.link_to, + }; + + if (this.item.report || !frappe.app.sidebar.edit_mode) { + args.is_query_report = + this.item.report.report_type === "Query Report" || + this.item.report.report_type == "Script Report"; + args.report_ref_doctype = this.item.report.ref_doctype; + } + + path = frappe.utils.generate_route(args); + } else if (this.item.link_type == "Workspace") { + let workspaces = frappe.workspaces[frappe.router.slug(this.item.link_to)]; + if (workspaces.public) { + path = "/desk/" + frappe.router.slug(this.item.link_to); + } else { + path = "/desk/private/" + frappe.router.slug(workspaces.title); + } + + if (this.item.route) { + path = this.item.route; + } + } else if (this.item.link_type === "URL") { + path = this.item.url; + } else if (this.item.link_type == "Page" && this.item.route_options) { + path = frappe.utils.generate_route({ + type: this.item.link_type, + name: this.item.link_to, + route_options: JSON.parse(this.item.route_options), + }); + } else { + path = frappe.utils.generate_route({ + type: this.item.link_type, + name: this.item.link_to, + }); + } + } + return path; + } + prepare() {} + make() { + this.path = this.get_path(); + if (!this.item.icon && !(this.item.child && this.item.parent.indent)) { + this.item.icon = "list-alt"; + } + this.wrapper = $( + frappe.render_template("sidebar_item", { + item: this.item, + path: this.path, + edit_mode: frappe.app.sidebar.edit_mode, + }) + ); + $(this.container).append(this.wrapper); + this.setup_editing_controls(); + } + setup_editing_controls() { + this.menu_items = this.get_menu_items(); + this.$edit_menu = this.wrapper.find(".edit-menu"); + this.$sidebar_container = this.$edit_menu.parent(); + frappe.ui.create_menu(this.$edit_menu, this.menu_items); + } + get_menu_items() { + let me = this; + let menu_items = [ + { + label: "Edit Item", + icon: "pen", + onClick: () => { + frappe.app.sidebar.edit_item(me.item); + }, + }, + { + label: "Add Item Below", + icon: "add", + onClick: () => { + frappe.app.sidebar.add_below(me.item); + }, + }, + { + label: "Duplicate", + icon: "copy", + onClick: () => { + console.log("Start Deleting"); + frappe.app.sidebar.duplicate_item(me.item); + }, + }, + { + label: "Delete", + icon: "trash-2", + onClick: () => { + console.log(me.item); + frappe.app.sidebar.delete_item(me.item); + console.log("Start Deleting"); + }, + }, + ]; + return menu_items; + } + add_menu_items() {} +}; + +frappe.ui.sidebar_item.TypeSectionBreak = class SectionBreakSidebarItem extends ( + frappe.ui.sidebar_item.TypeLink +) { + prepare(opts) { + this.collapsed = false; + this.nested_items = opts.item.nested_items || this.nested_items; + this.items = []; + this.$items = []; + const storedState = localStorage.getItem("section-breaks-state"); + this.section_breaks_state = storedState ? JSON.parse(storedState) : {}; + } + add_items() { + this.$item_control = this.wrapper.find(".sidebar-item-control"); + this.$nested_items = this.wrapper.find(".nested-container").first(); + this.nested_items.forEach((f) => { + this.items.push( + frappe.app.sidebar.make_sidebar_item({ + container: this.$nested_items, + item: f, + }) + ); + }); + this.full_template = $(this.wrapper); + } + make() { + if (this.item.nested_items.length == 0) return; + super.make(); + this.add_items(); + this.toggle_on_collapse(); + this.enable_collapsible(this.item, this.full_template); + $(this.container).append(this.full_template); + } + open() { + this.collapsed = false; + this.toggle(); + } + close() { + this.collapsed = true; + this.toggle(); + } + toggle() { + if (this.collapsed) { + this.$drop_icon + .attr("data-state", "closed") + .find("use") + .attr("href", "#icon-chevron-right"); + $(this.$nested_items).addClass("hidden"); + } else { + this.$drop_icon + .attr("data-state", "opened") + .find("use") + .attr("href", "#icon-chevron-down"); + $(this.$nested_items).removeClass("hidden"); + } + } + toggle_on_collapse() { + const me = this; + this.old_state; + $(document).on("sidebar-expand", function (event, expand) { + if (expand.sidebar_expand) { + $(me.wrapper.find(".section-break")).removeClass("hidden"); + $(me.wrapper.find(".divider")).addClass("hidden"); + if (me.old_state) { + me.collapsed = me.old_state; + me.toggle(); + } + } else { + $(me.wrapper.find(".section-break")).addClass("hidden"); + $(me.wrapper.find(".divider")).removeClass("hidden"); + me.old_state = me.collapsed; + me.open(); + } + }); + } + + enable_collapsible(item, $item_container) { + let sidebar_control = this.$item_control; + let drop_icon = "chevron-down"; + if (item.collapsible) { + let stroke_color = window + .getComputedStyle(document.body) + .getPropertyValue("--ink-gray-5"); + this.$drop_icon = $(`