From d4fc0ed75cba854a0130bd1846ab3205ac086f3f Mon Sep 17 00:00:00 2001 From: as-op Date: Thu, 20 Nov 2025 15:35:10 +0100 Subject: [PATCH 01/33] [#69171] Use the user defined name for "project initiation request" https://community.openproject.org/work_packages/69171 --- .../project/pdf_export/project_initiation.rb | 5 +- config/locales/en.yml | 2 - .../pdf_export/project_initiation_spec.rb | 107 +++++++++++------- 3 files changed, 70 insertions(+), 44 deletions(-) diff --git a/app/models/project/pdf_export/project_initiation.rb b/app/models/project/pdf_export/project_initiation.rb index 0741b9be067..36ae8bee393 100644 --- a/app/models/project/pdf_export/project_initiation.rb +++ b/app/models/project/pdf_export/project_initiation.rb @@ -121,7 +121,10 @@ class Project::PDFExport::ProjectInitiation < Exports::Exporter end def heading - I18n.t(:"export.project_initiation.title") + @heading ||= I18n.t( + "settings.project_initiation_request.name.options.#{project.name_artefact_name || 'invalid_key'}", + default: I18n.t(:"label_project_initiation_request") + ) end def footer_title diff --git a/config/locales/en.yml b/config/locales/en.yml index 0fd3ee6cb64..1f1947f3860 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2770,8 +2770,6 @@ en: units: hours: h days: d - project_initiation: - title: "Project initiation request" pdf_generator: page_nr_footer: "Page %{page} of %{total}" template_attributes: diff --git a/spec/models/project/pdf_export/project_initiation_spec.rb b/spec/models/project/pdf_export/project_initiation_spec.rb index 2193e4d7552..51994769c3a 100644 --- a/spec/models/project/pdf_export/project_initiation_spec.rb +++ b/spec/models/project/pdf_export/project_initiation_spec.rb @@ -42,11 +42,12 @@ RSpec.describe Project::PDFExport::ProjectInitiation, with_flag: { project_initi let(:current_user) { create(:user, member_with_permissions: { project => %i[view_projects view_project_attributes] }) } let(:export_time) { DateTime.new(2025, 11, 13, 13, 37) } let(:export_time_formatted) { format_time(export_time) } - let!(:section_a) { create(:project_custom_field_section, name: "Section A") } - let!(:section_b) { create(:project_custom_field_section, name: "Section B") } - let!(:unset_string_cf) { create(:string_project_custom_field, projects: [project]) } - let!(:disabled_custom_field) { create(:string_project_custom_field, name: "Disabled Field") } - let!(:disabled_mapping) do + let(:custom_artefact_name_key) { "project_mandate" } + let(:section_a) { create(:project_custom_field_section, name: "Section A") } + let(:section_b) { create(:project_custom_field_section, name: "Section B") } + let(:unset_string_cf) { create(:string_project_custom_field, projects: [project]) } + let(:disabled_custom_field) { create(:string_project_custom_field, name: "Disabled Field") } + let(:disabled_mapping) do create(:project_custom_field_project_mapping, project:, project_custom_field: disabled_custom_field, @@ -65,50 +66,74 @@ RSpec.describe Project::PDFExport::ProjectInitiation, with_flag: { project_initi before do login_as current_user - - bool_cf.update!(project_custom_field_section: section_a) - string_cf.update!(project_custom_field_section: section_a) - text_cf.update!(project_custom_field_section: section_a) - link_cf.update!(project_custom_field_section: section_a) - unset_string_cf.update!(project_custom_field_section: section_a) - disabled_custom_field.update!(project_custom_field_section: section_a) - - int_cf.update!(project_custom_field_section: section_b) - float_cf.update!(project_custom_field_section: section_b) - date_cf.update!(project_custom_field_section: section_b) - user_cf.update!(project_custom_field_section: section_b) - version_cf.update!(project_custom_field_section: section_b) end - it "exports a PDF containing project initiation with custom attributes grouped by sections" do - heading = I18n.t(:"export.project_initiation.title") + context "with a custom defined name" do + let(:project) { create(:project, name_artefact_name: custom_artefact_name_key) } + let(:current_user) { create(:admin) } - expected_document = [ - project.name, heading, export_time_formatted, # cover page + it "exports a PDF containing project initiation using the custom defined name" do + custom_artefact_name = I18n.t("settings.project_initiation_request.name.options.#{custom_artefact_name_key}") + expected_document = [ + project.name, custom_artefact_name, export_time_formatted, # cover page + custom_artefact_name, + "Project", + "Name", project.name, + "Description", "–", + "1/1", export_time_formatted, "#{project.name} | #{custom_artefact_name}" + ].join(" ") + expect(subject).to eq expected_document + end + end - heading, + context "with a project attributes" do + before do + bool_cf.update!(project_custom_field_section: section_a) + string_cf.update!(project_custom_field_section: section_a) + text_cf.update!(project_custom_field_section: section_a) + link_cf.update!(project_custom_field_section: section_a) + unset_string_cf.update!(project_custom_field_section: section_a) + disabled_custom_field.update!(project_custom_field_section: section_a) - "Project", - "Name", project.name, - "Description", "The description of the project", + int_cf.update!(project_custom_field_section: section_b) + float_cf.update!(project_custom_field_section: section_b) + date_cf.update!(project_custom_field_section: section_b) + user_cf.update!(project_custom_field_section: section_b) + version_cf.update!(project_custom_field_section: section_b) - "Section A", - link_cf.name, "https://www.example.com", - text_cf.name, "Some ", "long", " text", - string_cf.name, "Some small text", - bool_cf.name, "Yes", - unset_string_cf.name, "–", + disabled_mapping + end - "Section B", - version_cf.name, system_version, - user_cf.name, "Other User", - date_cf.name, format_date(Time.zone.today), - float_cf.name, "4.5", - int_cf.name, "5", + it "exports a PDF containing project initiation with custom attributes grouped by sections" do + heading = I18n.t(:"label_project_initiation_request") - "1/1", export_time_formatted, "#{project.name} | #{heading}" - ].join(" ") + expected_document = [ + project.name, heading, export_time_formatted, # cover page - expect(subject).to eq expected_document + heading, + + "Project", + "Name", project.name, + "Description", "The description of the project", + + "Section A", + link_cf.name, "https://www.example.com", + text_cf.name, "Some ", "long", " text", + string_cf.name, "Some small text", + bool_cf.name, "Yes", + unset_string_cf.name, "–", + + "Section B", + version_cf.name, system_version, + user_cf.name, "Other User", + date_cf.name, format_date(Time.zone.today), + float_cf.name, "4.5", + int_cf.name, "5", + + "1/1", export_time_formatted, "#{project.name} | #{heading}" + ].join(" ") + + expect(subject).to eq expected_document + end end end From 72428c4e2162919f4f3a5d8b31805eaa6b1b8828 Mon Sep 17 00:00:00 2001 From: as-op Date: Thu, 20 Nov 2025 15:48:42 +0100 Subject: [PATCH 02/33] obey rubocop --- app/models/project/pdf_export/project_initiation.rb | 2 +- spec/models/project/pdf_export/project_initiation_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/project/pdf_export/project_initiation.rb b/app/models/project/pdf_export/project_initiation.rb index 36ae8bee393..c133a08c053 100644 --- a/app/models/project/pdf_export/project_initiation.rb +++ b/app/models/project/pdf_export/project_initiation.rb @@ -123,7 +123,7 @@ class Project::PDFExport::ProjectInitiation < Exports::Exporter def heading @heading ||= I18n.t( "settings.project_initiation_request.name.options.#{project.name_artefact_name || 'invalid_key'}", - default: I18n.t(:"label_project_initiation_request") + default: I18n.t(:label_project_initiation_request) ) end diff --git a/spec/models/project/pdf_export/project_initiation_spec.rb b/spec/models/project/pdf_export/project_initiation_spec.rb index 51994769c3a..24c0eabd78e 100644 --- a/spec/models/project/pdf_export/project_initiation_spec.rb +++ b/spec/models/project/pdf_export/project_initiation_spec.rb @@ -105,7 +105,7 @@ RSpec.describe Project::PDFExport::ProjectInitiation, with_flag: { project_initi end it "exports a PDF containing project initiation with custom attributes grouped by sections" do - heading = I18n.t(:"label_project_initiation_request") + heading = I18n.t(:label_project_initiation_request) expected_document = [ project.name, heading, export_time_formatted, # cover page From eb268c5d5f1facb4ab6103571ae0a679f87e178a Mon Sep 17 00:00:00 2001 From: as-op Date: Thu, 20 Nov 2025 15:58:52 +0100 Subject: [PATCH 03/33] check for an empty key --- app/models/project/pdf_export/project_initiation.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/models/project/pdf_export/project_initiation.rb b/app/models/project/pdf_export/project_initiation.rb index c133a08c053..e5d5c2b331b 100644 --- a/app/models/project/pdf_export/project_initiation.rb +++ b/app/models/project/pdf_export/project_initiation.rb @@ -121,10 +121,11 @@ class Project::PDFExport::ProjectInitiation < Exports::Exporter end def heading - @heading ||= I18n.t( - "settings.project_initiation_request.name.options.#{project.name_artefact_name || 'invalid_key'}", - default: I18n.t(:label_project_initiation_request) - ) + @heading ||= if project.name_artefact_name.blank? + I18n.t(:label_project_initiation_request) + else + I18n.t("settings.project_initiation_request.name.options.#{project.name_artefact_name}") + end end def footer_title From 4a017121d1006fbecedda4b81ef1ef4f6d7eb9d2 Mon Sep 17 00:00:00 2001 From: Jan Sandbrink Date: Mon, 24 Nov 2025 09:20:49 +0100 Subject: [PATCH 04/33] Label hierarchy custom fields as "equals (OR)" --- app/models/queries/filters/strategies/hierarchy.rb | 1 + .../work_packages/table/queries/hierarchy_cf_filter_spec.rb | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/queries/filters/strategies/hierarchy.rb b/app/models/queries/filters/strategies/hierarchy.rb index 158ff5ab0c6..2abafc00e98 100644 --- a/app/models/queries/filters/strategies/hierarchy.rb +++ b/app/models/queries/filters/strategies/hierarchy.rb @@ -37,6 +37,7 @@ module Queries def operator_map super.dup.tap do |super_value| + super_value["="] = ::Queries::Operators::EqualsOr super_value["eq_with_descendants"] = ::Queries::Operators::CustomFields::Hierarchies::EqualsWithDescendants end end diff --git a/spec/features/work_packages/table/queries/hierarchy_cf_filter_spec.rb b/spec/features/work_packages/table/queries/hierarchy_cf_filter_spec.rb index c33965cabcb..d1b69b27912 100644 --- a/spec/features/work_packages/table/queries/hierarchy_cf_filter_spec.rb +++ b/spec/features/work_packages/table/queries/hierarchy_cf_filter_spec.rb @@ -76,7 +76,7 @@ RSpec.describe "Work package filtering by hierarchy custom field", :js, with_ee: # Filtering by hierarchy (=) - filters.add_filter_by(hierarchy_cf.name, "is", [luke.label], hierarchy_cf.attribute_name(:camel_case)) + filters.add_filter_by(hierarchy_cf.name, "is (OR)", [luke.label], hierarchy_cf.attribute_name(:camel_case)) wp_table.ensure_work_package_not_listed!(wp_leia) wp_table.expect_work_package_listed(wp_luke) From cbe2b6dd75c6961956c8861dd11993007b3f5ba0 Mon Sep 17 00:00:00 2001 From: Dombi Attila <83396+dombesz@users.noreply.github.com> Date: Mon, 24 Nov 2025 12:51:52 +0200 Subject: [PATCH 05/33] Pass template to the project creation footer. --- .../projects/project_creation_footer_component.rb | 7 ++++--- app/views/projects/new.html.erb | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/components/projects/project_creation_footer_component.rb b/app/components/projects/project_creation_footer_component.rb index de6bba2db02..74198118608 100644 --- a/app/components/projects/project_creation_footer_component.rb +++ b/app/components/projects/project_creation_footer_component.rb @@ -32,9 +32,10 @@ module Projects class ProjectCreationFooterComponent < ApplicationComponent include OpPrimer::ComponentHelpers - def initialize(form_identifier:, project:, current_step:) + def initialize(form_identifier:, project:, template:, current_step:) @form_identifier = form_identifier @project = project + @template = template @current_step = current_step super @@ -51,7 +52,7 @@ module Projects end end - attr_reader :form_identifier, :project, :current_step + attr_reader :form_identifier, :project, :template, :current_step private @@ -75,7 +76,7 @@ module Projects end def total_steps - project.template_id.nil? && project.available_custom_fields.required.any? ? 3 : 2 + template.nil? && project.available_custom_fields.required.any? ? 3 : 2 end end end diff --git a/app/views/projects/new.html.erb b/app/views/projects/new.html.erb index a18d7ca7e3f..d4d263ddfcf 100644 --- a/app/views/projects/new.html.erb +++ b/app/views/projects/new.html.erb @@ -75,6 +75,7 @@ See COPYRIGHT and LICENSE files for more details. render Projects::ProjectCreationFooterComponent.new( form_identifier: "project-create-form", project: @new_project, + template: @template, current_step: params.fetch(:step, 1).to_i ) end From 5380da2927d2f2f5dbc96dfd33ca0f35a4102425 Mon Sep 17 00:00:00 2001 From: Dombi Attila <83396+dombesz@users.noreply.github.com> Date: Mon, 24 Nov 2025 13:19:32 +0200 Subject: [PATCH 06/33] Update specs with progress expectations. --- spec/features/projects/create_spec.rb | 13 +++++++++++++ spec/features/projects/template_spec.rb | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/spec/features/projects/create_spec.rb b/spec/features/projects/create_spec.rb index c65bbc6142d..db365e9366e 100644 --- a/spec/features/projects/create_spec.rb +++ b/spec/features/projects/create_spec.rb @@ -63,6 +63,7 @@ RSpec.describe "Projects", "creation", click_on "Continue" # Step 2: Fill in project details + expect(page).to have_text("2 of 2") fill_in "Name", with: "Foo bar" click_on "Complete" @@ -100,10 +101,13 @@ RSpec.describe "Projects", "creation", # Step 1: Select workspace type (blank project) click_on "Continue" + # Step 2: Try to complete without name + expect(page).to have_text("2 of 2") click_on "Complete" expect_and_dismiss_flash type: :error, message: /^Creation failed/ + expect(page).to have_text("2 of 2") expect(page).to have_field "Name", validation_error: "can't be blank." end @@ -131,10 +135,12 @@ RSpec.describe "Projects", "creation", click_on "Continue" # Step 2: Fill in project details + expect(page).to have_text("2 of 3") fill_in "Name", with: "Foo bar" click_on "Continue" # Step 3: Fill in custom fields + expect(page).to have_text("3 of 3") expect(page).to have_combo_box "List CF *" list_field.select_option "A", "B" @@ -191,10 +197,12 @@ RSpec.describe "Projects", "creation", click_on "Continue" # Step 2: Fill in project details + expect(page).to have_text("2 of 3") fill_in "Name", with: "Foo bar" click_on "Continue" # Step 3: Fill in custom fields + expect(page).to have_text("3 of 3") expect(page).to have_combo_box "Version CF *" # expect the versions are grouped by the project name @@ -259,10 +267,12 @@ RSpec.describe "Projects", "creation", click_on "Continue" # Step 2: Project details - skip to step 3 + expect(page).to have_text("2 of 3") fill_in "Name", with: "Test Project" click_on "Continue" # Step 3: Custom fields + expect(page).to have_text("3 of 3") expect(page).to have_field "Required Foo *" expect(page).to have_field "Required User *" expect(page).to have_no_field "Optional Foo" @@ -281,14 +291,17 @@ RSpec.describe "Projects", "creation", click_on "Continue" # Step 2: Fill in name + expect(page).to have_text("2 of 3") fill_in "Name", with: "Test Project" click_on "Continue" # Step 3: Try to complete without required custom field + expect(page).to have_text("3 of 3") click_on "Complete" expect_and_dismiss_flash type: :error, message: /^Creation failed/ + expect(page).to have_text("3 of 3") expect(page).to have_field "Required Foo *", validation_error: "can't be blank." end end diff --git a/spec/features/projects/template_spec.rb b/spec/features/projects/template_spec.rb index 5d5e7562276..025fd75e15c 100644 --- a/spec/features/projects/template_spec.rb +++ b/spec/features/projects/template_spec.rb @@ -100,6 +100,7 @@ RSpec.describe "Project templates", :js, with_good_job_batches: [CopyProjectJob, click_on "Continue" # Step 2: Project details + expect(page).to have_text("2 of 2") fill_in "Name", with: "Foo bar" click_on "Complete" @@ -152,9 +153,10 @@ RSpec.describe "Project templates", :js, with_good_job_batches: [CopyProjectJob, click_on "Continue" # Step 2: Project details + expect(page).to have_text("2 of 2") fill_in "Name", with: "Project from template" - click_on "Continue" + click_on "Complete" # Step 3: Custom fields - should not show custom field form when creating from template expect(page).to have_no_field custom_field.name From f08532afe9be5e062b6b4af4096eee579e0b269f Mon Sep 17 00:00:00 2001 From: Henriette Darge Date: Mon, 24 Nov 2025 13:22:59 +0100 Subject: [PATCH 07/33] Replace missing new features banner with normal text (#21141) * Remove loud warning and replace it with a normal text, for better demoing * Update config/locales/en.yml Co-authored-by: Alexander Brandon Coles --------- Co-authored-by: Alexander Brandon Coles --- .../homescreen/blocks/new_features.html.erb | 20 +++++++------------ config/locales/en.yml | 1 + 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/app/components/homescreen/blocks/new_features.html.erb b/app/components/homescreen/blocks/new_features.html.erb index 5fe63a080a3..4ddf33a48b8 100644 --- a/app/components/homescreen/blocks/new_features.html.erb +++ b/app/components/homescreen/blocks/new_features.html.erb @@ -14,17 +14,11 @@ <% if has_image? %> - - <% else %> - <%= - render(Primer::Alpha::Banner.new(mb: 3, icon: :stop, scheme: :danger)) do - "Missing teaser image for the next release. Please add it to app/assets/images#{feature_teaser_image}" - end - %> + <% end %> @@ -32,8 +26,8 @@ <% else %> <%= - render(Primer::Alpha::Banner.new(mb: 3, icon: :stop, scheme: :danger)) do - "Missing teaser data for the next release. Please add it to #{base_i18n_key}" + render(Primer::Beta::Text.new(mb: 3)) do + I18n.t("homescreen.blocks.new_features.missing") end %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 2dff1c94149..a2c82fb9281 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2882,6 +2882,7 @@ en: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." # We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > From 1846f8d2e7ffd05e28f061716746611141289b08 Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Thu, 13 Nov 2025 15:54:13 +0100 Subject: [PATCH 08/33] [#66308] Limit hierarchy options based on workspace type https://community.openproject.org/work_packages/66308 From 35cf13b2c64c95833727d2d23182079c502ab628 Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Mon, 17 Nov 2025 16:47:52 +0100 Subject: [PATCH 09/33] render relations form for all workspace types --- app/forms/projects/settings/relations_form.rb | 4 ---- spec/forms/projects/settings/relations_form_spec.rb | 13 ++++++++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/forms/projects/settings/relations_form.rb b/app/forms/projects/settings/relations_form.rb index 095e3459647..ced943e30c8 100644 --- a/app/forms/projects/settings/relations_form.rb +++ b/app/forms/projects/settings/relations_form.rb @@ -49,10 +49,6 @@ module Projects private - def render? - model.project? - end - def project_autocompleter_model return nil unless parent return { id: parent.id, name: I18n.t(:"api_v3.undisclosed.parent") } unless parent.visible? || User.current.admin? diff --git a/spec/forms/projects/settings/relations_form_spec.rb b/spec/forms/projects/settings/relations_form_spec.rb index 8ae388198bd..3c6b66fee15 100644 --- a/spec/forms/projects/settings/relations_form_spec.rb +++ b/spec/forms/projects/settings/relations_form_spec.rb @@ -33,11 +33,18 @@ require "spec_helper" RSpec.describe Projects::Settings::RelationsForm, type: :forms do include_context "with rendered form" - let(:model) { build_stubbed(:project, parent:) } + let(:model) { build_stubbed(:project, parent:, workspace_type:) } let(:parent) { nil } + let(:workspace_type) { :project } - it "renders field" do - expect(page).to have_element "opce-project-autocompleter", "data-input-name": "\"project[parent_id]\"" + %i[portfolio program project].each do |workspace_type| + context "for workspace type #{workspace_type}" do + let(:workspace_type) { workspace_type } + + it "renders field" do + expect(page).to have_element "opce-project-autocompleter", "data-input-name": "\"project[parent_id]\"" + end + end end context "without parent" do From 9767a405c956bf6e0e53b64b11b6ace2b904dfc1 Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Mon, 17 Nov 2025 16:47:59 +0100 Subject: [PATCH 10/33] allowed parent workspace types --- app/models/project.rb | 8 ++++++++ spec/models/project_spec.rb | 24 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/app/models/project.rb b/app/models/project.rb index 5e0de6dad6d..f78b39fb0e0 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -55,6 +55,12 @@ class Project < ApplicationRecord portfolio: "portfolio" }, validate: true + ALLOWED_PARENT_WORKSPACE_TYPES = { + project: %i[portfolio program project], + program: %i[portfolio], + portfolio: %i[portfolio] + }.with_indifferent_access + has_many :members, -> { # TODO: check whether this should # remain to be limited to User only @@ -269,6 +275,8 @@ class Project < ApplicationRecord name end + def allowed_parent_workspace_types = ALLOWED_PARENT_WORKSPACE_TYPES[workspace_type] || [] + def workspace_label case workspace_type when "program" diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 117e2f3fcb2..ea2db6a10cb 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -593,4 +593,28 @@ RSpec.describe Project do end end end + + describe "#allowed_parent_workspace_types" do + { + project: %i[portfolio program project], + program: %i[portfolio], + portfolio: %i[portfolio] + }.each do |workspace_type, allowed_parent_workspace_types| + context "for workspace type #{workspace_type}" do + let(:project) { described_class.new(workspace_type:) } + + subject { project.allowed_parent_workspace_types } + + it { is_expected.to match_array(allowed_parent_workspace_types) } + end + end + + context "for unknown workspace type" do + let(:project) { described_class.new(workspace_type: :unknown) } + + subject { project.allowed_parent_workspace_types } + + it { is_expected.to eq [] } + end + end end From e9d14a664dbe7556ff591900e31a0696d8b18375 Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Mon, 17 Nov 2025 16:47:55 +0100 Subject: [PATCH 11/33] limit assignable parents by allowed parent workspace types --- .../projects/scopes/assignable_parents.rb | 7 +- .../scopes/assignable_parents_spec.rb | 78 ++++++++++++++----- 2 files changed, 64 insertions(+), 21 deletions(-) diff --git a/app/models/projects/scopes/assignable_parents.rb b/app/models/projects/scopes/assignable_parents.rb index 01c6e60e732..4eadbc2e2d1 100644 --- a/app/models/projects/scopes/assignable_parents.rb +++ b/app/models/projects/scopes/assignable_parents.rb @@ -34,12 +34,13 @@ module Projects::Scopes class_methods do def assignable_parents(user, project) - if project.portfolio? || project.program? - Project.none - else + if (allowed_parent_workspace_types = project.allowed_parent_workspace_types) Project .allowed_to(user, :add_subprojects) .where.not(id: project.self_and_descendants) + .where(workspace_type: allowed_parent_workspace_types) + else + Project.none end end end diff --git a/spec/models/projects/scopes/assignable_parents_spec.rb b/spec/models/projects/scopes/assignable_parents_spec.rb index 80b46abcba3..2147eda74b9 100644 --- a/spec/models/projects/scopes/assignable_parents_spec.rb +++ b/spec/models/projects/scopes/assignable_parents_spec.rb @@ -33,40 +33,82 @@ require "spec_helper" RSpec.describe Projects::Scopes::AssignableParents do shared_let(:add_subprojects_role) { create(:project_role, permissions: %i[add_subprojects]) } shared_let(:view_role) { create(:project_role, permissions: %i[]) } + shared_let(:user) { create(:user) } + + shared_let(:portfolio_with_permission) { create(:portfolio, members: { user => add_subprojects_role }) } + shared_let(:program_with_permission) { create(:program, members: { user => add_subprojects_role }) } shared_let(:project_with_permission) { create(:project, members: { user => add_subprojects_role }) } - shared_let(:parent_project) { create(:project, members: { user => add_subprojects_role }) } - shared_let(:subject_project, reload: true) do - create(:project, parent: parent_project, members: { user => add_subprojects_role }) - end - shared_let(:child_project) { create(:project, parent: subject_project, members: { user => add_subprojects_role }) } + shared_let(:portfolio_without_permission) { create(:portfolio, members: { user => view_role }) } + shared_let(:program_without_permission) { create(:program, members: { user => view_role }) } shared_let(:project_without_permission) { create(:project, members: { user => view_role }) } + # part of hierarchy used for test is not valid + shared_let(:parent_portfolio) { create(:portfolio, members: { user => add_subprojects_role }) } + shared_let(:parent_program) { create(:program, parent: parent_portfolio, members: { user => add_subprojects_role }) } + shared_let(:parent_project) { create(:project, parent: parent_program, members: { user => add_subprojects_role }) } + shared_let(:children) do + [ + create(:portfolio, members: { user => add_subprojects_role }), + create(:program, members: { user => add_subprojects_role }), + create(:project, members: { user => add_subprojects_role }) + ] + end + + let!(:subject_workspace) do + create(:project, workspace_type:, parent: parent_project, children:, members: { user => add_subprojects_role }) + end + context "for a project" do - it "returns all projects the user has the add_subprojects permission in but without self or descendants" do - expect(Project.assignable_parents(user, subject_project)) - .to contain_exactly(project_with_permission, parent_project) + let(:workspace_type) { :project } + + it "returns all types of projects the user has the add_subprojects permission in but without self or descendants" do + expect(Project.assignable_parents(user, subject_workspace)) + .to contain_exactly( + portfolio_with_permission, + program_with_permission, + project_with_permission, + parent_portfolio, + parent_program, + parent_project + ) end end context "for a portfolio" do - before do - subject_project.portfolio! - end + let(:workspace_type) { :portfolio } - it "is empty" do - expect(Project.assignable_parents(user, subject_project)) - .to be_empty + it "returns portfolios the user has the add_subprojects permission in but without self or descendants" do + expect(Project.assignable_parents(user, subject_workspace)) + .to contain_exactly( + portfolio_with_permission, + parent_portfolio + ) end end context "for a program" do - before do - subject_project.program! + let(:workspace_type) { :program } + + it "returns portfolios the user has the add_subprojects permission in" do + expect(Project.assignable_parents(user, subject_workspace)) + .to contain_exactly( + portfolio_with_permission, + parent_portfolio + ) + end + end + + context "for an unknown workspace type" do + let!(:subject_workspace) do + create(:project, :skip_validations, workspace_type: :unknown, + parent: parent_project, + children:, + members: { user => add_subprojects_role }) end - it "is empty" do - expect(Project.assignable_parents(user, subject_project)) + it do + expect(Project.assignable_parents(user, subject_workspace)) .to be_empty end end From 4942c9fff4156bf2889a539fc31d3d55c5114324 Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Mon, 17 Nov 2025 16:48:09 +0100 Subject: [PATCH 12/33] add workspace_type parameter to available_parent_projects endpoint --- .../projects_available_parent_projects.yml | 12 ++++++- lib/api/v3/projects/available_parents_api.rb | 33 ++++++++++--------- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/docs/api/apiv3/paths/projects_available_parent_projects.yml b/docs/api/apiv3/paths/projects_available_parent_projects.yml index cf02a73a748..68842871252 100644 --- a/docs/api/apiv3/paths/projects_available_parent_projects.yml +++ b/docs/api/apiv3/paths/projects_available_parent_projects.yml @@ -17,6 +17,16 @@ get: required: false schema: type: string + - description: >- + The workspace type of the new project the parent candidate is determined for. + Ignored when `of` parameter is provided. + example: program + in: query + name: workspace_type + required: false + schema: + type: string + enum: [project, program, portfolio] - description: |- JSON specifying sort criteria. Accepts the same format as returned by the [queries](https://www.openproject.org/docs/api/endpoints/queries/) endpoint and allows all the filters and sortBy supported by the project list endpoint. @@ -137,7 +147,7 @@ get: To specify the project for which a parent is queried for, the `of` parameter can be provided. If no `of` parameter is provided, a new project is assumed. Then, the check for the hierarchy is omitted as a new project cannot be - part of a hierarchy yet. + part of a hierarchy yet, instead `workspace_type` parameter can be passed defining it for new project. Candidates can be filtered. Most commonly one will want to filter by name or identifier. You can do this through the `filters` parameter which works just like the work package index. diff --git a/lib/api/v3/projects/available_parents_api.rb b/lib/api/v3/projects/available_parents_api.rb index 430528988f0..acd03acf774 100644 --- a/lib/api/v3/projects/available_parents_api.rb +++ b/lib/api/v3/projects/available_parents_api.rb @@ -39,25 +39,26 @@ module API end end - get &::API::V3::Utilities::Endpoints::SqlFallbackedIndex.new(model: Project, - scope: -> do - project = if params[:of] - Project.find(params[:of]) - else - Project.new(workspace_type: "project") - end + get &::API::V3::Utilities::Endpoints::SqlFallbackedIndex.new( + model: Project, + scope: -> do + project = if params[:of] + Project.find(params[:of]) + else + Project.new(workspace_type: params[:workspace_type] || "project") + end - contract_class = if project.new_record? - ::Projects::CreateContract - else - ::Projects::UpdateContract - end + contract_class = if project.new_record? + ::Projects::CreateContract + else + ::Projects::UpdateContract + end - contract = contract_class.new(project, current_user) + contract = contract_class.new(project, current_user) - contract.assignable_parents.includes(:enabled_modules) - end) - .mount + contract.assignable_parents.includes(:enabled_modules) + end + ).mount end end end From bb566be9586ab4430f02dc2342620ff0b9fd69de Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Wed, 19 Nov 2025 18:16:00 +0100 Subject: [PATCH 13/33] pass workspace_type parameter for new project parent autocompleter --- app/forms/projects/settings/relations_form.rb | 10 +++++++--- .../projects/schemas/project_schema_representer.rb | 12 ++++++------ lib/api/v3/utilities/path_helper.rb | 6 ++++-- .../schemas/project_schema_representer_spec.rb | 7 ++++--- spec/lib/api/v3/utilities/path_helper_spec.rb | 12 ++++++++++++ .../v3/projects/available_parents_resource_spec.rb | 2 +- .../api/v3/projects/update_form_resource_spec.rb | 2 +- 7 files changed, 35 insertions(+), 16 deletions(-) diff --git a/app/forms/projects/settings/relations_form.rb b/app/forms/projects/settings/relations_form.rb index ced943e30c8..287cd8dd793 100644 --- a/app/forms/projects/settings/relations_form.rb +++ b/app/forms/projects/settings/relations_form.rb @@ -57,9 +57,13 @@ module Projects end def project_autocompleter_url - url_str = ::API::V3::Utilities::PathHelper::ApiV3Path.projects_available_parents - url_str << "?of=#{model.id}" unless model.new_record? - url_str + params = if model.new_record? + { workspace_type: model.workspace_type } + else + { of: model.id } + end + + ::API::V3::Utilities::PathHelper::ApiV3Path.projects_available_parents(**params) end end end diff --git a/lib/api/v3/projects/schemas/project_schema_representer.rb b/lib/api/v3/projects/schemas/project_schema_representer.rb index 9f1ea0e230b..b3ce2b58454 100644 --- a/lib/api/v3/projects/schemas/project_schema_representer.rb +++ b/lib/api/v3/projects/schemas/project_schema_representer.rb @@ -94,13 +94,13 @@ module API !current_user.allowed_globally?(:add_project) }, href_callback: ->(*) { - query_props = if represented.model.new_record? - "" - else - "?of=#{represented.model.id}" - end + params = if represented.model.new_record? + { workspace_type: represented.model.workspace_type } + else + { of: represented.model.id } + end - api_v3_paths.projects_available_parents + query_props + api_v3_paths.projects_available_parents(**params) } schema :created_at, diff --git a/lib/api/v3/utilities/path_helper.rb b/lib/api/v3/utilities/path_helper.rb index 7c9d87afb80..e8da18abb0e 100644 --- a/lib/api/v3/utilities/path_helper.rb +++ b/lib/api/v3/utilities/path_helper.rb @@ -359,8 +359,10 @@ module API show :project_status - def self.projects_available_parents - "#{projects}/available_parent_projects" + def self.projects_available_parents(of: nil, workspace_type: nil) + query = { of:, workspace_type: }.compact_blank.to_query + + "#{projects}/available_parent_projects#{"?#{query}" unless query.empty?}" end def self.projects_schema diff --git a/spec/lib/api/v3/projects/schemas/project_schema_representer_spec.rb b/spec/lib/api/v3/projects/schemas/project_schema_representer_spec.rb index 13f00709b22..ac98d82bdf6 100644 --- a/spec/lib/api/v3/projects/schemas/project_schema_representer_spec.rb +++ b/spec/lib/api/v3/projects/schemas/project_schema_representer_spec.rb @@ -38,6 +38,7 @@ RSpec.describe API::V3::Projects::Schemas::ProjectSchemaRepresenter do let(:embedded) { true } let(:new_record) { true } let(:model_id) { 1 } + let(:workspace_type) { "foobar" } let(:custom_field) do build_stubbed(:integer_project_custom_field) end @@ -66,7 +67,7 @@ RSpec.describe API::V3::Projects::Schemas::ProjectSchemaRepresenter do .to receive_messages(available_custom_fields: [custom_field, calculated_value_cf], model: model) allow(model) - .to receive_messages(new_record?: new_record, id: model_id) + .to receive_messages(new_record?: new_record, id: model_id, workspace_type:) contract end @@ -330,7 +331,7 @@ RSpec.describe API::V3::Projects::Schemas::ProjectSchemaRepresenter do it_behaves_like "links to allowed values via collection link" do let(:href) do - api_v3_paths.projects_available_parents + api_v3_paths.projects_available_parents(workspace_type: :foobar) end end end @@ -372,7 +373,7 @@ RSpec.describe API::V3::Projects::Schemas::ProjectSchemaRepresenter do it_behaves_like "links to allowed values via collection link" do let(:href) do - api_v3_paths.projects_available_parents + "?of=#{model_id}" + api_v3_paths.projects_available_parents(of: model_id) end end end diff --git a/spec/lib/api/v3/utilities/path_helper_spec.rb b/spec/lib/api/v3/utilities/path_helper_spec.rb index 8ad9b7bed68..562d8ae65cf 100644 --- a/spec/lib/api/v3/utilities/path_helper_spec.rb +++ b/spec/lib/api/v3/utilities/path_helper_spec.rb @@ -296,6 +296,18 @@ RSpec.describe API::V3::Utilities::PathHelper do it_behaves_like "api v3 path", "/projects/available_parent_projects" end + + describe "#projects_available_parents with of parameter" do + subject { helper.projects_available_parents(of: 42) } + + it_behaves_like "api v3 path", "/projects/available_parent_projects?of=42" + end + + describe "#projects_available_parents with workspace_type parameter" do + subject { helper.projects_available_parents(workspace_type: :special) } + + it_behaves_like "api v3 path", "/projects/available_parent_projects?workspace_type=special" + end end describe "project phase paths" do diff --git a/spec/requests/api/v3/projects/available_parents_resource_spec.rb b/spec/requests/api/v3/projects/available_parents_resource_spec.rb index c670cd610ba..e9e9f607c18 100644 --- a/spec/requests/api/v3/projects/available_parents_resource_spec.rb +++ b/spec/requests/api/v3/projects/available_parents_resource_spec.rb @@ -98,7 +98,7 @@ RSpec.describe "API v3 Project available parents resource", content_type: :json end context "with a project candidate" do - let(:path) { api_v3_paths.projects_available_parents + "?of=#{project.id}" } + let(:path) { api_v3_paths.projects_available_parents(of: project.id) } before do response diff --git a/spec/requests/api/v3/projects/update_form_resource_spec.rb b/spec/requests/api/v3/projects/update_form_resource_spec.rb index 4363689a32c..a846d55de3f 100644 --- a/spec/requests/api/v3/projects/update_form_resource_spec.rb +++ b/spec/requests/api/v3/projects/update_form_resource_spec.rb @@ -150,7 +150,7 @@ RSpec.describe API::V3::Projects::UpdateFormAPI, content_type: :json do it "links to the allowed parents in the schema" do expect(subject.body) - .to be_json_eql((api_v3_paths.projects_available_parents + "?of=#{project.id}").to_json) + .to be_json_eql(api_v3_paths.projects_available_parents(of: project.id).to_json) .at_path("_embedded/schema/parent/_links/allowedValues/href") end end From 5554fba3c244a61f03f1781dfeb3226a003035e1 Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Mon, 17 Nov 2025 16:47:48 +0100 Subject: [PATCH 14/33] use invalid instead of does not exist error when parent is not amongst assignable --- app/contracts/projects/base_contract.rb | 2 +- spec/contracts/projects/shared_contract_examples.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/contracts/projects/base_contract.rb b/app/contracts/projects/base_contract.rb index f36431cf773..1727e8e05e8 100644 --- a/app/contracts/projects/base_contract.rb +++ b/app/contracts/projects/base_contract.rb @@ -95,7 +95,7 @@ module Projects if model.parent && model.parent_id_changed? && !assignable_parents.exists?(id: parent.id) - errors.add(:parent, :does_not_exist) + errors.add(:parent, :invalid) end end diff --git a/spec/contracts/projects/shared_contract_examples.rb b/spec/contracts/projects/shared_contract_examples.rb index 50eb2dd2f89..b0ab134cfb8 100644 --- a/spec/contracts/projects/shared_contract_examples.rb +++ b/spec/contracts/projects/shared_contract_examples.rb @@ -95,7 +95,7 @@ RSpec.shared_examples_for "project contract" do context "if the parent is not in the set of assignable_parents" do let(:assignable_parents) { [] } - it_behaves_like "contract is invalid", parent: %i(does_not_exist) + it_behaves_like "contract is invalid", parent: %i(invalid) end context "if active is nil" do From 8d433412ca5183123c5355e0393879849e0a639d Mon Sep 17 00:00:00 2001 From: Ivan Kuchin Date: Fri, 21 Nov 2025 17:44:18 +0100 Subject: [PATCH 15/33] update feature specs --- spec/features/portfolios/create_spec.rb | 25 ++++++++++++++++++------ spec/features/programs/create_spec.rb | 26 ++++++++++++++++++------- 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/spec/features/portfolios/create_spec.rb b/spec/features/portfolios/create_spec.rb index 6819eb85aad..6b525b06885 100644 --- a/spec/features/portfolios/create_spec.rb +++ b/spec/features/portfolios/create_spec.rb @@ -39,8 +39,17 @@ RSpec.describe "Portfolios", end # Role granted to creator on portfolio creation to be able to access the portfolio. shared_let(:default_project_role) { create(:project_role) } + shared_let(:add_subproject_role) { create(:project_role, permissions: %i[add_subprojects]) } + + let!(:root_portfolio) do + create(:portfolio, name: "Root portfolio", members: { user_with_permissions => add_subproject_role }) + end + let!(:other_portfolio) do + create(:portfolio, name: "Other portfolio") + end let(:projects_page) { Pages::Projects::Index.new } + let(:parent_field) { FormFields::SelectFormField.new :parent } current_user { user_with_permissions } @@ -54,19 +63,23 @@ RSpec.describe "Portfolios", click_on "Continue" # Step 2: Fill in project details - # This should be an - # expect(page).to have_no_field "Subproject of" - # But this leads to a false negative. Even with the field being there, is the - # expectation passed. - expect(page).to have_no_content "Subproject of" - fill_in "Name", with: "Foo bar" + + expect(page).to have_combo_box "Subproject of" + parent_field.expect_no_option "Other portfolio" + parent_field.select_option "Root portfolio" + click_on "Complete" expect_and_dismiss_flash type: :success, message: "Successful creation." expect(page).to have_current_path /\/projects\/foo-bar\/?/ expect(page).to have_content "Foo bar" + + portfolio = Project.last + expect(portfolio.workspace_type).to eq "portfolio" + expect(portfolio.identifier).to eq "foo-bar" + expect(portfolio.parent).to eq root_portfolio end context "without the necessary permissions to create portfolios", with_flag: { portfolio_models: true } do diff --git a/spec/features/programs/create_spec.rb b/spec/features/programs/create_spec.rb index 5e5b564bb33..4baa2c1caeb 100644 --- a/spec/features/programs/create_spec.rb +++ b/spec/features/programs/create_spec.rb @@ -39,14 +39,22 @@ RSpec.describe "Programs", end # Role granted to creator on program creation to be able to access the program. shared_let(:default_project_role) { create(:project_role) } + shared_let(:add_subproject_role) { create(:project_role, permissions: %i[add_subprojects]) } + + let!(:root_portfolio) do + create(:portfolio, name: "Root portfolio", members: { user_with_permissions => add_subproject_role }) + end + let!(:other_portfolio) do + create(:portfolio, name: "Other portfolio") + end let(:projects_page) { Pages::Projects::Index.new } + let(:parent_field) { FormFields::SelectFormField.new :parent } current_user { user_with_permissions } it "can create a program", with_flag: { portfolio_models: true } do projects_page.visit! - projects_page.create_new_workspace expect(page).to have_heading "New program" @@ -55,19 +63,23 @@ RSpec.describe "Programs", click_on "Continue" # Step 2: Fill in project details - # This should be an - # expect(page).to have_no_field "Subproject of" - # But this leads to a false negative. Even with the field being there, is the - # expectation passed. - expect(page).to have_no_content "Subproject of" - fill_in "Name", with: "Foo bar" + + expect(page).to have_combo_box "Subproject of" + parent_field.expect_no_option "Other portfolio" + parent_field.select_option "Root portfolio" + click_on "Complete" expect_and_dismiss_flash type: :success, message: "Successful creation." expect(page).to have_current_path /\/projects\/foo-bar\/?/ expect(page).to have_content "Foo bar" + + program = Project.last + expect(program.workspace_type).to eq "program" + expect(program.identifier).to eq "foo-bar" + expect(program.parent).to eq root_portfolio end context "without the necessary permissions to create programs", with_flag: { portfolio_models: true } do From 0c7e465b9e39664a0364c3e4fb94035a0ecddf27 Mon Sep 17 00:00:00 2001 From: Henriette Darge Date: Mon, 24 Nov 2025 14:29:41 +0100 Subject: [PATCH 16/33] Improve slot usage once more --- app/components/step_wizard/footer_component.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/components/step_wizard/footer_component.rb b/app/components/step_wizard/footer_component.rb index e13ecdbd555..529b062559a 100644 --- a/app/components/step_wizard/footer_component.rb +++ b/app/components/step_wizard/footer_component.rb @@ -35,7 +35,7 @@ module StepWizard renders_one :progress_bar, lambda { |**progress_bar_args| progress_bar_args[:size] ||= :small - render(Primer::Beta::ProgressBar.new(**progress_bar_args)) do |progress_bar| + Primer::Beta::ProgressBar.new(**progress_bar_args).tap do |progress_bar| progress_bar.with_item(percentage: progress_percentage) end } @@ -45,9 +45,8 @@ module StepWizard back_button_args[:color] ||= :muted back_button_args[:tag] ||= :a - render(Primer::Beta::Button.new(**back_button_args)) do |button| - button.with_leading_visual_icon(icon: :"arrow-left") - I18n.t("button_back") + Primer::Beta::Button.new(**back_button_args).with_content(I18n.t("button_back")).tap do |back_button| + back_button.with_leading_visual_icon(icon: :"arrow-left") end } From f6f84f5a3d6bdcdfdbda94401560957246e55afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20G=C3=BCnther?= Date: Thu, 20 Nov 2025 16:23:08 +0100 Subject: [PATCH 17/33] Project wizard name --- .../creation_wizard/page_header_component.html.erb | 2 +- .../projects/wizard/page_component.html.erb | 2 +- .../projects/settings/creation_wizard_controller.rb | 2 +- .../projects/settings/creation_wizard/name_form.rb | 12 +++--------- app/models/projects/creation_wizard.rb | 9 ++++++++- app/views/projects/creation_wizard/show.html.erb | 2 +- config/locales/en.yml | 1 - .../projects/settings/creation_wizard_name_spec.rb | 2 +- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/components/projects/settings/creation_wizard/page_header_component.html.erb b/app/components/projects/settings/creation_wizard/page_header_component.html.erb index 416353581f5..c7faa1ac40b 100644 --- a/app/components/projects/settings/creation_wizard/page_header_component.html.erb +++ b/app/components/projects/settings/creation_wizard/page_header_component.html.erb @@ -29,7 +29,7 @@ See COPYRIGHT and LICENSE files for more details. <%= render Primer::OpenProject::PageHeader.new do |header| - header.with_title { I18n.t("label_project_initiation_request") } + header.with_title { I18n.t("settings.project_initiation_request.name.options.project_initiation_request") } header.with_breadcrumbs( [{ href: project_overview_path(@project.id), text: @project.name }, { href: project_settings_general_path(@project.id), text: I18n.t("label_project_settings") }, diff --git a/app/components/projects/wizard/page_component.html.erb b/app/components/projects/wizard/page_component.html.erb index 371000d72fb..0e3abca1e35 100644 --- a/app/components/projects/wizard/page_component.html.erb +++ b/app/components/projects/wizard/page_component.html.erb @@ -9,7 +9,7 @@ <%= layout.with_page_header do render(Primer::OpenProject::PageHeader.new) do |header| - header.with_title { I18n.t("projects.wizard.title") } + header.with_title { @project.project_creation_wizard_name } header.with_breadcrumbs(nil) header.with_action_icon_button( diff --git a/app/controllers/projects/settings/creation_wizard_controller.rb b/app/controllers/projects/settings/creation_wizard_controller.rb index 3b6b05c7096..43e1da54422 100644 --- a/app/controllers/projects/settings/creation_wizard_controller.rb +++ b/app/controllers/projects/settings/creation_wizard_controller.rb @@ -132,7 +132,7 @@ class Projects::Settings::CreationWizardController < Projects::SettingsControlle def name_settings_params params.expect( - project: %i[name_artefact_name] + project: %i[project_creation_wizard_artifact_name] ) end diff --git a/app/forms/projects/settings/creation_wizard/name_form.rb b/app/forms/projects/settings/creation_wizard/name_form.rb index 3b573d1828c..418ac330c01 100644 --- a/app/forms/projects/settings/creation_wizard/name_form.rb +++ b/app/forms/projects/settings/creation_wizard/name_form.rb @@ -34,17 +34,17 @@ module Projects class NameForm < ApplicationForm form do |f| f.select_list( - name: :name_artefact_name, + name: :project_creation_wizard_artifact_name, label: I18n.t("settings.project_initiation_request.name.artefact_name"), caption: I18n.t("settings.project_initiation_request.name.artefact_name_caption"), required: true, input_width: :large ) do |list| - options.each do |id| + ::Projects::CreationWizard::ARTIFACT_NAME_OPTIONS.each do |id| list.option( value: id, label: I18n.t("settings.project_initiation_request.name.options.#{id}"), - selected: id == model.name_artefact_name + selected: id == model.project_creation_wizard_artifact_name ) end end @@ -55,12 +55,6 @@ module Projects scheme: :primary ) end - - private - - def options - %i[project_initiation_request project_creation_wizard project_mandate] - end end end end diff --git a/app/models/projects/creation_wizard.rb b/app/models/projects/creation_wizard.rb index 7c29ade5ae0..5a6c63cc428 100644 --- a/app/models/projects/creation_wizard.rb +++ b/app/models/projects/creation_wizard.rb @@ -29,11 +29,13 @@ #++ module Projects::CreationWizard + ARTIFACT_NAME_OPTIONS = %w[project_creation_wizard project_initiation_request project_mandate].freeze + extend ActiveSupport::Concern included do store_attribute :settings, :project_creation_wizard_enabled, :boolean - store_attribute :settings, :name_artefact_name, :string + store_attribute :settings, :project_creation_wizard_artifact_name, :string store_attribute :settings, :project_creation_wizard_work_package_type_id, :integer store_attribute :settings, :project_creation_wizard_status_when_submitted_id, :integer store_attribute :settings, :project_creation_wizard_send_confirmation_email, :boolean @@ -43,4 +45,9 @@ module Projects::CreationWizard store_attribute :settings, :project_creation_wizard_artifact_export_type, :string, default: "attachment" store_attribute :settings, :project_creation_wizard_artifact_export_storage, :string end + + def project_creation_wizard_name + name = project_creation_wizard_artifact_name || "project_creation_wizard" + I18n.t("settings.project_initiation_request.name.options.#{name}") + end end diff --git a/app/views/projects/creation_wizard/show.html.erb b/app/views/projects/creation_wizard/show.html.erb index b6f3b1cde0e..ad72216419e 100644 --- a/app/views/projects/creation_wizard/show.html.erb +++ b/app/views/projects/creation_wizard/show.html.erb @@ -27,7 +27,7 @@ See COPYRIGHT and LICENSE files for more details. ++#%> -<% html_title I18n.t("projects.wizard.title") %> +<% html_title @project.project_creation_wizard_name %> <%= render( Projects::Wizard::PageComponent.new( diff --git a/config/locales/en.yml b/config/locales/en.yml index a2c82fb9281..8020d1908e4 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -630,7 +630,6 @@ en: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" diff --git a/spec/features/projects/settings/creation_wizard_name_spec.rb b/spec/features/projects/settings/creation_wizard_name_spec.rb index a61cf9a7bf9..c3bf3f901cf 100644 --- a/spec/features/projects/settings/creation_wizard_name_spec.rb +++ b/spec/features/projects/settings/creation_wizard_name_spec.rb @@ -52,7 +52,7 @@ RSpec.describe "Project creation wizard name settings", :js, expect_and_dismiss_flash(message: "Successful update.") project.reload - expect(project.name_artefact_name).to eq("project_initiation_request") + expect(project.project_creation_wizard_artifact_name).to eq("project_initiation_request") end end end From 3ab0dabfee65123a2ab2e48019c018b000914f91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20G=C3=BCnther?= Date: Fri, 21 Nov 2025 11:57:34 +0100 Subject: [PATCH 18/33] Consistently use "artifact" --- app/forms/projects/settings/creation_wizard/name_form.rb | 4 ++-- config/locales/en.yml | 6 +++--- .../projects/settings/creation_wizard_name_spec.rb | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/forms/projects/settings/creation_wizard/name_form.rb b/app/forms/projects/settings/creation_wizard/name_form.rb index 418ac330c01..9aee01372ab 100644 --- a/app/forms/projects/settings/creation_wizard/name_form.rb +++ b/app/forms/projects/settings/creation_wizard/name_form.rb @@ -35,8 +35,8 @@ module Projects form do |f| f.select_list( name: :project_creation_wizard_artifact_name, - label: I18n.t("settings.project_initiation_request.name.artefact_name"), - caption: I18n.t("settings.project_initiation_request.name.artefact_name_caption"), + label: I18n.t("settings.project_initiation_request.name.artifact_name"), + caption: I18n.t("settings.project_initiation_request.name.artifact_name_caption"), required: true, input_width: :large ) do |list| diff --git a/config/locales/en.yml b/config/locales/en.yml index 8020d1908e4..d574a8e6022 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -4687,15 +4687,15 @@ en: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" diff --git a/spec/features/projects/settings/creation_wizard_name_spec.rb b/spec/features/projects/settings/creation_wizard_name_spec.rb index c3bf3f901cf..78200ef44f9 100644 --- a/spec/features/projects/settings/creation_wizard_name_spec.rb +++ b/spec/features/projects/settings/creation_wizard_name_spec.rb @@ -40,13 +40,13 @@ RSpec.describe "Project creation wizard name settings", :js, current_user { admin } describe "configuring name settings" do - it "allows admin to configure artefact name" do + it "allows admin to configure artifact name" do name_page.visit! - expect(page).to have_select("Artefact name") - expect(page).to have_text("Choose the name for this artefact that your project management framework recommends.") + expect(page).to have_select("Artifact name") + expect(page).to have_text("Choose the name for this artifact that your project management framework recommends.") - select "Project initiation request", from: "Artefact name" + select "Project initiation request", from: "Artifact name" click_button "Save" expect_and_dismiss_flash(message: "Successful update.") From 60e382145ffe523884f1aa41d685c0fdccd0ebbc Mon Sep 17 00:00:00 2001 From: Behrokh Satarnejad <62008897+bsatarnejad@users.noreply.github.com> Date: Mon, 24 Nov 2025 14:38:17 +0100 Subject: [PATCH 19/33] [67175] Insufficient contrast in color mode light high contrast (#21124) change bg color for removed and added text in diff --- frontend/src/global_styles/content/_diff.sass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/global_styles/content/_diff.sass b/frontend/src/global_styles/content/_diff.sass index 465ab6a6af3..91351c9255f 100644 --- a/frontend/src/global_styles/content/_diff.sass +++ b/frontend/src/global_styles/content/_diff.sass @@ -34,12 +34,12 @@ img.diff, div.diff, table.diff, blockquote.diff, address.diff, h1.diff, h2.diff, del &.diffmod, &.diffdel - background: var(--diffBlob-deletionWord-bgColor) + background: var(--label-red-bgColor-active) color: var(--diffBlob-deletionLine-fgColor) ins &.diffmod, &.diffins - background: var(--diffBlob-additionWord-bgColor) + background: var(--label-green-bgColor-active) color: var(--diffBlob-additionLine-fgColor) .text-diff From 6e2835549a8951e43dacc9f4424941f33522e25b Mon Sep 17 00:00:00 2001 From: Dombi Attila <83396+dombesz@users.noreply.github.com> Date: Mon, 24 Nov 2025 13:57:01 +0200 Subject: [PATCH 20/33] [#69350] Change title to "New project initiation request" when creating from a template https://community.openproject.org/work_packages/69350 --- app/helpers/workspace_helper.rb | 8 ++++++-- app/models/projects/creation_wizard.rb | 9 +++++++-- app/views/projects/new.html.erb | 4 ++-- config/locales/en.yml | 3 +++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app/helpers/workspace_helper.rb b/app/helpers/workspace_helper.rb index 4ca918f11a2..a090c8e31cd 100644 --- a/app/helpers/workspace_helper.rb +++ b/app/helpers/workspace_helper.rb @@ -35,10 +35,14 @@ module WorkspaceHelper program: :"project-roadmap" }.with_indifferent_access.freeze - def new_workspace_title(workspace) + def new_workspace_title(workspace, template = nil) return unless Project.workspace_types.key?(workspace.workspace_type) - I18n.t(:"label_#{workspace.workspace_type}_new") + if template && OpenProject::FeatureDecisions.project_initiation_active? + I18n.t(:"label_#{workspace.project_creation_wizard_artifact_name}") + else + I18n.t(:"label_#{workspace.workspace_type}_new") + end end def workspace_icon(type) = WORKSPACE_ICON_MAPPING[type] diff --git a/app/models/projects/creation_wizard.rb b/app/models/projects/creation_wizard.rb index 5a6c63cc428..75904cda4a9 100644 --- a/app/models/projects/creation_wizard.rb +++ b/app/models/projects/creation_wizard.rb @@ -44,10 +44,15 @@ module Projects::CreationWizard store_attribute :settings, :project_creation_wizard_work_package_comment, :string store_attribute :settings, :project_creation_wizard_artifact_export_type, :string, default: "attachment" store_attribute :settings, :project_creation_wizard_artifact_export_storage, :string + + # The store_attribute default cannot be used here, because the default is not returned + # when the JSON defintion is present but it's nil. + def project_creation_wizard_artifact_name + super.presence || "project_creation_wizard" + end end def project_creation_wizard_name - name = project_creation_wizard_artifact_name || "project_creation_wizard" - I18n.t("settings.project_initiation_request.name.options.#{name}") + I18n.t("settings.project_initiation_request.name.options.#{project_creation_wizard_artifact_name}") end end diff --git a/app/views/projects/new.html.erb b/app/views/projects/new.html.erb index d4d263ddfcf..c257f95de73 100644 --- a/app/views/projects/new.html.erb +++ b/app/views/projects/new.html.erb @@ -26,13 +26,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. See COPYRIGHT and LICENSE files for more details. ++#%> -<% html_title new_workspace_title(@new_project) %> +<% html_title new_workspace_title(@new_project, @template) %> <%= render(StepWizard::PageLayoutComponent.new) do |layout| %> <%= layout.with_page_header do render(Primer::OpenProject::PageHeader.new) do |header| - header.with_title { new_workspace_title(@new_project) } + header.with_title { new_workspace_title(@new_project, @template) } header.with_breadcrumbs(nil) end end diff --git a/config/locales/en.yml b/config/locales/en.yml index d574a8e6022..34ae4b80034 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -3506,6 +3506,9 @@ en: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projects" label_project_new: "New project" + label_project_initiation_request: "New project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projects" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" From 7fcaa381475178d8f39522526aaecc9af2816ce1 Mon Sep 17 00:00:00 2001 From: Dombi Attila <83396+dombesz@users.noreply.github.com> Date: Mon, 24 Nov 2025 16:26:34 +0200 Subject: [PATCH 21/33] Move translation key out of the model. --- app/components/projects/wizard/page_component.html.erb | 4 +++- app/models/projects/creation_wizard.rb | 4 ---- app/views/projects/creation_wizard/show.html.erb | 2 +- spec/features/projects/template_spec.rb | 9 +++++++++ 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/components/projects/wizard/page_component.html.erb b/app/components/projects/wizard/page_component.html.erb index 0e3abca1e35..15a3289d111 100644 --- a/app/components/projects/wizard/page_component.html.erb +++ b/app/components/projects/wizard/page_component.html.erb @@ -9,7 +9,9 @@ <%= layout.with_page_header do render(Primer::OpenProject::PageHeader.new) do |header| - header.with_title { @project.project_creation_wizard_name } + header.with_title do + I18n.t("settings.project_initiation_request.name.options.#{@project.project_creation_wizard_artifact_name}") + end header.with_breadcrumbs(nil) header.with_action_icon_button( diff --git a/app/models/projects/creation_wizard.rb b/app/models/projects/creation_wizard.rb index 75904cda4a9..2251f953511 100644 --- a/app/models/projects/creation_wizard.rb +++ b/app/models/projects/creation_wizard.rb @@ -51,8 +51,4 @@ module Projects::CreationWizard super.presence || "project_creation_wizard" end end - - def project_creation_wizard_name - I18n.t("settings.project_initiation_request.name.options.#{project_creation_wizard_artifact_name}") - end end diff --git a/app/views/projects/creation_wizard/show.html.erb b/app/views/projects/creation_wizard/show.html.erb index ad72216419e..fc52773cfd3 100644 --- a/app/views/projects/creation_wizard/show.html.erb +++ b/app/views/projects/creation_wizard/show.html.erb @@ -27,7 +27,7 @@ See COPYRIGHT and LICENSE files for more details. ++#%> -<% html_title @project.project_creation_wizard_name %> +<% html_title I18n.t("settings.project_initiation_request.name.options.#{@project.project_creation_wizard_artifact_name}") %> <%= render( Projects::Wizard::PageComponent.new( diff --git a/spec/features/projects/template_spec.rb b/spec/features/projects/template_spec.rb index 025fd75e15c..5691af6923f 100644 --- a/spec/features/projects/template_spec.rb +++ b/spec/features/projects/template_spec.rb @@ -91,6 +91,14 @@ RSpec.describe "Project templates", :js, with_good_job_batches: [CopyProjectJob, global_permissions:) end + it "shows the new project initiation request heading when the feature is enabled", + with_flag: { project_initiation_active: true } do + visit new_project_path(template_id: template.id) + click_on "Continue" + + expect(page).to have_heading "New project creation wizard" + end + it "can instantiate the project with the copy permission" do visit new_project_path(template_id: template.id) @@ -100,6 +108,7 @@ RSpec.describe "Project templates", :js, with_good_job_batches: [CopyProjectJob, click_on "Continue" # Step 2: Project details + expect(page).to have_heading "New project" expect(page).to have_text("2 of 2") fill_in "Name", with: "Foo bar" From b0d8fc7ad697cc6c110517d02b47c048ff53899b Mon Sep 17 00:00:00 2001 From: as-op Date: Mon, 24 Nov 2025 09:17:27 +0100 Subject: [PATCH 22/33] use project.project_creation_wizard_name --- app/models/project/pdf_export/project_initiation.rb | 6 +----- config/locales/en.yml | 2 +- .../app/components/overviews/page_header_component.html.erb | 2 +- spec/models/project/pdf_export/project_initiation_spec.rb | 6 +++--- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/app/models/project/pdf_export/project_initiation.rb b/app/models/project/pdf_export/project_initiation.rb index e5d5c2b331b..5cccaa14b9c 100644 --- a/app/models/project/pdf_export/project_initiation.rb +++ b/app/models/project/pdf_export/project_initiation.rb @@ -121,11 +121,7 @@ class Project::PDFExport::ProjectInitiation < Exports::Exporter end def heading - @heading ||= if project.name_artefact_name.blank? - I18n.t(:label_project_initiation_request) - else - I18n.t("settings.project_initiation_request.name.options.#{project.name_artefact_name}") - end + project.project_creation_wizard_name end def footer_title diff --git a/config/locales/en.yml b/config/locales/en.yml index b294037991a..8668abf42a4 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -3498,7 +3498,7 @@ en: label_project_attribute_manage_link: "Manage project attributes" label_project_count: "Total number of projects" label_project_copy_notifications: "Send email notifications during the project copy" - label_project_initiation_pdf: "Export PDF for project initiation request" + label_project_initiation_pdf: "Export PDF for %{project_creation_name}" label_project_latest: "Latest projects" label_project_default_type: "Allow empty type" label_project_hierarchy: "Project hierarchy" diff --git a/modules/overviews/app/components/overviews/page_header_component.html.erb b/modules/overviews/app/components/overviews/page_header_component.html.erb index f4fff4f0514..042ba875640 100644 --- a/modules/overviews/app/components/overviews/page_header_component.html.erb +++ b/modules/overviews/app/components/overviews/page_header_component.html.erb @@ -32,7 +32,7 @@ if OpenProject::FeatureDecisions.project_initiation_active? && project.project_creation_wizard_enabled menu.with_item( - label: t(:label_project_initiation_pdf), + label: t(:label_project_initiation_pdf, project_creation_name: project.project_creation_wizard_name), href: helpers.export_project_initiation_project_path(project, format: :pdf), data: { turbo: false } ) do |item| diff --git a/spec/models/project/pdf_export/project_initiation_spec.rb b/spec/models/project/pdf_export/project_initiation_spec.rb index 24c0eabd78e..54596999192 100644 --- a/spec/models/project/pdf_export/project_initiation_spec.rb +++ b/spec/models/project/pdf_export/project_initiation_spec.rb @@ -69,11 +69,11 @@ RSpec.describe Project::PDFExport::ProjectInitiation, with_flag: { project_initi end context "with a custom defined name" do - let(:project) { create(:project, name_artefact_name: custom_artefact_name_key) } + let(:project) { create(:project, project_creation_wizard_artifact_name: custom_artefact_name_key) } let(:current_user) { create(:admin) } it "exports a PDF containing project initiation using the custom defined name" do - custom_artefact_name = I18n.t("settings.project_initiation_request.name.options.#{custom_artefact_name_key}") + custom_artefact_name = project.project_creation_wizard_name expected_document = [ project.name, custom_artefact_name, export_time_formatted, # cover page custom_artefact_name, @@ -105,7 +105,7 @@ RSpec.describe Project::PDFExport::ProjectInitiation, with_flag: { project_initi end it "exports a PDF containing project initiation with custom attributes grouped by sections" do - heading = I18n.t(:label_project_initiation_request) + heading = project.project_creation_wizard_name expected_document = [ project.name, heading, export_time_formatted, # cover page From 833eb71a78b44676662346dbad62e3d1deb2390a Mon Sep 17 00:00:00 2001 From: as-op Date: Mon, 24 Nov 2025 15:58:40 +0100 Subject: [PATCH 23/33] use new key in I18n --- config/locales/en.yml | 2 +- .../app/components/overviews/page_header_component.html.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 8668abf42a4..ee174d52fec 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -3498,7 +3498,7 @@ en: label_project_attribute_manage_link: "Manage project attributes" label_project_count: "Total number of projects" label_project_copy_notifications: "Send email notifications during the project copy" - label_project_initiation_pdf: "Export PDF for %{project_creation_name}" + label_project_initiation_export_pdf: "Export PDF for %{project_creation_name}" label_project_latest: "Latest projects" label_project_default_type: "Allow empty type" label_project_hierarchy: "Project hierarchy" diff --git a/modules/overviews/app/components/overviews/page_header_component.html.erb b/modules/overviews/app/components/overviews/page_header_component.html.erb index 042ba875640..d6db8d66938 100644 --- a/modules/overviews/app/components/overviews/page_header_component.html.erb +++ b/modules/overviews/app/components/overviews/page_header_component.html.erb @@ -32,7 +32,7 @@ if OpenProject::FeatureDecisions.project_initiation_active? && project.project_creation_wizard_enabled menu.with_item( - label: t(:label_project_initiation_pdf, project_creation_name: project.project_creation_wizard_name), + label: t(:label_project_initiation_export_pdf, project_creation_name: project.project_creation_wizard_name), href: helpers.export_project_initiation_project_path(project, format: :pdf), data: { turbo: false } ) do |item| From 569abb88ba2d047883e37638125bbd6963002c2a Mon Sep 17 00:00:00 2001 From: Eric Schubert Date: Mon, 24 Nov 2025 16:33:46 +0100 Subject: [PATCH 24/33] [#69358] improve insert item interface - https://community.openproject.org/work_packages/69358 - use before instead of sort_order to emphasize behaviour of the method - use closure tree methods - prepend_sibling - to ensure consistency in the tree --- .../hierarchy/items_base_controller.rb | 40 +++++++++++-------- .../hierarchy/hierarchical_item_service.rb | 33 +++++++++------ 2 files changed, 44 insertions(+), 29 deletions(-) diff --git a/app/controllers/admin/custom_fields/hierarchy/items_base_controller.rb b/app/controllers/admin/custom_fields/hierarchy/items_base_controller.rb index 7cb02142b35..af4b3e5cbe2 100644 --- a/app/controllers/admin/custom_fields/hierarchy/items_base_controller.rb +++ b/app/controllers/admin/custom_fields/hierarchy/items_base_controller.rb @@ -61,24 +61,19 @@ module Admin def create item_service - .insert_item(contract_class: create_contract, **item_input) + .insert_item(contract_class: create_contract, **insert_item_input) .either( lambda { |item| redirect_to action: :new, position: item.sort_order + 1 }, lambda do |validation_result| - add_errors_to_form(validation_result) + add_errors_to_new_form(validation_result) render :new end ) end def update - input = item_input item_service - .update_item(contract_class: update_contract, - item: @active_item, - label: input[:label], - short: input[:short], - weight: input[:weight]) + .update_item(contract_class: update_contract, **update_item_input) .either( ->(*) { redirect_to action: :show, id: @active_item.parent, status: :see_other }, lambda do |validation_result| @@ -141,13 +136,23 @@ module Admin ::CustomFields::Hierarchy::HierarchicalItemService.new end - def item_input # rubocop:disable Metrics/AbcSize - input = { parent: @active_item, label: params[:label] } - input[:short] = params[:short] if params[:short].present? - input[:weight] = params[:weight] if params[:weight].present? - input[:sort_order] = params[:sort_order].to_i if params[:sort_order].present? + def insert_item_input + { + parent: @active_item, + label: params[:label], + short: params[:short], + weight: params[:weight], + before: params[:sort_order] + } + end - input + def update_item_input + { + item: @active_item, + label: params[:label], + short: params[:short], + weight: params[:weight] + } end def new_parent_params @@ -176,8 +181,11 @@ module Admin end end - def add_errors_to_form(validation_result) - @new_item = ::CustomField::Hierarchy::Item.new(**item_input) + def add_errors_to_new_form(validation_result) + attributes = insert_item_input + attributes[:sort_order] = attributes.delete(:before) + + @new_item = ::CustomField::Hierarchy::Item.new(**attributes) validation_result.errors(full: true).to_h.each do |attribute, errors| @new_item.errors.add(attribute, errors.join(", ")) end diff --git a/app/services/custom_fields/hierarchy/hierarchical_item_service.rb b/app/services/custom_fields/hierarchy/hierarchical_item_service.rb index b927efe55d2..c4ac1a202bf 100644 --- a/app/services/custom_fields/hierarchy/hierarchical_item_service.rb +++ b/app/services/custom_fields/hierarchy/hierarchical_item_service.rb @@ -51,14 +51,15 @@ module CustomFields # @param label [String] the node label/name that must be unique at the same tree level # @param short [String] an alias for the node # @param weight [Decimal] a numeric value for the node - # @param sort_order [Integer] the position into which insert the item. + # @param before [Integer] the position where to prepend the item. If not set or the position does not exist, + # the item is inserted at the end. # @return [Success(CustomField::Hierarchy::Item), Failure(Dry::Validation::Result), Failure(ActiveModel::Errors)] - def insert_item(contract_class:, parent:, label:, short: nil, weight: nil, sort_order: nil) + def insert_item(contract_class:, parent:, label:, short: nil, weight: nil, before: nil) contract_class .new .call({ parent:, label:, short:, weight: }) .to_monad - .bind { |validation| create_child_item(validation:, sort_order:) } + .bind { |validation| create_child_item(validation:, before:) } end # Updates an item/node @@ -176,11 +177,17 @@ module CustomFields Success(item) end - def create_child_item(validation:, sort_order: nil) - attributes = validation.to_h - attributes[:sort_order] = sort_order - 1 if sort_order + def create_child_item(validation:, before:) + item = CustomField::Hierarchy::Item.new(**validation.to_h.except(:parent)) + parent = validation[:parent] + relative_sibling = parent.children.find_by(sort_order: before) + + if relative_sibling.present? + relative_sibling.prepend_sibling(item) + else + parent.add_child(item) + end - item = validation[:parent].children.create(**attributes) return Failure(item.errors) if item.new_record? update_position_cache(item.root) @@ -204,13 +211,13 @@ module CustomFields return unless custom_field&.field_format_weighted_item_list? custom_field.class.customized_class - .where(custom_values: custom_field.custom_values.where(value: item_ids)) - .find_each do |customized| - affected_cfs = customized.available_custom_fields.affected_calculated_fields([custom_field.id]) + .where(custom_values: custom_field.custom_values.where(value: item_ids)) + .find_each do |customized| + affected_cfs = customized.available_custom_fields.affected_calculated_fields([custom_field.id]) - customized.calculate_custom_fields(affected_cfs) - customized.save if customized.changed_for_autosave? - end + customized.calculate_custom_fields(affected_cfs) + customized.save if customized.changed_for_autosave? + end end def update_item_order(item:, new_sort_order:) From a584aa1f2cdd15c52f0933c3317f1cfa85283d64 Mon Sep 17 00:00:00 2001 From: Eric Schubert Date: Mon, 24 Nov 2025 16:56:41 +0100 Subject: [PATCH 25/33] [#69358] fix unit test expectations --- .../hierarchy/hierarchical_item_service_spec.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spec/services/custom_fields/hierarchy/hierarchical_item_service_spec.rb b/spec/services/custom_fields/hierarchy/hierarchical_item_service_spec.rb index 36ea37c810a..e7ccd5541c0 100644 --- a/spec/services/custom_fields/hierarchy/hierarchical_item_service_spec.rb +++ b/spec/services/custom_fields/hierarchy/hierarchical_item_service_spec.rb @@ -84,11 +84,11 @@ RSpec.describe CustomFields::Hierarchy::HierarchicalItemService, with_ee: [:cust expect(result).to be_success end - it "insert an item into a specific sort_order" do + it "insert an item at a specific position" do leia = service.insert_item(contract_class:, parent: root, label: "leia").value! expect(root.reload.children).to contain_exactly(luke, leia) - bob = service.insert_item(contract_class:, parent: root, label: "Bob", sort_order: 1).value! + bob = service.insert_item(contract_class:, parent: root, label: "Bob", before: 1).value! expect(root.reload.children).to contain_exactly(luke, bob, leia) end @@ -96,15 +96,15 @@ RSpec.describe CustomFields::Hierarchy::HierarchicalItemService, with_ee: [:cust leia = service.insert_item(contract_class:, parent: root, label: "leia").value! expect(root.reload.position_cache).to eq(64) - service.insert_item(contract_class:, parent: root, label: "Bob", sort_order: 1).value! + service.insert_item(contract_class:, parent: root, label: "Bob", before: 1).value! expect(leia.reload.position_cache).to eq(200) end end context "with invalid item" do it "fails to insert an item" do - child = instance_double(CustomField::Hierarchy::Item, new_record?: true, errors: "some errors") - allow(root.children).to receive(:create).and_return(child) + # child item won't be persisted if `add_child` is mocked + allow(root).to receive(:add_child) result = service.insert_item(contract_class:, parent: root, label:, short:) expect(result).to be_failure From 521a0335c3a1d2d11688145217a1759f085bc151 Mon Sep 17 00:00:00 2001 From: Judith Roth Date: Mon, 24 Nov 2025 14:01:47 +0100 Subject: [PATCH 26/33] [#68978] Style the rich-link workpackage macro (dark theme) https://community.openproject.org/work_packages/68978 This updates the op-blocknote-extensions package to the version which implemented the dark theme. --- frontend/package-lock.json | 12 ++++++------ frontend/package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 3e7c6cbafe8..ed0b4a8a5c0 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -108,7 +108,7 @@ "ng2-dragula": "^6.0.0", "ngx-cookie-service": "^20.1.1", "observable-array": "0.0.4", - "op-blocknote-extensions": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.10/op-blocknote-extensions-0.0.10.tgz", + "op-blocknote-extensions": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.11/op-blocknote-extensions-0.0.11.tgz", "pako": "^2.0.3", "qr-creator": "^1.0.0", "react": "^19.2.0", @@ -18207,9 +18207,9 @@ } }, "node_modules/op-blocknote-extensions": { - "version": "0.0.10", - "resolved": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.10/op-blocknote-extensions-0.0.10.tgz", - "integrity": "sha512-c0DINNJ7mEj5cS9dgQzmLssiZMrFvXRY4Hd3qBc/Uapne3+2LcWBqZJ41xz33MxGL+iWSrMQl/E60Huba2UGQg==", + "version": "0.0.11", + "resolved": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.11/op-blocknote-extensions-0.0.11.tgz", + "integrity": "sha512-sTj9yjbIdw5kzzdUI6Dm/8RfcS6+6yme1GVj+Sy8yXiAwa4ZKrcOfJf+nnr+HBHEeDpv8JOf/ACHKqWoMihakg==", "dependencies": { "@blocknote/core": "^0.41.1", "@blocknote/mantine": "^0.41.1", @@ -35868,8 +35868,8 @@ } }, "op-blocknote-extensions": { - "version": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.10/op-blocknote-extensions-0.0.10.tgz", - "integrity": "sha512-c0DINNJ7mEj5cS9dgQzmLssiZMrFvXRY4Hd3qBc/Uapne3+2LcWBqZJ41xz33MxGL+iWSrMQl/E60Huba2UGQg==", + "version": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.11/op-blocknote-extensions-0.0.11.tgz", + "integrity": "sha512-sTj9yjbIdw5kzzdUI6Dm/8RfcS6+6yme1GVj+Sy8yXiAwa4ZKrcOfJf+nnr+HBHEeDpv8JOf/ACHKqWoMihakg==", "requires": { "@blocknote/core": "^0.41.1", "@blocknote/mantine": "^0.41.1", diff --git a/frontend/package.json b/frontend/package.json index 74e40e301c0..5e7488b4010 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -163,7 +163,7 @@ "ng2-dragula": "^6.0.0", "ngx-cookie-service": "^20.1.1", "observable-array": "0.0.4", - "op-blocknote-extensions": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.10/op-blocknote-extensions-0.0.10.tgz", + "op-blocknote-extensions": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.11/op-blocknote-extensions-0.0.11.tgz", "pako": "^2.0.3", "qr-creator": "^1.0.0", "react": "^19.2.0", From cb873f4460afd5ad48dee8735469dee8d55106b4 Mon Sep 17 00:00:00 2001 From: Dombi Attila <83396+dombesz@users.noreply.github.com> Date: Mon, 24 Nov 2025 19:26:39 +0200 Subject: [PATCH 27/33] Render the correct second step when the parent is invalid, display the inline error message on the parent autocompleter. --- app/controllers/projects_controller.rb | 2 +- app/forms/projects/settings/relations_form.rb | 6 +++++ spec/controllers/projects_controller_spec.rb | 23 +++++++++++++++++++ .../projects/settings/relations_form_spec.rb | 11 +++++++++ 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 6fccd1c3a67..332210701c1 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -254,7 +254,7 @@ class ProjectsController < ApplicationController def set_wizard_step!(project) attributes_with_error = project.errors.attribute_names - second_step_attributes = %i[name description identifier] + second_step_attributes = %i[name description identifier parent] step_2_is_valid = !attributes_with_error.intersect?(second_step_attributes) params[:step] = step_2_is_valid ? 3 : 2 diff --git a/app/forms/projects/settings/relations_form.rb b/app/forms/projects/settings/relations_form.rb index 287cd8dd793..921c33663eb 100644 --- a/app/forms/projects/settings/relations_form.rb +++ b/app/forms/projects/settings/relations_form.rb @@ -36,6 +36,8 @@ module Projects f.project_autocompleter( name: :parent_id, label: attribute_name(:parent_id), + invalid: model.errors.include?(:parent_id), + validation_message: validation_message(:parent), autocomplete_options: { model: project_autocompleter_model, focusDirectly: false, @@ -49,6 +51,10 @@ module Projects private + def validation_message(attribute) + model.errors.full_messages_for(attribute).to_sentence.presence + end + def project_autocompleter_model return nil unless parent return { id: parent.id, name: I18n.t(:"api_v3.undisclosed.parent") } unless parent.visible? || User.current.admin? diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb index 4c9aa8ec052..624ae2a28c4 100644 --- a/spec/controllers/projects_controller_spec.rb +++ b/spec/controllers/projects_controller_spec.rb @@ -361,6 +361,29 @@ RSpec.describe ProjectsController do end end + context "when the parent is invalid", with_flag: { portfolio_models: true } do + shared_let(:invalid_parent) { create(:project, workspace_type: :program) } + let(:project_params) { { name: "Valid Project", parent_id: invalid_parent.id, workspace_type: :portfolio } } + + it "renders step 2 with errors", :aggregate_failures do + expect(controller.params[:step].to_i).to eq 2 + expect(response).to render_template "new" + expect(response).to have_http_status :unprocessable_entity + end + + it "shows an error on the parent", :aggregate_failures do + expect(assigns(:new_project).errors[:parent]).to be_present + expect(flash[:error]).to be_present + end + + it "does not show custom field errors", :aggregate_failures do + expect(assigns(:new_project).errors[:"custom_field_#{custom_field.id}"]).to be_empty + assigns(:new_project).custom_values.each do |cv| + expect(cv.errors).to be_empty + end + end + end + context "when it has no validation error on name" do let(:project_params) { { name: "Valid Project" } } diff --git a/spec/forms/projects/settings/relations_form_spec.rb b/spec/forms/projects/settings/relations_form_spec.rb index 3c6b66fee15..59291e60d99 100644 --- a/spec/forms/projects/settings/relations_form_spec.rb +++ b/spec/forms/projects/settings/relations_form_spec.rb @@ -92,4 +92,15 @@ RSpec.describe Projects::Settings::RelationsForm, type: :forms do end end end + + context "with validation errors" do + before do + model.errors.add(:parent, :invalid) + render_form + end + + it "renders error message" do + expect(page).to have_css ".FormControl-inlineValidation", text: "Subproject of is invalid" + end + end end From 89a99e239025014ee9edebdc49567ac96f76f141 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Nov 2025 15:17:05 -0300 Subject: [PATCH 28/33] Merge pull request #21116 from opf/dependabot/npm_and_yarn/frontend/dev/html-eslint-89de9b0d85 Bump the html-eslint group in /frontend with 2 updates --- frontend/package-lock.json | 197 ++++++++++++------------------------- frontend/package.json | 4 +- 2 files changed, 66 insertions(+), 135 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index ed0b4a8a5c0..034abfb5885 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -137,8 +137,8 @@ "@angular-eslint/template-parser": "20.7.0", "@angular/language-service": "20.3.13", "@eslint/js": "^9.39.1", - "@html-eslint/eslint-plugin": "^0.48.0", - "@html-eslint/parser": "^0.48.0", + "@html-eslint/eslint-plugin": "^0.49.0", + "@html-eslint/parser": "^0.49.0", "@jsdevtools/coverage-istanbul-loader": "3.0.5", "@stylistic/eslint-plugin": "^5.5.0", "@types/codemirror": "5.60.5", @@ -3809,7 +3809,7 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/config-helpers/node_modules/@eslint/core": { + "node_modules/@eslint/core": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", @@ -3821,19 +3821,6 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/core": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", - "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/@eslint/eslintrc": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", @@ -3917,13 +3904,12 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", - "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.2", + "@eslint/core": "^0.17.0", "levn": "^0.4.1" }, "engines": { @@ -4265,16 +4251,16 @@ } }, "node_modules/@html-eslint/eslint-plugin": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.48.0.tgz", - "integrity": "sha512-gZvPZu8RwHGCkLD3FItf3vpZsvcCZSxTNwshsWvraixSqOir/y2319v18tNOfRsCs3JCExhLXziUhkvoF0llhA==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.49.0.tgz", + "integrity": "sha512-+a1XZnp/gWer4CLd6hgR/dC9R3ew4ozSag4J4KSlHB4haYiCtOcT1vnIFDnqs9bWsJhROtjFHkGwRYsyPH76XA==", "dev": true, "dependencies": { - "@eslint/plugin-kit": "^0.3.1", - "@html-eslint/parser": "^0.48.0", - "@html-eslint/template-parser": "^0.48.0", - "@html-eslint/template-syntax-parser": "^0.48.0", - "@html-eslint/types": "^0.48.0" + "@eslint/plugin-kit": "^0.4.1", + "@html-eslint/parser": "^0.49.0", + "@html-eslint/template-parser": "^0.49.0", + "@html-eslint/template-syntax-parser": "^0.49.0", + "@html-eslint/types": "^0.49.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4284,44 +4270,44 @@ } }, "node_modules/@html-eslint/parser": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.48.0.tgz", - "integrity": "sha512-IO8J3R1+0+QuYUNh0IT1C4KZIA0W8IbXS5/tvs0e+GvYjnTRJ0eNNJN5CwqRlLYLmsF0rDtrxBteBZXULfk7Zg==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.49.0.tgz", + "integrity": "sha512-moB2CWd8kSiOqp+ibT4awHx7pw1irkON5GwiXP0JlHRHAGIll18lBuHKtY9K/vkok97Pq1zjoyl5T7Z+fFtufQ==", "dev": true, "dependencies": { - "@html-eslint/template-syntax-parser": "^0.48.0", - "@html-eslint/types": "^0.48.0", + "@html-eslint/template-syntax-parser": "^0.49.0", + "@html-eslint/types": "^0.49.0", "es-html-parser": "0.3.1" } }, "node_modules/@html-eslint/template-parser": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@html-eslint/template-parser/-/template-parser-0.48.0.tgz", - "integrity": "sha512-E5L8K7nVwYtNTZtuSF0uVEstYWzd056PsUQQgDPa00VhGVPkd4gOYQbRboTfeO/bSphvgf7FcTLl97wHlLZARQ==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@html-eslint/template-parser/-/template-parser-0.49.0.tgz", + "integrity": "sha512-ciW0BFcW1iTqpT+aQOfjCelwcjLpqQMx/iLGevDQv8QHBdT43J89aAGPbv140KnYgUhQPnu9hFUV3goXWSu+gA==", "dev": true, "dependencies": { - "@html-eslint/types": "^0.48.0", + "@html-eslint/types": "^0.49.0", "es-html-parser": "0.3.1" } }, "node_modules/@html-eslint/template-syntax-parser": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@html-eslint/template-syntax-parser/-/template-syntax-parser-0.48.0.tgz", - "integrity": "sha512-hkyw2pguiXVvg4MuuRnwqFtgmwWUuOwkgnWaSMP37OJLzjsH5Qhhv3fBD1hc1sYgIuF8j+S8vDMV6FFX7WDVGg==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@html-eslint/template-syntax-parser/-/template-syntax-parser-0.49.0.tgz", + "integrity": "sha512-TSW1gWU+cfYX47OVXtNoY+r7ALoY+87q3jkPrfGuccy5ODNfUR62jaH2lCfdMwGW+C6jhEzc83Uiije89UI72Q==", "dev": true, "dependencies": { - "@html-eslint/types": "^0.48.0" + "@html-eslint/types": "^0.49.0" } }, "node_modules/@html-eslint/types": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@html-eslint/types/-/types-0.48.0.tgz", - "integrity": "sha512-jfUt1qGwGEsWuwYlg3TG0ZE6vm9rxRUuA+ke0p5lVaEEAe4UO57g9/lpo0+GB/57Qiai4Se3qZ02Pa/P4JrWuA==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@html-eslint/types/-/types-0.49.0.tgz", + "integrity": "sha512-7d+jT37S47xZYXm7P6c5gTxGoYP8KqavpT1dh3VUWmoQBAButHrO4o56TZWZHJUP3GBkafOt7dE0wTQFflukiw==", "dev": true, "dependencies": { "@types/estree": "^1.0.6", "es-html-parser": "0.3.1", - "eslint": "^9.19.0" + "eslint": "^9.39.1" } }, "node_modules/@humanfs/core": { @@ -12335,31 +12321,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/eslint/node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", - "dev": true, - "dependencies": { - "@eslint/core": "^0.17.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -26031,23 +25992,12 @@ "dev": true, "requires": { "@eslint/core": "^0.17.0" - }, - "dependencies": { - "@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.15" - } - } } }, "@eslint/core": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", - "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.15" @@ -26109,12 +26059,12 @@ "dev": true }, "@eslint/plugin-kit": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", - "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, "requires": { - "@eslint/core": "^0.15.2", + "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, @@ -26391,57 +26341,57 @@ } }, "@html-eslint/eslint-plugin": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.48.0.tgz", - "integrity": "sha512-gZvPZu8RwHGCkLD3FItf3vpZsvcCZSxTNwshsWvraixSqOir/y2319v18tNOfRsCs3JCExhLXziUhkvoF0llhA==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@html-eslint/eslint-plugin/-/eslint-plugin-0.49.0.tgz", + "integrity": "sha512-+a1XZnp/gWer4CLd6hgR/dC9R3ew4ozSag4J4KSlHB4haYiCtOcT1vnIFDnqs9bWsJhROtjFHkGwRYsyPH76XA==", "dev": true, "requires": { - "@eslint/plugin-kit": "^0.3.1", - "@html-eslint/parser": "^0.48.0", - "@html-eslint/template-parser": "^0.48.0", - "@html-eslint/template-syntax-parser": "^0.48.0", - "@html-eslint/types": "^0.48.0" + "@eslint/plugin-kit": "^0.4.1", + "@html-eslint/parser": "^0.49.0", + "@html-eslint/template-parser": "^0.49.0", + "@html-eslint/template-syntax-parser": "^0.49.0", + "@html-eslint/types": "^0.49.0" } }, "@html-eslint/parser": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.48.0.tgz", - "integrity": "sha512-IO8J3R1+0+QuYUNh0IT1C4KZIA0W8IbXS5/tvs0e+GvYjnTRJ0eNNJN5CwqRlLYLmsF0rDtrxBteBZXULfk7Zg==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@html-eslint/parser/-/parser-0.49.0.tgz", + "integrity": "sha512-moB2CWd8kSiOqp+ibT4awHx7pw1irkON5GwiXP0JlHRHAGIll18lBuHKtY9K/vkok97Pq1zjoyl5T7Z+fFtufQ==", "dev": true, "requires": { - "@html-eslint/template-syntax-parser": "^0.48.0", - "@html-eslint/types": "^0.48.0", + "@html-eslint/template-syntax-parser": "^0.49.0", + "@html-eslint/types": "^0.49.0", "es-html-parser": "0.3.1" } }, "@html-eslint/template-parser": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@html-eslint/template-parser/-/template-parser-0.48.0.tgz", - "integrity": "sha512-E5L8K7nVwYtNTZtuSF0uVEstYWzd056PsUQQgDPa00VhGVPkd4gOYQbRboTfeO/bSphvgf7FcTLl97wHlLZARQ==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@html-eslint/template-parser/-/template-parser-0.49.0.tgz", + "integrity": "sha512-ciW0BFcW1iTqpT+aQOfjCelwcjLpqQMx/iLGevDQv8QHBdT43J89aAGPbv140KnYgUhQPnu9hFUV3goXWSu+gA==", "dev": true, "requires": { - "@html-eslint/types": "^0.48.0", + "@html-eslint/types": "^0.49.0", "es-html-parser": "0.3.1" } }, "@html-eslint/template-syntax-parser": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@html-eslint/template-syntax-parser/-/template-syntax-parser-0.48.0.tgz", - "integrity": "sha512-hkyw2pguiXVvg4MuuRnwqFtgmwWUuOwkgnWaSMP37OJLzjsH5Qhhv3fBD1hc1sYgIuF8j+S8vDMV6FFX7WDVGg==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@html-eslint/template-syntax-parser/-/template-syntax-parser-0.49.0.tgz", + "integrity": "sha512-TSW1gWU+cfYX47OVXtNoY+r7ALoY+87q3jkPrfGuccy5ODNfUR62jaH2lCfdMwGW+C6jhEzc83Uiije89UI72Q==", "dev": true, "requires": { - "@html-eslint/types": "^0.48.0" + "@html-eslint/types": "^0.49.0" } }, "@html-eslint/types": { - "version": "0.48.0", - "resolved": "https://registry.npmjs.org/@html-eslint/types/-/types-0.48.0.tgz", - "integrity": "sha512-jfUt1qGwGEsWuwYlg3TG0ZE6vm9rxRUuA+ke0p5lVaEEAe4UO57g9/lpo0+GB/57Qiai4Se3qZ02Pa/P4JrWuA==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@html-eslint/types/-/types-0.49.0.tgz", + "integrity": "sha512-7d+jT37S47xZYXm7P6c5gTxGoYP8KqavpT1dh3VUWmoQBAButHrO4o56TZWZHJUP3GBkafOt7dE0wTQFflukiw==", "dev": true, "requires": { "@types/estree": "^1.0.6", "es-html-parser": "0.3.1", - "eslint": "^9.19.0" + "eslint": "^9.39.1" } }, "@humanfs/core": { @@ -31609,25 +31559,6 @@ "optionator": "^0.9.3" }, "dependencies": { - "@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.15" - } - }, - "@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", - "dev": true, - "requires": { - "@eslint/core": "^0.17.0", - "levn": "^0.4.1" - } - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", diff --git a/frontend/package.json b/frontend/package.json index 5e7488b4010..0fc417dbb32 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -14,8 +14,8 @@ "@angular-eslint/template-parser": "20.7.0", "@angular/language-service": "20.3.13", "@eslint/js": "^9.39.1", - "@html-eslint/eslint-plugin": "^0.48.0", - "@html-eslint/parser": "^0.48.0", + "@html-eslint/eslint-plugin": "^0.49.0", + "@html-eslint/parser": "^0.49.0", "@jsdevtools/coverage-istanbul-loader": "3.0.5", "@stylistic/eslint-plugin": "^5.5.0", "@types/codemirror": "5.60.5", From 3daf3941a7744ee4a09329cd9e7f72bd5a621cba Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Tue, 25 Nov 2025 03:28:44 +0000 Subject: [PATCH 29/33] update locales from crowdin [ci skip] --- config/locales/crowdin/af.yml | 43 ++++- config/locales/crowdin/ar.yml | 43 ++++- config/locales/crowdin/az.yml | 43 ++++- config/locales/crowdin/be.yml | 43 ++++- config/locales/crowdin/bg.yml | 43 ++++- config/locales/crowdin/ca.yml | 43 ++++- config/locales/crowdin/ckb-IR.yml | 43 ++++- config/locales/crowdin/cs.yml | 43 ++++- config/locales/crowdin/da.yml | 43 ++++- config/locales/crowdin/de.yml | 173 ++++++++++-------- config/locales/crowdin/el.yml | 43 ++++- config/locales/crowdin/eo.yml | 43 ++++- config/locales/crowdin/es.yml | 43 ++++- config/locales/crowdin/et.yml | 43 ++++- config/locales/crowdin/eu.yml | 43 ++++- config/locales/crowdin/fa.yml | 43 ++++- config/locales/crowdin/fi.yml | 43 ++++- config/locales/crowdin/fil.yml | 43 ++++- config/locales/crowdin/fr.yml | 43 ++++- config/locales/crowdin/he.yml | 43 ++++- config/locales/crowdin/hi.yml | 43 ++++- config/locales/crowdin/hr.yml | 43 ++++- config/locales/crowdin/hu.yml | 43 ++++- config/locales/crowdin/id.yml | 43 ++++- config/locales/crowdin/it.yml | 43 ++++- config/locales/crowdin/ja.yml | 43 ++++- config/locales/crowdin/js-de.yml | 2 +- config/locales/crowdin/js-zh-TW.yml | 2 +- config/locales/crowdin/ka.yml | 43 ++++- config/locales/crowdin/kk.yml | 43 ++++- config/locales/crowdin/ko.yml | 43 ++++- config/locales/crowdin/lt.yml | 43 ++++- config/locales/crowdin/lv.yml | 43 ++++- config/locales/crowdin/mn.yml | 43 ++++- config/locales/crowdin/ms.yml | 43 ++++- config/locales/crowdin/ne.yml | 43 ++++- config/locales/crowdin/nl.yml | 43 ++++- config/locales/crowdin/no.yml | 43 ++++- config/locales/crowdin/pl.yml | 43 ++++- config/locales/crowdin/pt-BR.yml | 43 ++++- config/locales/crowdin/pt-PT.yml | 43 ++++- config/locales/crowdin/ro.yml | 43 ++++- config/locales/crowdin/ru.yml | 43 ++++- config/locales/crowdin/rw.yml | 43 ++++- config/locales/crowdin/si.yml | 43 ++++- config/locales/crowdin/sk.yml | 43 ++++- config/locales/crowdin/sl.yml | 43 ++++- config/locales/crowdin/sr.yml | 43 ++++- config/locales/crowdin/sv.yml | 43 ++++- config/locales/crowdin/th.yml | 43 ++++- config/locales/crowdin/tr.yml | 43 ++++- config/locales/crowdin/uk.yml | 43 ++++- config/locales/crowdin/uz.yml | 43 ++++- config/locales/crowdin/vi.yml | 43 ++++- config/locales/crowdin/zh-CN.yml | 43 ++++- config/locales/crowdin/zh-TW.yml | 65 +++++-- .../config/locales/crowdin/de.seeders.yml | 2 +- .../documents/config/locales/crowdin/de.yml | 33 ++-- .../config/locales/crowdin/zh-TW.yml | 34 ++-- modules/grids/config/locales/crowdin/de.yml | 8 +- .../grids/config/locales/crowdin/zh-TW.yml | 6 +- modules/meeting/config/locales/crowdin/de.yml | 38 ++-- .../storages/config/locales/crowdin/af.yml | 3 +- .../storages/config/locales/crowdin/ar.yml | 3 +- .../storages/config/locales/crowdin/az.yml | 3 +- .../storages/config/locales/crowdin/be.yml | 3 +- .../storages/config/locales/crowdin/bg.yml | 3 +- .../storages/config/locales/crowdin/ca.yml | 3 +- .../config/locales/crowdin/ckb-IR.yml | 3 +- .../storages/config/locales/crowdin/cs.yml | 3 +- .../storages/config/locales/crowdin/da.yml | 3 +- .../storages/config/locales/crowdin/de.yml | 5 +- .../storages/config/locales/crowdin/el.yml | 3 +- .../storages/config/locales/crowdin/eo.yml | 3 +- .../storages/config/locales/crowdin/es.yml | 3 +- .../storages/config/locales/crowdin/et.yml | 3 +- .../storages/config/locales/crowdin/eu.yml | 3 +- .../storages/config/locales/crowdin/fa.yml | 3 +- .../storages/config/locales/crowdin/fi.yml | 3 +- .../storages/config/locales/crowdin/fil.yml | 3 +- .../storages/config/locales/crowdin/fr.yml | 3 +- .../storages/config/locales/crowdin/he.yml | 3 +- .../storages/config/locales/crowdin/hi.yml | 3 +- .../storages/config/locales/crowdin/hr.yml | 3 +- .../storages/config/locales/crowdin/hu.yml | 3 +- .../storages/config/locales/crowdin/id.yml | 3 +- .../storages/config/locales/crowdin/it.yml | 3 +- .../storages/config/locales/crowdin/ja.yml | 3 +- .../storages/config/locales/crowdin/ka.yml | 3 +- .../storages/config/locales/crowdin/kk.yml | 3 +- .../storages/config/locales/crowdin/ko.yml | 3 +- .../storages/config/locales/crowdin/lt.yml | 3 +- .../storages/config/locales/crowdin/lv.yml | 3 +- .../storages/config/locales/crowdin/mn.yml | 3 +- .../storages/config/locales/crowdin/ms.yml | 3 +- .../storages/config/locales/crowdin/ne.yml | 3 +- .../storages/config/locales/crowdin/nl.yml | 3 +- .../storages/config/locales/crowdin/no.yml | 3 +- .../storages/config/locales/crowdin/pl.yml | 3 +- .../storages/config/locales/crowdin/pt-BR.yml | 3 +- .../storages/config/locales/crowdin/pt-PT.yml | 3 +- .../storages/config/locales/crowdin/ro.yml | 3 +- .../storages/config/locales/crowdin/ru.yml | 3 +- .../storages/config/locales/crowdin/rw.yml | 3 +- .../storages/config/locales/crowdin/si.yml | 3 +- .../storages/config/locales/crowdin/sk.yml | 3 +- .../storages/config/locales/crowdin/sl.yml | 3 +- .../storages/config/locales/crowdin/sr.yml | 3 +- .../storages/config/locales/crowdin/sv.yml | 3 +- .../storages/config/locales/crowdin/th.yml | 3 +- .../storages/config/locales/crowdin/tr.yml | 3 +- .../storages/config/locales/crowdin/uk.yml | 3 +- .../storages/config/locales/crowdin/uz.yml | 3 +- .../storages/config/locales/crowdin/vi.yml | 3 +- .../storages/config/locales/crowdin/zh-CN.yml | 3 +- .../storages/config/locales/crowdin/zh-TW.yml | 3 +- .../config/locales/crowdin/js-de.yml | 2 +- 117 files changed, 2084 insertions(+), 681 deletions(-) diff --git a/config/locales/crowdin/af.yml b/config/locales/crowdin/af.yml index 22b17eb62b8..f812acd9668 100644 --- a/config/locales/crowdin/af.yml +++ b/config/locales/crowdin/af.yml @@ -313,6 +313,25 @@ af: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ af: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ af: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ af: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ af: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ af: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ af: label_installation_guides: "Installation guides" label_integer: "Heelgetal" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Interne" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3335,6 +3360,9 @@ af: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projekte" label_project_new: "Nuwe projek" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projekte" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ af: label_project_view_all: "Bekyk alle projekte" label_project_show_details: "Toon projekdetails" label_project_hide_details: "Versteek projekdetails" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ af: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ af: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/ar.yml b/config/locales/crowdin/ar.yml index 65f30aaf47f..bd29e0e4ba6 100644 --- a/config/locales/crowdin/ar.yml +++ b/config/locales/crowdin/ar.yml @@ -313,6 +313,25 @@ ar: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ ar: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ ar: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2251,7 +2269,10 @@ ar: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2259,10 +2280,14 @@ ar: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2900,6 +2925,7 @@ ar: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3321,7 +3347,6 @@ ar: label_installation_guides: "Installation guides" label_integer: "عدد صحيح" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "داخلي" label_introduction_video: "Getting started video" label_invite_user: "دعوة مستخدم" @@ -3515,6 +3540,9 @@ ar: label_project_hierarchy: "التسلسل الهرمي للمشروع" label_project_mappings: "المشاريع" label_project_new: "مشروع جديد" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "المشاريع" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3528,7 +3556,6 @@ ar: label_project_view_all: "عرض جميع المشاريع" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4609,15 +4636,15 @@ ar: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4907,8 +4934,6 @@ ar: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > لقد وصلت إلى حد المستخدمين الخاص بك (%{current}/%{max} مستخدمين نشطين). يرجى الاتصال بـ sales@openproject.com لترقية خطة النسخة المؤسسية الخاصة بك وإضافة مستخدمين إضافيين. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/az.yml b/config/locales/crowdin/az.yml index df9eeb87704..452ef47220c 100644 --- a/config/locales/crowdin/az.yml +++ b/config/locales/crowdin/az.yml @@ -313,6 +313,25 @@ az: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ az: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ az: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ az: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ az: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ az: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ az: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3335,6 +3360,9 @@ az: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projects" label_project_new: "New project" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projects" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ az: label_project_view_all: "View all projects" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ az: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ az: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/be.yml b/config/locales/crowdin/be.yml index c4e084d2658..a1529f675a7 100644 --- a/config/locales/crowdin/be.yml +++ b/config/locales/crowdin/be.yml @@ -313,6 +313,25 @@ be: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ be: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ be: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2203,7 +2221,10 @@ be: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2211,10 +2232,14 @@ be: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2810,6 +2835,7 @@ be: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3231,7 +3257,6 @@ be: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3425,6 +3450,9 @@ be: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projects" label_project_new: "New project" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projects" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3438,7 +3466,6 @@ be: label_project_view_all: "View all projects" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4517,15 +4544,15 @@ be: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4813,8 +4840,6 @@ be: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/bg.yml b/config/locales/crowdin/bg.yml index f2d981a9129..dc8c19edf5a 100644 --- a/config/locales/crowdin/bg.yml +++ b/config/locales/crowdin/bg.yml @@ -313,6 +313,25 @@ bg: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > За да добавите нови потребителски полета към даден проект, първо трябва да ги създадете, преди да можете да ги добавите към този проект. is_enabled_globally: "Активирано е глобално" @@ -550,7 +569,7 @@ bg: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ bg: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ bg: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Използвайте шаблон" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ bg: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ bg: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ bg: label_installation_guides: "Installation guides" label_integer: "Цяло число" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Вътрешен" label_introduction_video: "Getting started video" label_invite_user: "Покани потребител" @@ -3335,6 +3360,9 @@ bg: label_project_hierarchy: "Йерархия на проекта" label_project_mappings: "Проекти" label_project_new: "Нов проект" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Проекти" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ bg: label_project_view_all: "Покажи всички проекти" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ bg: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ bg: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/ca.yml b/config/locales/crowdin/ca.yml index 1e18e6b7dad..51d19148027 100644 --- a/config/locales/crowdin/ca.yml +++ b/config/locales/crowdin/ca.yml @@ -310,6 +310,25 @@ ca: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Per afegir nous camps personalitzats a un projecte primer has de crear-los abans de poder-los afegir a aquest projecte. is_enabled_globally: "És habilitat globalment" @@ -547,7 +566,7 @@ ca: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -563,7 +582,6 @@ ca: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2152,7 +2170,10 @@ ca: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Utilitzar plantilla" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2160,10 +2181,14 @@ ca: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2717,6 +2742,7 @@ ca: new_features: header: "Llegeix sobre les noves funcions i actualitzacions del producte. " learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3138,7 +3164,6 @@ ca: label_installation_guides: "Guies d'instal·lació" label_integer: "Enter" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Intern" label_introduction_video: "Getting started video" label_invite_user: "Invitar usuari" @@ -3332,6 +3357,9 @@ ca: label_project_hierarchy: "Jerarquia de projectes" label_project_mappings: "Projectes" label_project_new: "Nou projecte" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projectes" label_project_list_plural: "Llistes de projectes" label_project_life_cycle: "Project life cycle" @@ -3345,7 +3373,6 @@ ca: label_project_view_all: "Veure tots els projectes" label_project_show_details: "Mostra detalls del projecte" label_project_hide_details: "Amaga detalls del projecte" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4414,15 +4441,15 @@ ca: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4708,8 +4735,6 @@ ca: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > Has assolit el nombre d'usuaris límit (%{current}/%{max} usuaris actius. Si us plau, posa't en contacte amb sales@openproject.com per actualitzar la teva edició Enterpirse i afegir nous usuaris. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/ckb-IR.yml b/config/locales/crowdin/ckb-IR.yml index e8a164fe283..6089c50b081 100644 --- a/config/locales/crowdin/ckb-IR.yml +++ b/config/locales/crowdin/ckb-IR.yml @@ -313,6 +313,25 @@ ckb-IR: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ ckb-IR: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ ckb-IR: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ ckb-IR: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ ckb-IR: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ ckb-IR: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ ckb-IR: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3335,6 +3360,9 @@ ckb-IR: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projects" label_project_new: "New project" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projects" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ ckb-IR: label_project_view_all: "View all projects" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ ckb-IR: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ ckb-IR: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/cs.yml b/config/locales/crowdin/cs.yml index bf0781afd1f..f94284ee338 100644 --- a/config/locales/crowdin/cs.yml +++ b/config/locales/crowdin/cs.yml @@ -313,6 +313,25 @@ cs: zero: žádné dílčí položky one: 1 dílčí položka other: "%{count} dílčí položky" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Chcete-li přidat nová vlastní pole do projektu, musíte je nejprve vytvořit, než je budete moci přidat do tohoto projektu. is_enabled_globally: "Globálně povoleno" @@ -550,7 +569,7 @@ cs: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ cs: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2203,7 +2221,10 @@ cs: copy_options: dependencies_label: "Kopírovat z projektu" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Použít šablonu" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2211,10 +2232,14 @@ cs: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2810,6 +2835,7 @@ cs: new_features: header: "Přečtěte si o nových funkcích a aktualizacích produktů." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3231,7 +3257,6 @@ cs: label_installation_guides: "Instalační příručky" label_integer: "Celé číslo" label_interface: "Rozhraní" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Interní" label_introduction_video: "Getting started video" label_invite_user: "Pozvat uživatele" @@ -3425,6 +3450,9 @@ cs: label_project_hierarchy: "Hierarchie projektu" label_project_mappings: "Projekty" label_project_new: "Nový projekt" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projekty" label_project_list_plural: "Seznamy projektů" label_project_life_cycle: "Životní cyklus projektu" @@ -3438,7 +3466,6 @@ cs: label_project_view_all: "Zobrazit všechny projekty - seznam" label_project_show_details: "Zobrazit detail projektu" label_project_hide_details: "Skrýt detail projektu" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4516,15 +4543,15 @@ cs: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4811,8 +4838,6 @@ cs: Přidáním dalších uživatelů překročíte aktuální limit. upgradujte svůj plán, abyste mohli zajistit, že externí uživatelé budou mít přístup k této instanci. warning_user_limit_reached_instructions: > Limit počtu uživatelů (%{current}/%{max} aktivních uživatelů) dosažen. Prosím kontaktujte sales@openproject.com a upgradujte vaši Enterprise Edition a přidejte další uživatele. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/da.yml b/config/locales/crowdin/da.yml index 64cf3c2ed1a..4780feabc43 100644 --- a/config/locales/crowdin/da.yml +++ b/config/locales/crowdin/da.yml @@ -311,6 +311,25 @@ da: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > For at tilføje nye brugerdefinerede felter til et projekt, skal du først oprette dem, før du kan føje dem til dette projekt. is_enabled_globally: "Er aktiveret globalt" @@ -548,7 +567,7 @@ da: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -564,7 +583,6 @@ da: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2153,7 +2171,10 @@ da: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2161,10 +2182,14 @@ da: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2718,6 +2743,7 @@ da: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3139,7 +3165,6 @@ da: label_installation_guides: "Installation guides" label_integer: "Heltal" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Intern" label_introduction_video: "Getting started video" label_invite_user: "Invitér bruger" @@ -3333,6 +3358,9 @@ da: label_project_hierarchy: "Projekthierarki" label_project_mappings: "Projekter" label_project_new: "Nyt projekt" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projekter" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3346,7 +3374,6 @@ da: label_project_view_all: "Se alle projekter" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4419,15 +4446,15 @@ da: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4713,8 +4740,6 @@ da: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/de.yml b/config/locales/crowdin/de.yml index 444972a20cf..dbb02b59668 100644 --- a/config/locales/crowdin/de.yml +++ b/config/locales/crowdin/de.yml @@ -310,6 +310,25 @@ de: zero: keine Unterelemente one: 1 Unterelement other: "%{count} Unterelemente" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Um neue benutzerdefinierte Felder einem Projekt zuzuweisen, müssen Sie diese erst global erstellen, um Sie dann an dieser Stelle aktivieren zu können. is_enabled_globally: "Für alle Projekte aktiviert" @@ -320,7 +339,7 @@ de: reorder_confirmation: "Warnung: Die aktuelle Reihenfolge der verfügbaren Werte geht verloren. Fortfahren?" placeholder_version_select: "Zunächst muss ein Arbeitspaket oder ein Projekt ausgewählt werden" calculated_field_not_editable: "Nicht editierbares Attribut. Dieser Wert wird automatisch berechnet." - no_role_assigment: "No role assignment" + no_role_assigment: "Keine Rollenzuweisung" instructions: is_required: "Markieren Sie das benutzerdefinierte Feld als erforderlich. Dadurch wird das Ausfüllen des Feldes bei der Erstellung neuer Felder obligatorisch. Bei der Aktualisierung bestehender Felder wird kein Wert benötigt." is_required_for_project: "Aktivieren Sie dieses Attribut und machen Sie es in allen Projekten erforderlich. Es kann für einzelne Projekte nicht deaktiviert werden. Bestehende Projekte benötigen keinen Wert, wenn sie aktualisiert werden." @@ -367,7 +386,7 @@ de: int?: "muss eine ganze Zahl sein." key?: "fehlt." not_found: "nicht gefunden." - respond_to?: "does not implement required method." + respond_to?: "die erforderliche Methode nicht implementiert." rules: copy_workflow_from: workflow_missing: "hat keinen eigenen Workflow." @@ -429,13 +448,13 @@ de: portfolios: index: search: - label: Portfolio name filter - placeholder: Search portfolios + label: Portfolio-Namensfilter + placeholder: Portfolios suchen lists: - active: "Active portfolios" - my: "My portfolios" - favorited: "Favorite portfolios" - archived: "Archived portfolios" + active: "Aktive Portfolios" + my: "Meine Portfolios" + favorited: "Favorisierte Portfolios" + archived: "Archivierte Portfolios" projects: copy: #Contains custom strings for options when copying a project that cannot be found elsewhere. @@ -546,26 +565,25 @@ de: new_label: "Neue Priorität" creation_wizard: export: - description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." - description_file_storage_selection: "Select which of the configured external file storages should be used." - external_file_storage: "External file storage" - label_artifact_export: "Artifact export" - label_attachment_export: "Save as work package file attachment" - label_file_link_export: "Upload file to external file storage and add file link to work package" - pdf_file_storage: "PDF file storage" + description_attachment_export: "Das erzeugte Artefakt wird als PDF-Anhang zum erstellten Arbeitspaket gespeichert." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." + description_file_storage_selection: "Wählen Sie, welcher der konfigurierten externen Dateispeicher verwendet werden soll." + external_file_storage: "Externe Dateispeicher" + label_artifact_export: "Artefakt-Export" + label_attachment_export: "Als Dateianhang des Arbeitspakets speichern" + label_file_link_export: "Datei in externen Dateispeicher hochladen und Dateilink zum Arbeitspaket hinzufügen" + pdf_file_storage: "PDF-Datei-Speicherort" unavailable: "nicht verfügbar" - label_request_submission: "Request submission" + label_request_submission: "Einreichung des Antrags" project_attributes_description: > - Select which project attributes should be included in the project initiation request. This list only includes [project attributes](project_attributes_url) enabled for for this project. + Wählen Sie aus, welche Attribute in den Projektinitiierungsantrag aufgenommen werden sollen. Diese Liste zeigt nur [Projektattribute](project_attributes_url), die für dieses Projekt aktiviert sind. status: button_edit: Projektstatus bearbeiten wizard: sidebar_content_title: "Inhalt" - sections: "Sections" - title: "Project initiation request" - no_help_text: "This attribute has no help text defined." - success: "Project attributes have been saved successfully." + sections: "Abschnitte" + no_help_text: "Für dieses Feld ist kein Hilfetext definiert." + success: "Die Projektattribute wurden erfolgreich gespeichert." progress_label: "%{current} von %{total}" lists: create: @@ -1180,11 +1198,11 @@ de: off_track: "Unplanmäßig" finished: "Abgeschlossen" discontinued: "Eingestellt" - project_creation_wizard_assignee_custom_field: "Assignee when submitted" + project_creation_wizard_assignee_custom_field: "Zuweisung bei Einreichung" project_creation_wizard_notification_text: "Benachrichtigungstext" project_creation_wizard_send_confirmation_email: "Bestätigungs-E-Mail" - project_creation_wizard_status_when_submitted: "Status when submitted" - project_creation_wizard_work_package_comment: "Work package comment" + project_creation_wizard_status_when_submitted: "Status bei Einreichung" + project_creation_wizard_work_package_comment: "Arbeitspaket-Kommentar" project_creation_wizard_work_package_type: "Arbeitspaket-Typ" template: "Vorlage" templated: "Projektvorlage" @@ -1469,7 +1487,7 @@ de: minimum: "müssen mindestens einen Filter für Principal, Kontext oder ID mit dem '=' Operator enthalten." custom_field: at_least_one_custom_option: "Mindestens ein Wert muss verfügbar sein." - previous_custom_field_recalculation_unprocessed: "The recalculation of previous changes for this custom field have not been applied yet, please try again in a few minutes." + previous_custom_field_recalculation_unprocessed: "Die Neuberechnung früherer Änderungen für dieses benutzerdefinierte Feld wurde noch nicht durchgeführt. Bitte versuchen Sie es in ein paar Minuten erneut." referenced_in_other_fields_html: one: "%{name} wird bei der Berechnung eines Projektattributs verwendet %{links}." other: "%{name} wird bei der Berechnung von Projektattribute verwendet %{links}." @@ -1723,7 +1741,7 @@ de: cant_exceed_work: "Kann nicht größer als der Aufwand sein." must_be_set_when_work_is_set: "Ist erforderlich, wenn Aufwand gesetzt ist." must_be_set_when_work_and_percent_complete_are_set: "ist erforderlich, wenn Aufwand und % abgeschlossen eingestellt sind." - must_be_set_to_zero_hours_when_work_is_set_and_percent_complete_is_100p: '>- must be 0h when Work is set and % Complete is 100%.' + must_be_set_to_zero_hours_when_work_is_set_and_percent_complete_is_100p: muss 0h sein, wenn Aufwand gesetzt und % abgeschlossen 100% ist. must_be_empty_when_work_is_empty_and_percent_complete_is_100p: >- muss leer bleiben, wenn Aufwand gesetzt und % abgeschlossen 100% ist. readonly_status: "Das Arbeitspaket befindet sich in einem schreibgeschützten Status, so dass seine Attribute nicht geändert werden können." @@ -1844,9 +1862,9 @@ de: other: "Zusätzlich gab es ein Problem mit den folgenden Feldern:" field_erroneous_label: "Dieses Feld ist ungültig: %{full_errors} \nBitte geben Sie einen gültigen Wert ein." messages: - unsupported_storage_type: "is not a supported storage type." - storage_error: "There was an error with the storage connection." - invalid_input: "The input is invalid." + unsupported_storage_type: "ist kein unterstützter Speichertyp." + storage_error: "Es ist ein Fehler bei der Speicherverbindung aufgetreten." + invalid_input: "Die Eingabe ist ungültig." activity: item: created_by_on: "erstellt von %{user} am %{datetime}" @@ -2045,7 +2063,7 @@ de: button_collapse_all: "Alle zuklappen" button_configure: "Konfigurieren" button_continue: "Fortfahren" - button_complete: "Complete" + button_complete: "Fertigstellen" button_copy: "Kopieren" button_copy_to_clipboard: "In Zwischenablage kopieren" button_copy_link_to_clipboard: "Link in Zwischenablage kopieren" @@ -2147,21 +2165,28 @@ de: copy_options: dependencies_label: "Projekt kopieren" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Vorlage verwenden" + template_heading: "Templated projects" copy_options: dependencies_label: "Aus Vorlage erstellen" blank_template: - label: "Blank project" - description: Start from scratch. Manually add project attributes, members and modules. + label: "Leeres Projekt" + description: Bei Null anfangen. Projektattribute, Mitglieder und Module manuell hinzufügen. blank_description: Keine Beschreibung angegeben. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Leeres Portfolio" - description: Start from scratch. Manually add portfolio attributes, members and modules. + description: Beginnen Sie bei Null. Fügen Sie Portfolioattribute, Mitglieder und Module manuell hinzu. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Leeres Programm" - description: Start from scratch. Manually add program attributes, members and modules. + description: Bei Null anfangen. Programmattribute, Mitglieder und Module manuell hinzufügen. create_wiki_page: "Neue Wikiseite anlegen" create_wiki_page_button: "Wiki-Seite" date: @@ -2632,7 +2657,7 @@ de: attribute_not_found: "Attribut nicht gefunden: %{attribute}" model_not_found: "ungültiges Attributmodell: %{model}" resource_not_found: "Ressource nicht gefunden: %{resource}" - nested_rich_text_unsupported: "Nested rich text embedding currently not supported in export" + nested_rich_text_unsupported: "Rich-Text-Einbettung wird derzeit beim Export nicht unterstützt" units: hours: h days: d @@ -2712,6 +2737,7 @@ de: new_features: header: "Lesen Sie über neue Funktionen und Updates." learn_about: "Erfahren Sie mehr über die neuen Funktionen" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3133,7 +3159,6 @@ de: label_installation_guides: "Installationsanleitungen" label_integer: "Zahl" label_interface: "Benutzeroberfläche" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Intern" label_introduction_video: "Einführungsvideo" label_invite_user: "Nutzer einladen" @@ -3174,8 +3199,8 @@ de: label_lock_user: "Benutzer sperren" label_logged_as: "Angemeldet als" label_login: "Anmelden" - label_custom_logo: "Custom logo desktop" - label_custom_logo_mobile: "Custom logo mobile" + label_custom_logo: "Benutzerdefiniertes Logo Desktop" + label_custom_logo_mobile: "Benutzerdefiniertes Logo Mobilgerät" label_custom_export_logo: "Selbstdefiniertes Logo für PDF-Export" label_custom_export_cover: "Hintergrund für Export Cover" label_custom_export_footer: "Selbstdefiniertes Fußzeilen-Bild für PDF-Export" @@ -3327,6 +3352,9 @@ de: label_project_hierarchy: "Projekthierarchie" label_project_mappings: "Projekte" label_project_new: "Neues Projekt" + label_project_initiation_request: "Projektinitiierungsantrag" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projekte" label_project_list_plural: "Projektlisten" label_project_life_cycle: "Projekt-Lebenszyklus" @@ -3340,7 +3368,6 @@ de: label_project_view_all: "Alle Projekte anzeigen" label_project_show_details: "Projektdetails anzeigen" label_project_hide_details: "Projektdetails verstecken" - label_project_initiation_request: "Projektinitiierungsantrag" label_portfolio: "Portfolio" label_portfolio_new: "Neues Portfolio" label_program: "Programm" @@ -3377,7 +3404,7 @@ de: label_repository_remove: "Projektarchiv entfernen" label_repository_root: "Stammverzeichnis des Projektarchivs" label_repository_plural: "Projektarchive" - label_request_submission: "Request submission" + label_request_submission: "Einreichung des Antrags" label_required: "benötigt von" label_requires: "benötigt" label_result_plural: "Ergebnisse" @@ -3847,9 +3874,9 @@ de: permission_add_project: "Projekte erstellen" permission_add_portfolios: "Portfolios erstellen" permission_add_programs: "Programme erstellen" - permission_add_project_from_template: "Create project from template" - permission_add_portfolios_from_template: "Create portfolio from template" - permission_add_programs_from_template: "Create program from template" + permission_add_project_from_template: "Projekt aus Vorlage erstellen" + permission_add_portfolios_from_template: "Portfolio aus Vorlage erstellen" + permission_add_programs_from_template: "Programm aus Vorlage erstellen" permission_add_work_package_attachments: "Anhänge hinzufügen" permission_add_work_package_attachments_explanation: "Erlaubt das Hinzufügen von Anhängen ohne die Berechtigung, das Arbeitspaket selbst zu bearbeiten" permission_add_internal_comments: "Interne Kommentare schreiben" @@ -4297,7 +4324,7 @@ de: setting_self_registration_manual_activation: "Manuelle Kontoaktivierung" setting_self_registration_manual_activation_caption: > Benutzer können sich selbst anmelden. Ihre Konten sind noch nicht zugänglich, bis ein Administrator oder Benutzer mit der globalen Berechtigung zur Erstellung oder Verwaltung von Benutzern diese aktiviert. - setting_session_ttl: "Session expiration time after inactivity" + setting_session_ttl: "Session-Ablaufzeit nach Inaktivität" setting_session_ttl_hint: "Wert kleiner 5 wirkt wie ausgeschaltet" setting_session_ttl_enabled: "Session läuft ab" setting_start_of_week: "Wochenanfang am" @@ -4398,45 +4425,45 @@ de: sections: display_representation: overview: - label: "Project attribute shown in:" + label: "Projektattribut angezeigt in:" main_area: label: "Hauptbereich" - description: "Add all the project attributes as individual widgets in the main section of the project overview." + description: "Fügen Sie alle Projektattribute als einzelne Widgets in den Hauptbereich der Projektübersicht ein." side_panel: - label: "Side panel" - description: "Add all the project attributes in a section inside the right side panel in the project overview." + label: "Seitenleiste" + description: "Fügen Sie alle Projektattribute in einem Abschnitt in der rechten Seitenleiste der Projektübersicht hinzu." project_initiation_request: blankslate: - title: "Initiation request not enabled" - description: "OpenProject can generate a step-by-step wizard to help project managers fill out a project initiation request. You can chose which project attributes should be included and what to do with the output document. Enable it here to start configuring the wizard." + title: "Initiierungsanfrage nicht aktiviert" + description: "OpenProject kann einen Schritt-für-Schritt-Assistenten erstellen, der beim Ausfüllen eines Projektinitiierungsantrags unterstützen kann. Sie können auswählen, welche Projektattribute enthalten sein sollen ein Artefakt als Ergebnis erzeugen lassen. Aktivieren Sie ihn hier, um den Assistenten zu konfigurieren." disable_dialog: - title: "Disable project initiation request" - heading: "Disable this project initiation request?" - confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." - checkbox_message: "I understand that this action is not reversible" + title: "Projektinitiierungsantrag deaktivieren" + heading: "Diesen Projektinitiationsantrag deaktivieren?" + confirmation_message: "Der Projektinitiierungsantrag wird für neue Projekte, die auf dieser Vorlage basieren, nicht mehr verfügbar sein. Projektmanager und Projektverantwortliche müssen die entsprechenden Informationen in der Projektübersicht manuell konfigurieren und ausfüllen." + checkbox_message: "Ich verstehe, dass diese Aktion nicht rückgängig gemacht werden kann" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: - project_initiation_request: "Project initiation request" - project_creation_wizard: "Project creation wizard" - project_mandate: "Project mandate" + project_initiation_request: "Projektinitiierungsantrag" + project_creation_wizard: "Projekterstellungs-Assistent" + project_mandate: "Projektmandat" submission: - work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." - status_when_submitted: "Status when submitted" - status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." - send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" - assignee: "Assignee when submitted" - assignee_caption: "The person or group this project initiation request will be assigned to." - confirmation_email_text: "Confirmation email text" - confirmation_email_default: "Hello,\n\nYou submitted a project initiation request for **%{project_name}**. It is now awaiting review.\nClick the link below to access the work package with your request." + work_package_type: "Arbeitspaket-Typ" + work_package_type_caption: "The work package type that should be used to store the completed artifact." + status_when_submitted: "Status bei Einreichung" + status_when_submitted_caption: "Der Status, in den das erstellte Arbeitspaket übergeht, sobald der Antrag eingereicht wird." + send_confirmation_email: "Senden Sie eine Bestätigungs-E-Mail an den Benutzer, der den Projektinitiierungsantrag gestellt hat" + assignee: "Zuweisung bei Einreichung" + assignee_caption: "Die Person oder Gruppe, der diese Projektinitiierungsanfrage zugewiesen werden soll." + confirmation_email_text: "Text der Bestätigungs-E-Mail" + confirmation_email_default: "Hallo,\n\nSie haben einen Antrag auf Projektinitiierung für **%{project_name}** eingereicht. Dieser wartet nun auf seine Überprüfung.\nKlicken Sie auf den untenstehenden Link, um das Arbeitspaket mit Ihrem Antrag aufzurufen." work_package_comment: "Arbeitspaket-Kommentar" - work_package_comment_caption: "The assignee selected above will automatically be @mentioned in the comment." - work_package_comment_default: "A project initiation request for **%{project_name}** was submitted and is awaiting review." + work_package_comment_caption: "Der oben ausgewählte Empfänger wird automatisch in dem Kommentar @erwähnt." + work_package_comment_default: "Ein Antrag auf Projektinitiierung für **%{project_name}** wurde eingereicht und wartet auf seine Prüfung." project_phase_definitions: heading: "Projekt-Lebenszyklus" - heading_description: "Project life cycle defines the project phases that can be used for your project planning and will appear in the overview page of each project. These attributes can be enabled or disabled but not re-ordered at a project level." + heading_description: "Der Projekt-Lebenszyklus definiert die Projektphasen, die für Ihre Projektplanung verwendet werden können und auf der Übersichtsseite jedes Projekts erscheinen. Diese Attribute können aktiviert oder deaktiviert werden, aber nicht auf Projektebene neu geordnet werden." label_add: "Hinzufügen" label_add_description: "Neue Projektphase definieren" filter: @@ -4708,8 +4735,6 @@ de: Das Hinzufügen zusätzlicher Benutzer überschreitet das aktuelle Benutzerlimit. Bitte aktualisieren Sie Ihr Abonnement um sicherzustellen, dass externe Benutzer auf diese Instanz zugreifen können. warning_user_limit_reached_instructions: > Du hast dein Nutzerlimit erreicht (%{current}/%{max} active users). Bitte kontaktiere sales@openproject.com um deinen Enterprise edition Plan upzugraden und weitere Nutzer hinzuzufügen. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/el.yml b/config/locales/crowdin/el.yml index dafe96d2763..ffb91941bcd 100644 --- a/config/locales/crowdin/el.yml +++ b/config/locales/crowdin/el.yml @@ -309,6 +309,25 @@ el: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Για να προσθέσετε νέα προσαρμοσμένα πεδία σε ένα έργο, πρέπει πρώτα να τα δημιουργήσετε για να τα προσθέσετε σε αυτό το έργο. is_enabled_globally: "Είναι ενεργοποιημένο σε όλο το σύστημα" @@ -546,7 +565,7 @@ el: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -562,7 +581,6 @@ el: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2151,7 +2169,10 @@ el: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Χρήση προτύπου" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2159,10 +2180,14 @@ el: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2716,6 +2741,7 @@ el: new_features: header: "Διαβάστε για τις νέες λειτουργίες και τις ενημερώσεις προϊόντων." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3137,7 +3163,6 @@ el: label_installation_guides: "Installation guides" label_integer: "Ακέραιος" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Εσωτερικό" label_introduction_video: "Getting started video" label_invite_user: "Προσκαλέστε χρήστη" @@ -3331,6 +3356,9 @@ el: label_project_hierarchy: "Ιεραρχία έργου" label_project_mappings: "Έργα" label_project_new: "Νέο έργο" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Έργα" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3344,7 +3372,6 @@ el: label_project_view_all: "Εμφάνιση όλων των έργων" label_project_show_details: "Εμφάνιση λεπτομερειών έργου" label_project_hide_details: "Απόκρυψη λεπτομερειών έργου" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4418,15 +4445,15 @@ el: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4711,8 +4738,6 @@ el: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/eo.yml b/config/locales/crowdin/eo.yml index 65e12cf1b30..604814c5bf2 100644 --- a/config/locales/crowdin/eo.yml +++ b/config/locales/crowdin/eo.yml @@ -313,6 +313,25 @@ eo: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Ĉie ŝaltita" @@ -550,7 +569,7 @@ eo: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ eo: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ eo: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ eo: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ eo: new_features: header: "Legu pri novaj plibonigoj kaj aktualigoj de produkto." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ eo: label_installation_guides: "Installation guides" label_integer: "Entjero" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Interna" label_introduction_video: "Getting started video" label_invite_user: "Inviti uzanton" @@ -3335,6 +3360,9 @@ eo: label_project_hierarchy: "Projekta hierarkio" label_project_mappings: "Projektoj" label_project_new: "Nova projekto" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projektoj" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ eo: label_project_view_all: "Vidi ĉiujn projektojn" label_project_show_details: "Montri projektajn detalojn" label_project_hide_details: "Kaŝi projektajn detalojn" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ eo: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ eo: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/es.yml b/config/locales/crowdin/es.yml index c74e6e94672..2366db30c5d 100644 --- a/config/locales/crowdin/es.yml +++ b/config/locales/crowdin/es.yml @@ -311,6 +311,25 @@ es: zero: ningún subelemento one: 1 subelemento other: "%{count} subelementos" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Para agregar nuevos campos personalizados a un proyecto, primero debe crearlos, y luego añadirlos a este proyecto. is_enabled_globally: "Está activado a nivel global" @@ -548,7 +567,7 @@ es: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -564,7 +583,6 @@ es: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2152,7 +2170,10 @@ es: copy_options: dependencies_label: "Copiar desde el proyecto" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Usar plantilla" + template_heading: "Templated projects" copy_options: dependencies_label: "Copiar desde la plantilla" blank_template: @@ -2160,10 +2181,14 @@ es: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2717,6 +2742,7 @@ es: new_features: header: "Obtenga información sobre nuevas funciones y actualizaciones de productos." learn_about: "Más información sobre todas las nuevas funciones" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3138,7 +3164,6 @@ es: label_installation_guides: "Guías de instalación" label_integer: "Número entero" label_interface: "Interfaz" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Interno" label_introduction_video: "Vídeo de primeros pasos" label_invite_user: "Invitar usuario" @@ -3332,6 +3357,9 @@ es: label_project_hierarchy: "Jerarquía del proyecto" label_project_mappings: "Proyectos" label_project_new: "Nuevo proyecto" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Proyectos" label_project_list_plural: "Listas de proyectos" label_project_life_cycle: "Ciclo de vida del proyecto" @@ -3345,7 +3373,6 @@ es: label_project_view_all: "Ver todos los proyectos" label_project_show_details: "Mostrar los detalles del proyecto" label_project_hide_details: "Ocultar los detalles del proyecto" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portafolio" label_portfolio_new: "Nuevo portafolio" label_program: "Programa" @@ -4419,15 +4446,15 @@ es: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4712,8 +4739,6 @@ es: Añadir usuarios adicionales excederá el límite actual. Por favor, actualice su plan para asegurar que los usuarios externos puedan acceder a esta instancia. warning_user_limit_reached_instructions: > Has alcanzado el límite de usuarios (%{current}/%{max} usuarios activos). Por favor, contacta con sales@openproject.com para mejorar tu plan de Enterprise y añadir usuarios adicionales. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/et.yml b/config/locales/crowdin/et.yml index 235c4470cf9..c6598686944 100644 --- a/config/locales/crowdin/et.yml +++ b/config/locales/crowdin/et.yml @@ -313,6 +313,25 @@ et: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ et: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ et: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ et: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ et: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ et: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ et: label_installation_guides: "Installation guides" label_integer: "Täisarv" label_interface: "Kasutajaliides" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Sisemine" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3335,6 +3360,9 @@ et: label_project_hierarchy: "Projekti hierarhia" label_project_mappings: "Projektid" label_project_new: "Uus projekt" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projektid" label_project_list_plural: "Project lists" label_project_life_cycle: "Projekti elutsükkel" @@ -3348,7 +3376,6 @@ et: label_project_view_all: "Vaata kõiki projekte" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ et: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ et: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/eu.yml b/config/locales/crowdin/eu.yml index a8272d084fb..eb58ecb12c0 100644 --- a/config/locales/crowdin/eu.yml +++ b/config/locales/crowdin/eu.yml @@ -313,6 +313,25 @@ eu: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ eu: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ eu: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ eu: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ eu: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ eu: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ eu: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3335,6 +3360,9 @@ eu: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projects" label_project_new: "New project" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projects" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ eu: label_project_view_all: "View all projects" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ eu: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ eu: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/fa.yml b/config/locales/crowdin/fa.yml index b7de1c5627e..6f2a773bc44 100644 --- a/config/locales/crowdin/fa.yml +++ b/config/locales/crowdin/fa.yml @@ -313,6 +313,25 @@ fa: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ fa: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ fa: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ fa: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ fa: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ fa: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ fa: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3335,6 +3360,9 @@ fa: label_project_hierarchy: "Project hierarchy" label_project_mappings: "پروژه‌ها" label_project_new: "New project" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "پروژه‌ها" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ fa: label_project_view_all: "View all projects" label_project_show_details: "نمایش جزئیات پروژه" label_project_hide_details: "پنهان کردن جزئیات پروژه" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ fa: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ fa: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/fi.yml b/config/locales/crowdin/fi.yml index eb5df355e57..d717b1ee5bb 100644 --- a/config/locales/crowdin/fi.yml +++ b/config/locales/crowdin/fi.yml @@ -313,6 +313,25 @@ fi: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Jotta voit lisätä tälle projektille uusia muokattavia kenttiä, tulee sinun ensin luoda ne. is_enabled_globally: "On käytössä kaikkialla" @@ -550,7 +569,7 @@ fi: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ fi: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ fi: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ fi: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ fi: new_features: header: "Tietoa uusista ominaisuuksista ja tuotepäivityksistä." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ fi: label_installation_guides: "Installation guides" label_integer: "Kokonaisluku" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Sisäinen" label_introduction_video: "Getting started video" label_invite_user: "Kutsu käyttäjä" @@ -3335,6 +3360,9 @@ fi: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projektit" label_project_new: "Uusi projekti" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projektit" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ fi: label_project_view_all: "Kaikki projektit" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ fi: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ fi: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/fil.yml b/config/locales/crowdin/fil.yml index 7d229ef696e..52ad2dcce7a 100644 --- a/config/locales/crowdin/fil.yml +++ b/config/locales/crowdin/fil.yml @@ -313,6 +313,25 @@ fil: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Upang magdagdag ng mga kustom na patlang sa isang proyekto kinakailangan mo muna likhain bago ka muna sila idagdag sa proyektong ito. is_enabled_globally: "Ay pinagana pandaigdigan" @@ -550,7 +569,7 @@ fil: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ fil: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ fil: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ fil: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ fil: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ fil: label_installation_guides: "Installation guides" label_integer: "Numero" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Panloob" label_introduction_video: "Getting started video" label_invite_user: "Imbitahan ang user" @@ -3335,6 +3360,9 @@ fil: label_project_hierarchy: "Proyektong hierarchy" label_project_mappings: "Mga proyekto" label_project_new: "Bagong proyekto" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Mga proyekto" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ fil: label_project_view_all: "Tingnan lahat ang mga proyekto" label_project_show_details: "Ipakita ang mga detalye ng proyekto" label_project_hide_details: "Itago ang mga detalye ng proyekto" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4421,15 +4448,15 @@ fil: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4715,8 +4742,6 @@ fil: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/fr.yml b/config/locales/crowdin/fr.yml index 401725fe5f5..9d88cc05631 100644 --- a/config/locales/crowdin/fr.yml +++ b/config/locales/crowdin/fr.yml @@ -313,6 +313,25 @@ fr: zero: aucun sous-élément one: 1 sous-élément other: "%{count} sous-éléments" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Pour ajouter de nouveaux champs personnalisés à un projet, vous devez d’abord les créer avant de pouvoir les ajouter à ce projet. is_enabled_globally: "Est activé globalement" @@ -550,7 +569,7 @@ fr: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ fr: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2153,7 +2171,10 @@ fr: copy_options: dependencies_label: "Copier à partir du projet" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Utiliser le modèle" + template_heading: "Templated projects" copy_options: dependencies_label: "Copier à partir du modèle" blank_template: @@ -2161,10 +2182,14 @@ fr: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2718,6 +2743,7 @@ fr: new_features: header: "Découvrez les nouvelles fonctionnalités et les mises à jour des produits." learn_about: "En savoir plus sur les nouvelles fonctionnalités" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3139,7 +3165,6 @@ fr: label_installation_guides: "Guides d'installation" label_integer: "Nombre entier" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Interne" label_introduction_video: "Vidéo de démarrage" label_invite_user: "Inviter utilisateur" @@ -3333,6 +3358,9 @@ fr: label_project_hierarchy: "Hiérarchie du projet" label_project_mappings: "Projets" label_project_new: "Nouveau projet" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projets" label_project_list_plural: "Listes de projets" label_project_life_cycle: "Cycle de vie du projet" @@ -3346,7 +3374,6 @@ fr: label_project_view_all: "Afficher tous les projets" label_project_show_details: "Afficher les détails du projet" label_project_hide_details: "Masquer les détails du projet" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portefeuille" label_portfolio_new: "Nouveau portefeuille" label_program: "Programme" @@ -4421,15 +4448,15 @@ fr: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4714,8 +4741,6 @@ fr: L'ajout d'utilisateurs supplémentaires dépassera la limite actuelle. Veuillez mettre à niveau votre plan pour que les utilisateurs externes puissent accéder à cette instance. warning_user_limit_reached_instructions: > Vous avez atteint le nombre limite d'utilisateurs (%{current}/%{max} utilisateurs actifs). Veuillez contacter sales@openproject.com pour mettre à jour votre abonnement Entreprise et ajouter des utilisateurs supplémentaires. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/he.yml b/config/locales/crowdin/he.yml index ad7d92bc231..1b55e6bd2d4 100644 --- a/config/locales/crowdin/he.yml +++ b/config/locales/crowdin/he.yml @@ -313,6 +313,25 @@ he: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ he: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ he: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2203,7 +2221,10 @@ he: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2211,10 +2232,14 @@ he: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2810,6 +2835,7 @@ he: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3231,7 +3257,6 @@ he: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "פנימי" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3425,6 +3450,9 @@ he: label_project_hierarchy: "Project hierarchy" label_project_mappings: "פרויקטים" label_project_new: "פרוייקט חדש" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "פרויקטים" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3438,7 +3466,6 @@ he: label_project_view_all: "הצג את כל הפרוייקטים" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4517,15 +4544,15 @@ he: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4813,8 +4840,6 @@ he: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/hi.yml b/config/locales/crowdin/hi.yml index c4b143f0cd9..d63347bd52d 100644 --- a/config/locales/crowdin/hi.yml +++ b/config/locales/crowdin/hi.yml @@ -313,6 +313,25 @@ hi: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > परियोजना में नई custom fields जोडनें हेतु, पहले आपको उनका सृजन करना पडेगा, तत्पष्चात ही आप उन्हें परियोजना में जोड सकेंगे. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ hi: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ hi: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2153,7 +2171,10 @@ hi: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2161,10 +2182,14 @@ hi: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2718,6 +2743,7 @@ hi: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3139,7 +3165,6 @@ hi: label_installation_guides: "Installation guides" label_integer: "पूर्णांक" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "आंतरिक" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3333,6 +3358,9 @@ hi: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projects" label_project_new: "नया प्रोजेक्ट" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projects" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3346,7 +3374,6 @@ hi: label_project_view_all: "सभी प्रोजेक्ट्स देखें" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4421,15 +4448,15 @@ hi: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4715,8 +4742,6 @@ hi: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/hr.yml b/config/locales/crowdin/hr.yml index 6f4972b1975..a2c37a31ab7 100644 --- a/config/locales/crowdin/hr.yml +++ b/config/locales/crowdin/hr.yml @@ -313,6 +313,25 @@ hr: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ hr: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ hr: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2179,7 +2197,10 @@ hr: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2187,10 +2208,14 @@ hr: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2765,6 +2790,7 @@ hr: new_features: header: "Informirajte se o novim značajkama i ažuriranjima proizvoda." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3186,7 +3212,6 @@ hr: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Unutarnji" label_introduction_video: "Getting started video" label_invite_user: "Pozovi korisnika" @@ -3380,6 +3405,9 @@ hr: label_project_hierarchy: "Hijerarhija projekta" label_project_mappings: "Projekti" label_project_new: "Novi projekt" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projekti" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3393,7 +3421,6 @@ hr: label_project_view_all: "Pogledaj sve projekte" label_project_show_details: "Prikaži detalje o projektu" label_project_hide_details: "Sakrij detalje o projektu" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4470,15 +4497,15 @@ hr: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4765,8 +4792,6 @@ hr: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/hu.yml b/config/locales/crowdin/hu.yml index 6affc3fb944..60cbab8a33a 100644 --- a/config/locales/crowdin/hu.yml +++ b/config/locales/crowdin/hu.yml @@ -312,6 +312,25 @@ hu: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Új egyéni mezők hozzáadásához először létre kell hozni őket, még mielőtt felvenné azokat a projekthez. is_enabled_globally: "Globálisan engedélyezve van" @@ -549,7 +568,7 @@ hu: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -565,7 +584,6 @@ hu: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2154,7 +2172,10 @@ hu: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Sablon használata" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2162,10 +2183,14 @@ hu: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2719,6 +2744,7 @@ hu: new_features: header: "Itt találhatóak az új funkciók és a frissítések" learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3140,7 +3166,6 @@ hu: label_installation_guides: "Telepítési útmutató" label_integer: "Egész szám" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Belső" label_introduction_video: "Getting started video" label_invite_user: "Felhasználó meghívása" @@ -3334,6 +3359,9 @@ hu: label_project_hierarchy: "Projekt-hierarchia" label_project_mappings: "Projektek" label_project_new: "Új projekt" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projektek" label_project_list_plural: "Projekt listák" label_project_life_cycle: "Project life cycle" @@ -3347,7 +3375,6 @@ hu: label_project_view_all: "Minden projekt megtekintése" label_project_show_details: "Projekt részleteinek megjelenítése" label_project_hide_details: "Projekt részleteinek elrejtése" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4421,15 +4448,15 @@ hu: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4715,8 +4742,6 @@ hu: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/id.yml b/config/locales/crowdin/id.yml index 30750a973c5..a7927db80b7 100644 --- a/config/locales/crowdin/id.yml +++ b/config/locales/crowdin/id.yml @@ -309,6 +309,25 @@ id: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Untuk menambahkan kolom kustom baru untuk sebuah proyek, pertama-tama Anda harus membuatnya, sebelum Anda dapat menambahkannya ke proyek ini. is_enabled_globally: "Diaktifkan secara global" @@ -546,7 +565,7 @@ id: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -562,7 +581,6 @@ id: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2127,7 +2145,10 @@ id: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Gunakan templat" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2135,10 +2156,14 @@ id: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2671,6 +2696,7 @@ id: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3092,7 +3118,6 @@ id: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3286,6 +3311,9 @@ id: label_project_hierarchy: "Hirarki proyek" label_project_mappings: "Project" label_project_new: "Project baru" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Project" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3299,7 +3327,6 @@ id: label_project_view_all: "Lihat semua Project" label_project_show_details: "Tampilkan detail proyek" label_project_hide_details: "Sembunyikan detail proyek" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4369,15 +4396,15 @@ id: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4662,8 +4689,6 @@ id: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/it.yml b/config/locales/crowdin/it.yml index de90ad14054..50553ee8f5e 100644 --- a/config/locales/crowdin/it.yml +++ b/config/locales/crowdin/it.yml @@ -311,6 +311,25 @@ it: zero: nessun sottoelemento one: 1 sottoelemento other: "%{count} sottoelementi" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Per aggiungere nuovi campi personalizzati a un progetto, è necessario prima crearli. is_enabled_globally: "Abilitato a livello globale" @@ -548,7 +567,7 @@ it: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -564,7 +583,6 @@ it: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2152,7 +2170,10 @@ it: copy_options: dependencies_label: "Copia dal progetto" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Usa modello" + template_heading: "Templated projects" copy_options: dependencies_label: "Copia da modello" blank_template: @@ -2160,10 +2181,14 @@ it: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2717,6 +2742,7 @@ it: new_features: header: "Informati sulle nuove funzionalità e sugli aggiornamenti dei prodotti." learn_about: "Scopri di più su tutte le nuove funzionalità" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3138,7 +3164,6 @@ it: label_installation_guides: "Guide all'installazione" label_integer: "Intero" label_interface: "Interfaccia" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Interno" label_introduction_video: "Video introduttivo" label_invite_user: "Invita utente" @@ -3332,6 +3357,9 @@ it: label_project_hierarchy: "Gerarchia del progetto" label_project_mappings: "Progetti" label_project_new: "Nuovo progetto" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Progetti" label_project_list_plural: "Elenchi progetto" label_project_life_cycle: "Ciclo di vita del progetto" @@ -3345,7 +3373,6 @@ it: label_project_view_all: "Vedi tutti i progetti" label_project_show_details: "Mostra dettagli progetto" label_project_hide_details: "Nascondi dettagli progetto" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "Nuovo portfolio" label_program: "Programma" @@ -4420,15 +4447,15 @@ it: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4714,8 +4741,6 @@ it: L'aggiunta di ulteriori utenti supererà il limite attuale. Aggiorna il tuo piano per poter garantire che gli utenti esterni possano accedere a questa istanza. warning_user_limit_reached_instructions: > Raggiunto il limite di utenti (%{current}/%{max} utenti attivi). Si prega di contattare sales@openproject.com per aggiornare il tuo piano dell'edizione Enterprise e aggiungere ulteriori utenti. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/ja.yml b/config/locales/crowdin/ja.yml index 9df8e20e72a..0059d8f28de 100644 --- a/config/locales/crowdin/ja.yml +++ b/config/locales/crowdin/ja.yml @@ -311,6 +311,25 @@ ja: zero: 子項目はありません one: 1 個の子項目があります other: "%{count} 個の子項目があります" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > 新しいカスタムフィールドをプロジェクトに追加するには、それをこのプロジェクトに追加する前に、まず作成する必要があります。 is_enabled_globally: "グローバルで有効" @@ -548,7 +567,7 @@ ja: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -564,7 +583,6 @@ ja: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2130,7 +2148,10 @@ ja: copy_options: dependencies_label: "プロジェクトからコピー" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "テンプレートを使用" + template_heading: "Templated projects" copy_options: dependencies_label: "テンプレートからコピー" blank_template: @@ -2138,10 +2159,14 @@ ja: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2674,6 +2699,7 @@ ja: new_features: header: "新機能と製品のアップデートについて読む。" learn_about: "すべての新機能の詳細" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3095,7 +3121,6 @@ ja: label_installation_guides: "インストール ガイド" label_integer: "整数" label_interface: "インターフェイス" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "社内" label_introduction_video: "Getting started video" label_invite_user: "ユーザを招待" @@ -3289,6 +3314,9 @@ ja: label_project_hierarchy: "プロジェクトの階層構造" label_project_mappings: "プロジェクト" label_project_new: "新規プロジェクト" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "プロジェクト" label_project_list_plural: "プロジェクト一覧" label_project_life_cycle: "プロジェクトのライフ サイクル" @@ -3302,7 +3330,6 @@ ja: label_project_view_all: "全プロジェクトを表示" label_project_show_details: "プロジェクトの詳細を表示" label_project_hide_details: "プロジェクトの詳細を非表示" - label_project_initiation_request: "Project initiation request" label_portfolio: "ポートフォリオ" label_portfolio_new: "新しいポートフォリオ" label_program: "プログラム" @@ -4375,15 +4402,15 @@ ja: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4667,8 +4694,6 @@ ja: ユーザーを追加すると、現在の制限を超えます。外部ユーザーがこのサイトにアクセスできるように、プランをアップグレードしてください。 warning_user_limit_reached_instructions: > ユーザー制限(%{current}/%{max} アクティブユーザー)に達しました。 sales@openproject.com に連絡してEnterprise Editionプランをアップグレードし、ユーザーを追加してください。 - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/js-de.yml b/config/locales/crowdin/js-de.yml index af00af2970e..4754865867c 100644 --- a/config/locales/crowdin/js-de.yml +++ b/config/locales/crowdin/js-de.yml @@ -296,7 +296,7 @@ de: warning: "Bitte teilen Sie diese URL nicht mit anderen Benutzern. Jeder mit diesem Link kann die Arbeitspaket-Details ohne Konto oder Passwort anzeigen." token_name_label: "Wo werden Sie diesen Kalender nutzen?" token_name_placeholder: 'Geben sie einen Namen ein (z.B. "Telefon")' - token_name_description_text: 'If you subscribe to this calendar from multiple devices, this name will help you distinguish between them in your access tokens list.' + token_name_description_text: 'Wenn Sie diesen Kalender auf mehreren Geräten abonnieren, wird Ihnen dieser Name helfen, zwischen diesen in der Liste der Zugriffstoken zu unterscheiden.' copy_url_label: "URL kopieren" ical_generation_error_text: "Beim Generieren der Kalender-URL ist ein Fehler aufgetreten." success_message: 'Die URL "%{name}" wurde erfolgreich in Ihre Zwischenablage kopiert. Fügen Sie sie in Ihren Kalender-Client ein, um das Abonnement abzuschließen.' diff --git a/config/locales/crowdin/js-zh-TW.yml b/config/locales/crowdin/js-zh-TW.yml index 63209794cc7..d3b81b5e20d 100644 --- a/config/locales/crowdin/js-zh-TW.yml +++ b/config/locales/crowdin/js-zh-TW.yml @@ -916,7 +916,7 @@ zh-TW: workAlternative: "預估時間" remainingTime: "剩餘工時" default_queries: - manually_sorted: "新的自訂排序" + manually_sorted: "自訂排序" latest_activity: "最新活動" created_by_me: "由我建立" assigned_to_me: "分配給我" diff --git a/config/locales/crowdin/ka.yml b/config/locales/crowdin/ka.yml index 4dfc0cd2065..34cb7b211a9 100644 --- a/config/locales/crowdin/ka.yml +++ b/config/locales/crowdin/ka.yml @@ -313,6 +313,25 @@ ka: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ ka: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ ka: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ ka: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "შაბლონის გამოყენება" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ ka: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ ka: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ ka: label_installation_guides: "Installation guides" label_integer: "მთელი რიცხვი" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "შიდა" label_introduction_video: "Getting started video" label_invite_user: "მომხმარებლის მოწვევა" @@ -3335,6 +3360,9 @@ ka: label_project_hierarchy: "Project hierarchy" label_project_mappings: "პროექტები" label_project_new: "ახალი პროექტი" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "პროექტები" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ ka: label_project_view_all: "View all projects" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ ka: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ ka: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/kk.yml b/config/locales/crowdin/kk.yml index 8b544b53ed6..aa414e5f3ff 100644 --- a/config/locales/crowdin/kk.yml +++ b/config/locales/crowdin/kk.yml @@ -313,6 +313,25 @@ kk: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ kk: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ kk: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ kk: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ kk: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ kk: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ kk: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3335,6 +3360,9 @@ kk: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projects" label_project_new: "New project" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projects" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ kk: label_project_view_all: "View all projects" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ kk: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ kk: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/ko.yml b/config/locales/crowdin/ko.yml index 6d4ad4c600a..cebc88a489d 100644 --- a/config/locales/crowdin/ko.yml +++ b/config/locales/crowdin/ko.yml @@ -313,6 +313,25 @@ ko: zero: 하위 항목 없음 one: 하위 항목 1개 other: "하위 항목 %{count}개" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > 프로젝트에 새 사용자 지정 필드를 추가하려면 먼저 해당 필드를 만들어야 합니다. 그래야 이 프로젝트에 해당 필드를 추가할 수 있습니다. is_enabled_globally: "는 세계적으로 사용 가능합니다." @@ -550,7 +569,7 @@ ko: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ ko: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2131,7 +2149,10 @@ ko: copy_options: dependencies_label: "프로젝트에서 복사" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "템플릿 사용" + template_heading: "Templated projects" copy_options: dependencies_label: "템플릿에서 복사" blank_template: @@ -2139,10 +2160,14 @@ ko: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2675,6 +2700,7 @@ ko: new_features: header: "새로운 기능 및 제품 업데이트에 대해 알아보세요." learn_about: "새로운 모든 기능에 대해 자세히 알아보기" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3096,7 +3122,6 @@ ko: label_installation_guides: "설치 가이드" label_integer: "정수" label_interface: "인터페이스" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "내부" label_introduction_video: "시작하기 동영상" label_invite_user: "사용자 초대" @@ -3290,6 +3315,9 @@ ko: label_project_hierarchy: "프로젝트 계층 구조" label_project_mappings: "프로젝트" label_project_new: "새 프로젝트" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "프로젝트" label_project_list_plural: "프로젝트 목록" label_project_life_cycle: "프로젝트 수명 주기" @@ -3303,7 +3331,6 @@ ko: label_project_view_all: "모든 프로젝트 보기" label_project_show_details: "프로젝트 세부 정보 표시" label_project_hide_details: "프로젝트 세부 정보 숨기기" - label_project_initiation_request: "Project initiation request" label_portfolio: "포트폴리오" label_portfolio_new: "새 포트폴리오" label_program: "프로그램" @@ -4373,15 +4400,15 @@ ko: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4666,8 +4693,6 @@ ko: 사용자를 더 추가하면 현재 한도가 초과됩니다. 외부 사용자가 이 인스턴스에 액세스할 수 있도록 하려면 플랜을 업그레이드하세요. warning_user_limit_reached_instructions: > 사용자 제한(활성 사용자 %{current}/%{max}명)에 도달했습니다. sales@openproject.com으로 연락하여 Enterprise Edition 플랜을 업그레이드하고 사용자를 더 추가하세요. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/lt.yml b/config/locales/crowdin/lt.yml index d70995af2f5..af7e6e2b8ee 100644 --- a/config/locales/crowdin/lt.yml +++ b/config/locales/crowdin/lt.yml @@ -310,6 +310,25 @@ lt: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Norėdami pridėti naujus pritaikytus laukelius prie projekto, pirmiausia reikia juos sukurti. Tik tada yra galimybė juos pridėti prie šio projekto. is_enabled_globally: "Yra įgalintas globaliai" @@ -547,7 +566,7 @@ lt: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -563,7 +582,6 @@ lt: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2200,7 +2218,10 @@ lt: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Naudoti šabloną" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2208,10 +2229,14 @@ lt: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2807,6 +2832,7 @@ lt: new_features: header: "Skaitykite apie naujas savybes ir produkto atnaujinimus." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3228,7 +3254,6 @@ lt: label_installation_guides: "Diegimo gidai" label_integer: "Sveikasis skaičius" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Vidinis" label_introduction_video: "Getting started video" label_invite_user: "Pakviesti vartotoją" @@ -3422,6 +3447,9 @@ lt: label_project_hierarchy: "Projekto hierarchija" label_project_mappings: "Projektai" label_project_new: "Naujas projektas" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projektai" label_project_list_plural: "Projektų sąrašai" label_project_life_cycle: "Project life cycle" @@ -3435,7 +3463,6 @@ lt: label_project_view_all: "Peržiūrėti visus projektus" label_project_show_details: "Rodyti detalią projekto informaciją" label_project_hide_details: "Slėpti detalią projekto informaciją" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4511,15 +4538,15 @@ lt: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4806,8 +4833,6 @@ lt: Pridėjus papildomus naudotojus bus viršytas dabartinis apribojimas. Prašome pagerinti jūsų planą, kad užtikrintumėte, jog išoriniai naudotojai gali prieigi prie šio egzemplioriaus. warning_user_limit_reached_instructions: > Jūs pasiekėte naudotojų ribą (%{current}/%{max} aktyvūs naudotojai). Susisiekite su sales@openproject.com norėdami atnaujinti savo Enterprise versijos planą arba pridėti papildomų naudotojų. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/lv.yml b/config/locales/crowdin/lv.yml index ec2ad2711c9..45eff08bc02 100644 --- a/config/locales/crowdin/lv.yml +++ b/config/locales/crowdin/lv.yml @@ -313,6 +313,25 @@ lv: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ lv: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ lv: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2179,7 +2197,10 @@ lv: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2187,10 +2208,14 @@ lv: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2765,6 +2790,7 @@ lv: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3186,7 +3212,6 @@ lv: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Uzaicināt lietotāju" @@ -3380,6 +3405,9 @@ lv: label_project_hierarchy: "Projektu hierarhija" label_project_mappings: "Projekti" label_project_new: "Jauns projekts" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projekti" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3393,7 +3421,6 @@ lv: label_project_view_all: "Skatīt visus projektus" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4470,15 +4497,15 @@ lv: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4765,8 +4792,6 @@ lv: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/mn.yml b/config/locales/crowdin/mn.yml index abde67a7763..973c293ba73 100644 --- a/config/locales/crowdin/mn.yml +++ b/config/locales/crowdin/mn.yml @@ -313,6 +313,25 @@ mn: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ mn: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ mn: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ mn: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ mn: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ mn: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ mn: label_installation_guides: "Суулгах зааварууд" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3335,6 +3360,9 @@ mn: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projects" label_project_new: "New project" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projects" label_project_list_plural: "Төслийн жагсаалтууд" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ mn: label_project_view_all: "View all projects" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ mn: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ mn: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/ms.yml b/config/locales/crowdin/ms.yml index e9cbd59d165..00f5edb03db 100644 --- a/config/locales/crowdin/ms.yml +++ b/config/locales/crowdin/ms.yml @@ -312,6 +312,25 @@ ms: zero: tiada sub-item one: 1 sub-item other: "%{count} sub-item" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Untuk menambah ruang tersuai ke projek, anda perlu menciptanya terlebih dahulu sebelum anda boleh menambahnya ke projek ini. is_enabled_globally: "Adalah diaktifkan secara global" @@ -549,7 +568,7 @@ ms: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -565,7 +584,6 @@ ms: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2129,7 +2147,10 @@ ms: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Guna templat" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2137,10 +2158,14 @@ ms: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2673,6 +2698,7 @@ ms: new_features: header: "Baca berkenaan fitur-fitur baharu dan kemas kini produk." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3094,7 +3120,6 @@ ms: label_installation_guides: "Panduan pemasangan" label_integer: "Integer" label_interface: "Antara muka" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Dalaman" label_introduction_video: "Getting started video" label_invite_user: "Jemput pengguna" @@ -3288,6 +3313,9 @@ ms: label_project_hierarchy: "Hierarki projek" label_project_mappings: "Projek-projek" label_project_new: "Projek baharu" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projek-projek" label_project_list_plural: "Senarai projek" label_project_life_cycle: "Project life cycle" @@ -3301,7 +3329,6 @@ ms: label_project_view_all: "Lihat semua projek" label_project_show_details: "Paparkan butiran projek" label_project_hide_details: "Sembunyikan butiran projek" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4373,15 +4400,15 @@ ms: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4666,8 +4693,6 @@ ms: Menambah pengguna tambahan akan melebihi had semasa. Sila naik taraf pelan anda bagi memastikan pengguna luaran dapat mengakses contoh ini. warning_user_limit_reached_instructions: > Anda telah mencapai had pengguna anda (%{current}/%{max} pengguna aktif). Sila hubungi sales@openproject.com untuk menaik taraf pelan edisi Enterprise anda dan tambah pengguna tambahan. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/ne.yml b/config/locales/crowdin/ne.yml index e9ce426adb9..23eccb32217 100644 --- a/config/locales/crowdin/ne.yml +++ b/config/locales/crowdin/ne.yml @@ -313,6 +313,25 @@ ne: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ ne: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ ne: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ ne: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ ne: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ ne: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ ne: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3335,6 +3360,9 @@ ne: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projects" label_project_new: "New project" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projects" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ ne: label_project_view_all: "View all projects" label_project_show_details: "Show project details" label_project_hide_details: "प्रोजेक्ट विवरण लुकाउनुहोस्" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ ne: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ ne: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/nl.yml b/config/locales/crowdin/nl.yml index 03cc1d5fbdb..dfa03044dff 100644 --- a/config/locales/crowdin/nl.yml +++ b/config/locales/crowdin/nl.yml @@ -310,6 +310,25 @@ nl: zero: geen subitems one: 1 subitem other: "%{count} subitems" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Om de nieuwe aangepaste velden toevoegen aan een project moet u deze eerst maken voordat u ze aan dit project toevoegen kunt. is_enabled_globally: "Is ingeschakeld Op het hoofdniveau" @@ -547,7 +566,7 @@ nl: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -563,7 +582,6 @@ nl: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2151,7 +2169,10 @@ nl: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Sjabloon gebruiken" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2159,10 +2180,14 @@ nl: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2716,6 +2741,7 @@ nl: new_features: header: "Lees over nieuwe functies en product-updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3137,7 +3163,6 @@ nl: label_installation_guides: "Installatie gidsen" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Intern" label_introduction_video: "Getting started video" label_invite_user: "Gebruiker uitnodigen" @@ -3331,6 +3356,9 @@ nl: label_project_hierarchy: "Projecthiërarchie" label_project_mappings: "Projecten" label_project_new: "Nieuw project" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projecten" label_project_list_plural: "Projectlijsten" label_project_life_cycle: "Project life cycle" @@ -3344,7 +3372,6 @@ nl: label_project_view_all: "Bekijk alle projecten" label_project_show_details: "Toon project details" label_project_hide_details: "Verberg project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4418,15 +4445,15 @@ nl: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4711,8 +4738,6 @@ nl: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/no.yml b/config/locales/crowdin/no.yml index e8d6b60cbd6..982488e166c 100644 --- a/config/locales/crowdin/no.yml +++ b/config/locales/crowdin/no.yml @@ -313,6 +313,25 @@ zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > For å legge til nye egendefinerte felt i et prosjekt må du først opprette dem før du kan legge dem til i dette prosjektet. is_enabled_globally: "Er aktivert globalt" @@ -550,7 +569,7 @@ creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2154,7 +2172,10 @@ copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Bruk mal" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2162,10 +2183,14 @@ description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2719,6 +2744,7 @@ new_features: header: "Les om nye funksjoner og produktoppdateringer." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3140,7 +3166,6 @@ label_installation_guides: "Installasjons guider" label_integer: "Heltall" label_interface: "Grensesnitt" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Intern" label_introduction_video: "Getting started video" label_invite_user: "Inviter bruker" @@ -3334,6 +3359,9 @@ label_project_hierarchy: "Prosjekthierarki" label_project_mappings: "Prosjekter" label_project_new: "Nytt prosjekt" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Prosjekter" label_project_list_plural: "Prosjektlister" label_project_life_cycle: "Project life cycle" @@ -3347,7 +3375,6 @@ label_project_view_all: "Vis alle prosjekter" label_project_show_details: "Vis prosjektdetaljer" label_project_hide_details: "Skjul prosjektdetaljer" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4422,15 +4449,15 @@ confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4716,8 +4743,6 @@ Å legg til ekstra brukere vil overskride gjeldende grense. Vennligst oppgrader planen din for å sikre at eksterne brukere har tilgang til denne forekomsten. warning_user_limit_reached_instructions: > Du har nådd din brukergrense (%{current}/%{max} aktive brukere). Vennligst kontakt sales@openproject.com for å oppgradere din Enterprise edition plan og legg til flere brukere. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/pl.yml b/config/locales/crowdin/pl.yml index a38f124c452..b334cd1aa69 100644 --- a/config/locales/crowdin/pl.yml +++ b/config/locales/crowdin/pl.yml @@ -310,6 +310,25 @@ pl: zero: brak podelementów one: 1 podelement other: "Liczba podelementów: %{count}" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Aby dodać do projektu nowe pola niestandardowe, najpierw należy je utworzyć. is_enabled_globally: "Jest włączony globalnie" @@ -547,7 +566,7 @@ pl: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -563,7 +582,6 @@ pl: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2199,7 +2217,10 @@ pl: copy_options: dependencies_label: "Skopiuj z projektu" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Użyj szablonu" + template_heading: "Templated projects" copy_options: dependencies_label: "Skopiuj z szablonu" blank_template: @@ -2207,10 +2228,14 @@ pl: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2806,6 +2831,7 @@ pl: new_features: header: "Przeczytaj o nowych funkcjach i aktualizacjach produktów." learn_about: "Dowiedz się więcej o wszystkich nowych funkcjach" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3227,7 +3253,6 @@ pl: label_installation_guides: "Przewodniki instalacyjne" label_integer: "Liczba całkowita" label_interface: "Interfejs" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Wewnętrzne" label_introduction_video: "Film wprowadzający" label_invite_user: "Zaproś użytkownika" @@ -3421,6 +3446,9 @@ pl: label_project_hierarchy: "Hierarchia projektu" label_project_mappings: "Projekty" label_project_new: "Nowy projekt" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projekty" label_project_list_plural: "Listy projektów" label_project_life_cycle: "Cykl życia projektu" @@ -3434,7 +3462,6 @@ pl: label_project_view_all: "Zobacz wszystkie projekty" label_project_show_details: "Pokaż szczegóły projektu" label_project_hide_details: "Ukryj szczegóły projektu" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "Nowe portfolio" label_program: "Program" @@ -4510,15 +4537,15 @@ pl: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4806,8 +4833,6 @@ pl: Dodanie dodatkowych użytkowników spowoduje przekroczenie bieżącego limitu. Aby zapewnić użytkownikom zewnętrznym dostęp do tego wystąpienia, przejdź na wyższy plan. warning_user_limit_reached_instructions: > Osiągnięto limit użytkownika (%{current}/%{max} aktywnych użytkowników). Skontaktuj się z sales@openproject.com w celu uaktualnienia planu Enterprise Edition i dodania kont użytkowników. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/pt-BR.yml b/config/locales/crowdin/pt-BR.yml index 14195d157a4..3d1b3448633 100644 --- a/config/locales/crowdin/pt-BR.yml +++ b/config/locales/crowdin/pt-BR.yml @@ -312,6 +312,25 @@ pt-BR: zero: sem subitens one: 1 subitem other: "%{count} subitens" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Para adicionar campos personalizados a um projeto é necessário criá-los primeiro para depois adicioná-los a este projeto. is_enabled_globally: "Está habilitado globalmente" @@ -549,7 +568,7 @@ pt-BR: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -565,7 +584,6 @@ pt-BR: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2152,7 +2170,10 @@ pt-BR: copy_options: dependencies_label: "Copiar do projeto" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Usar modelo" + template_heading: "Templated projects" copy_options: dependencies_label: "Copiar do modelo" blank_template: @@ -2160,10 +2181,14 @@ pt-BR: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2717,6 +2742,7 @@ pt-BR: new_features: header: "Leia sobre novos recursos e atualizações do produto." learn_about: "Saiba mais sobre todos os novos recursos" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3138,7 +3164,6 @@ pt-BR: label_installation_guides: "Guias de instalação" label_integer: "Número inteiro" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Interno" label_introduction_video: "Vídeo de introdução" label_invite_user: "Convidar usuário" @@ -3332,6 +3357,9 @@ pt-BR: label_project_hierarchy: "Hierarquia de projeto" label_project_mappings: "Projetos" label_project_new: "Novo projeto" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projetos" label_project_list_plural: "Listas de projeto" label_project_life_cycle: "Ciclo de vida do projeto" @@ -3345,7 +3373,6 @@ pt-BR: label_project_view_all: "Ver todos os projetos" label_project_show_details: "Mostrar detalhes do projeto" label_project_hide_details: "Ocultar detalhes do projeto" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfólio" label_portfolio_new: "Novo portfólio" label_program: "Programa" @@ -4419,15 +4446,15 @@ pt-BR: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4712,8 +4739,6 @@ pt-BR: A adição de usuários adicionais excederá o limite atual. Atualize o seu plano para poder garantir que os usuários externos possam acessar a esta instância. warning_user_limit_reached_instructions: > Você atingiu seu limite de usuários (%{current}/%{max} usuários ativos). Entre em contato com sales@openproject.com para atualizar seu plano da edição Enterprise e adicionar novos usuários. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/pt-PT.yml b/config/locales/crowdin/pt-PT.yml index 6f981d27917..371936d0b9b 100644 --- a/config/locales/crowdin/pt-PT.yml +++ b/config/locales/crowdin/pt-PT.yml @@ -311,6 +311,25 @@ pt-PT: zero: sem sub-itens one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Para adicionar novos campos personalizados a um projeto, primeiro precisa de criá-los para depois adicioná-los a este projeto. is_enabled_globally: "Ativado a nível global" @@ -548,7 +567,7 @@ pt-PT: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -564,7 +583,6 @@ pt-PT: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2152,7 +2170,10 @@ pt-PT: copy_options: dependencies_label: "Copiar do projeto" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Utilizar modelo" + template_heading: "Templated projects" copy_options: dependencies_label: "Copiar do modelo" blank_template: @@ -2160,10 +2181,14 @@ pt-PT: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2717,6 +2742,7 @@ pt-PT: new_features: header: "Leia sobre novas funcionalidades e atualizações de produtos." learn_about: "Mais informações sobre todas as novas funcionalidades" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3138,7 +3164,6 @@ pt-PT: label_installation_guides: "Guias de instalação" label_integer: "Número Inteiro" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Interno" label_introduction_video: "Vídeo de introdução" label_invite_user: "Convidar utilizador" @@ -3332,6 +3357,9 @@ pt-PT: label_project_hierarchy: "Hierarquia do projeto" label_project_mappings: "Projetos" label_project_new: "Novo Projecto" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projetos" label_project_list_plural: "Listas do projeto" label_project_life_cycle: "Ciclo de vida do projeto" @@ -3345,7 +3373,6 @@ pt-PT: label_project_view_all: "Ver todos os projetos" label_project_show_details: "Mostrar detalhes do projeto" label_project_hide_details: "Ocultar detalhes do projeto" - label_project_initiation_request: "Project initiation request" label_portfolio: "Carteira" label_portfolio_new: "Nova carteira" label_program: "Programa" @@ -4417,15 +4444,15 @@ pt-PT: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4711,8 +4738,6 @@ pt-PT: A adição de utilizadores adicionais excederá o limite atual. Atualize o seu plano para poder garantir que os utilizadores externos possam aceder a esta instância. warning_user_limit_reached_instructions: > Atingiu o seu limite de utilizadores (%{current}/%{max} utilizadores ativos). Entre em contato com sales@openproject.com para atualizar o seu plano da edição Enterprise e adicionar novos utilizadores. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/ro.yml b/config/locales/crowdin/ro.yml index 320234931fb..dc4e3187c89 100644 --- a/config/locales/crowdin/ro.yml +++ b/config/locales/crowdin/ro.yml @@ -313,6 +313,25 @@ ro: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Dacă vrei să adaugi noi câmpuri personalizate în cadrul unui proiect va trebui, mai întâi, să le creezi. is_enabled_globally: "Este activat/ă la nivel global" @@ -550,7 +569,7 @@ ro: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ ro: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2179,7 +2197,10 @@ ro: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Utilizează șablon" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2187,10 +2208,14 @@ ro: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2765,6 +2790,7 @@ ro: new_features: header: "Citește despre noile caracteristici și actualizări de produse." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3186,7 +3212,6 @@ ro: label_installation_guides: "Ghiduri de instalare" label_integer: "Număr întreg" label_interface: "Interfață" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Intern" label_introduction_video: "Getting started video" label_invite_user: "Invită utilizator" @@ -3380,6 +3405,9 @@ ro: label_project_hierarchy: "Ierarhie de proiecte" label_project_mappings: "Proiecte" label_project_new: "Proiect nou" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Proiecte" label_project_list_plural: "Listă proiecte" label_project_life_cycle: "Ciclul de viață proiect" @@ -3393,7 +3421,6 @@ ro: label_project_view_all: "Vizualizează toate proiectele" label_project_show_details: "Arată detaliile proietului" label_project_hide_details: "Ascunde detaliile proiectului" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4469,15 +4496,15 @@ ro: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4764,8 +4791,6 @@ ro: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > Ai atins limita de utilizatori (%{current}/%{max} utilizatori activi). Te rog să contactezi sales@openproject.com pentru a vă actualiza planul ediției Enterprise și a adăuga utilizatori suplimentari. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/ru.yml b/config/locales/crowdin/ru.yml index a3756e7711d..2343615f7da 100644 --- a/config/locales/crowdin/ru.yml +++ b/config/locales/crowdin/ru.yml @@ -312,6 +312,25 @@ ru: zero: нет подпунктов one: 1 подпункт other: "%{count} подпунктов" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Прежде чем добавлять настраиваемые поля в проект, нужно создать их. is_enabled_globally: "Разрешено в глобальном масштабе" @@ -549,7 +568,7 @@ ru: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -565,7 +584,6 @@ ru: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2201,7 +2219,10 @@ ru: copy_options: dependencies_label: "Копировать из проекта" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Использовать шаблон" + template_heading: "Templated projects" copy_options: dependencies_label: "Копировать из шаблона" blank_template: @@ -2209,10 +2230,14 @@ ru: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2808,6 +2833,7 @@ ru: new_features: header: "Читайте о новых возможностях и обновлениях продуктов." learn_about: "Узнайте больше о всех новых функциях" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3229,7 +3255,6 @@ ru: label_installation_guides: "Инструкции по установке" label_integer: "Целое число" label_interface: "Интерфейс" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Внутренние" label_introduction_video: "Видео о начале работы" label_invite_user: "Пригласить пользователя" @@ -3423,6 +3448,9 @@ ru: label_project_hierarchy: "Иерархия проектов" label_project_mappings: "Проекты" label_project_new: "Новый проект" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Проекты" label_project_list_plural: "Списки проектов" label_project_life_cycle: "Жизненный цикл проекта" @@ -3436,7 +3464,6 @@ ru: label_project_view_all: "Просмотреть все проекты" label_project_show_details: "Показать детали проекта" label_project_hide_details: "Скрыть детали проекта" - label_project_initiation_request: "Project initiation request" label_portfolio: "Портфолио" label_portfolio_new: "Новое портфолио" label_program: "Программа" @@ -4512,15 +4539,15 @@ ru: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4807,8 +4834,6 @@ ru: Добавление дополнительных пользователей превысит текущий лимит. Пожалуйста, обновите свой план , чтобы гарантировать, что внешние пользователи смогут получить доступ к этому экземпляру. warning_user_limit_reached_instructions: > Вы достигли вашего пользовательского предела (%{current}/%{max} активных пользователей). Пожалуйста, свяжитесь с sales@openproject.com для обновления своего плана до Корпоративной версии и добавьте дополнительных пользователей. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/rw.yml b/config/locales/crowdin/rw.yml index 9abf0a224c8..f4cb6077455 100644 --- a/config/locales/crowdin/rw.yml +++ b/config/locales/crowdin/rw.yml @@ -313,6 +313,25 @@ rw: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ rw: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ rw: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ rw: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ rw: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ rw: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ rw: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3335,6 +3360,9 @@ rw: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projects" label_project_new: "New project" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projects" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ rw: label_project_view_all: "View all projects" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ rw: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ rw: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/si.yml b/config/locales/crowdin/si.yml index 8079b730b66..6918baa45ad 100644 --- a/config/locales/crowdin/si.yml +++ b/config/locales/crowdin/si.yml @@ -313,6 +313,25 @@ si: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > ව්යාපෘතියකට නව අභිරුචි ක්ෂේත්ර එකතු කිරීම සඳහා ඔබ මුලින්ම මෙම ව්යාපෘතියට එකතු කිරීමට පෙර ඒවා නිර්මාණය කළ යුතුය. is_enabled_globally: "ගෝලීයව සබල කර ඇත" @@ -550,7 +569,7 @@ si: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ si: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ si: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ si: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ si: new_features: header: "නව විශේෂාංග සහ නිෂ්පාදන යාවත්කාලීන කිරීම් ගැන කියවන්න." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ si: label_installation_guides: "Installation guides" label_integer: "නිඛිල" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "අභ්යන්තර" label_introduction_video: "Getting started video" label_invite_user: "පරිශීලකයාට ආරාධනා කරන්න" @@ -3335,6 +3360,9 @@ si: label_project_hierarchy: "ව්යාපෘති ධූරාවලිය" label_project_mappings: "ව්‍යාපෘති" label_project_new: "නව ව්යාපෘතිය" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "ව්‍යාපෘති" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ si: label_project_view_all: "සියලුම ව්යාපෘති බලන්න" label_project_show_details: "ව්යාපෘති විස්තර පෙන්වන්න" label_project_hide_details: "ව්යාපෘති විස්තර සඟවන්න" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ si: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ si: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/sk.yml b/config/locales/crowdin/sk.yml index 636b44c15c3..9e9f3c6c1a5 100644 --- a/config/locales/crowdin/sk.yml +++ b/config/locales/crowdin/sk.yml @@ -313,6 +313,25 @@ sk: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Ak chcete priradiť nové vlastné pole do projektu, je potrebné ich vytvoriť ako prvé. Následne je ich možné pridať v tomto projekte. is_enabled_globally: "Je povolené globálne" @@ -550,7 +569,7 @@ sk: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ sk: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2203,7 +2221,10 @@ sk: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Použiť šablónu" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2211,10 +2232,14 @@ sk: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2810,6 +2835,7 @@ sk: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3231,7 +3257,6 @@ sk: label_installation_guides: "Installation guides" label_integer: "Celé číslo" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Interné" label_introduction_video: "Getting started video" label_invite_user: "Pozvať používateľa" @@ -3425,6 +3450,9 @@ sk: label_project_hierarchy: "Hierarchia projektu" label_project_mappings: "Projekty" label_project_new: "Nový projekt" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projekty" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3438,7 +3466,6 @@ sk: label_project_view_all: "Zobraziť všetky projekty" label_project_show_details: "Zobraziť detaily projektu" label_project_hide_details: "Skryť detaily projektu" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4516,15 +4543,15 @@ sk: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4812,8 +4839,6 @@ sk: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/sl.yml b/config/locales/crowdin/sl.yml index 1cde174bc6b..4613ba41674 100644 --- a/config/locales/crowdin/sl.yml +++ b/config/locales/crowdin/sl.yml @@ -312,6 +312,25 @@ sl: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Če želite projektu dodati nova polja po meri, jih morate najprej ustvariti, preden jih lahko dodate v ta projekt. is_enabled_globally: "Omogočeno po vsem svetu" @@ -549,7 +568,7 @@ sl: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -565,7 +584,6 @@ sl: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2202,7 +2220,10 @@ sl: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Uporabi predlogo" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2210,10 +2231,14 @@ sl: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2809,6 +2834,7 @@ sl: new_features: header: "Preberite o novih funkcijah in posodobitvah izdelka." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3230,7 +3256,6 @@ sl: label_installation_guides: "Installation guides" label_integer: "Celo število" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Notranji" label_introduction_video: "Getting started video" label_invite_user: "Povabi uporabnika" @@ -3424,6 +3449,9 @@ sl: label_project_hierarchy: "Struktura projekta" label_project_mappings: "Projekti" label_project_new: "Nov projekt" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projekti" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3437,7 +3465,6 @@ sl: label_project_view_all: "Prikaži vse projekte" label_project_show_details: "Prikaži podrobnosti projekta" label_project_hide_details: "Skrij podrobnosti projekta" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4515,15 +4542,15 @@ sl: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4811,8 +4838,6 @@ sl: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/sr.yml b/config/locales/crowdin/sr.yml index 410da5c910f..0ec32135207 100644 --- a/config/locales/crowdin/sr.yml +++ b/config/locales/crowdin/sr.yml @@ -313,6 +313,25 @@ sr: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ sr: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ sr: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2179,7 +2197,10 @@ sr: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2187,10 +2208,14 @@ sr: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2765,6 +2790,7 @@ sr: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3186,7 +3212,6 @@ sr: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3380,6 +3405,9 @@ sr: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projects" label_project_new: "New project" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projects" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3393,7 +3421,6 @@ sr: label_project_view_all: "View all projects" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4470,15 +4497,15 @@ sr: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4765,8 +4792,6 @@ sr: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/sv.yml b/config/locales/crowdin/sv.yml index 8597a1d6397..bcf29b75e33 100644 --- a/config/locales/crowdin/sv.yml +++ b/config/locales/crowdin/sv.yml @@ -313,6 +313,25 @@ sv: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Innan du kan lägga till nya anpassade fält till ett projekt måste du skapa dessa. is_enabled_globally: "Är aktiverad globalt" @@ -550,7 +569,7 @@ sv: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ sv: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ sv: copy_options: dependencies_label: "Kopiera från projekt" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Använd mall" + template_heading: "Templated projects" copy_options: dependencies_label: "Kopiera från mall" blank_template: @@ -2163,10 +2184,14 @@ sv: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ sv: new_features: header: "Läs om nya funktioner och produktuppdateringar." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ sv: label_installation_guides: "Installation guides" label_integer: "Heltal" label_interface: "Gränssnitt" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Intern" label_introduction_video: "Getting started video" label_invite_user: "Bjud in användare" @@ -3335,6 +3360,9 @@ sv: label_project_hierarchy: "Projekthierarki" label_project_mappings: "Projekt" label_project_new: "Nytt projekt" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projekt" label_project_list_plural: "Projektlistor" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ sv: label_project_view_all: "Visa alla projekt" label_project_show_details: "Visa projektdetaljer" label_project_hide_details: "Dölj projektdetaljer" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfölj" label_portfolio_new: "Ny portfölj" label_program: "Program" @@ -4421,15 +4448,15 @@ sv: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4714,8 +4741,6 @@ sv: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/th.yml b/config/locales/crowdin/th.yml index 9b2fc36cf04..49f45bf070d 100644 --- a/config/locales/crowdin/th.yml +++ b/config/locales/crowdin/th.yml @@ -313,6 +313,25 @@ th: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ th: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ th: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2131,7 +2149,10 @@ th: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2139,10 +2160,14 @@ th: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2675,6 +2700,7 @@ th: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3096,7 +3122,6 @@ th: label_installation_guides: "Installation guides" label_integer: "จำนวนเต็ม" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "ภายใน" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3290,6 +3315,9 @@ th: label_project_hierarchy: "Project hierarchy" label_project_mappings: "โครงการ" label_project_new: "โครงการใหม่" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "โครงการ" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3303,7 +3331,6 @@ th: label_project_view_all: "ดูโครงการทั้งหมด" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4376,15 +4403,15 @@ th: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4669,8 +4696,6 @@ th: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/tr.yml b/config/locales/crowdin/tr.yml index 2f684ee7da7..fe24aaa0707 100644 --- a/config/locales/crowdin/tr.yml +++ b/config/locales/crowdin/tr.yml @@ -314,6 +314,25 @@ tr: zero: alt öğe yok one: 1 alt öğe other: "%{count} alt öğe" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Bir projeye yeni özel alanlar eklemeden önce onları oluşturmalısınız. is_enabled_globally: "Genel için etkinleştirildi" @@ -551,7 +570,7 @@ tr: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -567,7 +586,6 @@ tr: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ tr: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Şablon kullan" + template_heading: "Templated projects" copy_options: dependencies_label: "Şablondan kopyala" blank_template: @@ -2163,10 +2184,14 @@ tr: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ tr: new_features: header: "Yeni özellikler ve ürün güncellemeleri hakkında bilgi edinin." learn_about: "Tüm yeni özellikler hakkında daha fazla bilgi edinin" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ tr: label_installation_guides: "Kurulum kılavuzları" label_integer: "Tamsayı" label_interface: "Arayüz" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Dahili" label_introduction_video: "Getting started video" label_invite_user: "Kullanıcı davet et" @@ -3335,6 +3360,9 @@ tr: label_project_hierarchy: "Proje hiyerarşisi" label_project_mappings: "Projeler" label_project_new: "Yeni proje" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projeler" label_project_list_plural: "Proje listesi" label_project_life_cycle: "Proje yaşam döngüsü" @@ -3348,7 +3376,6 @@ tr: label_project_view_all: "Tüm projeleri görüntüle" label_project_show_details: "Proje detaylarını göster" label_project_hide_details: "Proje detaylarını gizle" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portföy" label_portfolio_new: "Yeni portföy" label_program: "Program" @@ -4421,15 +4448,15 @@ tr: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4714,8 +4741,6 @@ tr: Ek kullanıcı eklenmesi mevcut sınırı aşacaktır. Harici kullanıcıların bu kuruluma erişebilmesinden emin olmak için planınızı yükseltin. warning_user_limit_reached_instructions: > Kullanıcı sınırınıza ulaştınız (%{current}/%{max} aktif kullanıcılar). Enterprise sürüm planınızı yükseltmek ve ek kullanıcılar eklemek için lütfen sales@openproject.com adresine başvurun. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/uk.yml b/config/locales/crowdin/uk.yml index ea5a7ab54aa..9a0299dbce9 100644 --- a/config/locales/crowdin/uk.yml +++ b/config/locales/crowdin/uk.yml @@ -310,6 +310,25 @@ uk: zero: немає піделементів one: 1 піделемент other: "Піделементів: %{count}" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Щоб додати нові користувальницькі поля до проекту, спочатку потрібно створити їх, перш ніж ви зможете додати їх до цього проекту. is_enabled_globally: "Увімкнено у всьому світі" @@ -547,7 +566,7 @@ uk: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -563,7 +582,6 @@ uk: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2197,7 +2215,10 @@ uk: copy_options: dependencies_label: "Копіювати з проєкту" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Використовувати шаблон" + template_heading: "Templated projects" copy_options: dependencies_label: "Копіювати з шаблона" blank_template: @@ -2205,10 +2226,14 @@ uk: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2804,6 +2829,7 @@ uk: new_features: header: "Читайте про нові функції і оновлення продуктів." learn_about: "Дізнайтеся більше про всі нові функції" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3225,7 +3251,6 @@ uk: label_installation_guides: "Інструкції зі встановлення" label_integer: "Ціле число" label_interface: "Інтерфейс" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Власне" label_introduction_video: "Відео про початок роботи" label_invite_user: "Запросити користувача" @@ -3419,6 +3444,9 @@ uk: label_project_hierarchy: "Ієрархія проектів" label_project_mappings: "Проєкти" label_project_new: "Новий проект" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Проєкти" label_project_list_plural: "Списки проєкту" label_project_life_cycle: "Життєвий цикл проєкту" @@ -3432,7 +3460,6 @@ uk: label_project_view_all: "Переглянути всi проекти" label_project_show_details: "Показати деталі проекту" label_project_hide_details: "Приховати деталі проекту" - label_project_initiation_request: "Project initiation request" label_portfolio: "Портфель" label_portfolio_new: "Новий портфель" label_program: "Програма" @@ -4509,15 +4536,15 @@ uk: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4804,8 +4831,6 @@ uk: Додавання користувачів призведе до перевищення поточного ліміту. Підвищте рівень свого плану, щоб забезпечити доступ до цього екземпляра зовнішнім користувачам. warning_user_limit_reached_instructions: > Ви досягли обмеження користувача (%{current}/%{max} активних користувачів). Напишіть на адресу sales@openproject.com, щоб перейти на версію Enterprise і додати більше користувачів. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/uz.yml b/config/locales/crowdin/uz.yml index f1dda6e7f08..320f5e51621 100644 --- a/config/locales/crowdin/uz.yml +++ b/config/locales/crowdin/uz.yml @@ -313,6 +313,25 @@ uz: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > To add new custom fields to a project you first need to create them before you can add them to this project. is_enabled_globally: "Is enabled globally" @@ -550,7 +569,7 @@ uz: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ uz: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2155,7 +2173,10 @@ uz: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Use template" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2163,10 +2184,14 @@ uz: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2720,6 +2745,7 @@ uz: new_features: header: "Read about new features and product updates." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3141,7 +3167,6 @@ uz: label_installation_guides: "Installation guides" label_integer: "Integer" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Internal" label_introduction_video: "Getting started video" label_invite_user: "Invite user" @@ -3335,6 +3360,9 @@ uz: label_project_hierarchy: "Project hierarchy" label_project_mappings: "Projects" label_project_new: "New project" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Projects" label_project_list_plural: "Project lists" label_project_life_cycle: "Project life cycle" @@ -3348,7 +3376,6 @@ uz: label_project_view_all: "View all projects" label_project_show_details: "Show project details" label_project_hide_details: "Hide project details" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4423,15 +4450,15 @@ uz: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4717,8 +4744,6 @@ uz: Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this instance. warning_user_limit_reached_instructions: > You reached your user limit (%{current}/%{max} active users). Please contact sales@openproject.com to upgrade your Enterprise edition plan and add additional users. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/vi.yml b/config/locales/crowdin/vi.yml index a90cf5614b9..f018c12f312 100644 --- a/config/locales/crowdin/vi.yml +++ b/config/locales/crowdin/vi.yml @@ -313,6 +313,25 @@ vi: zero: no sub-items one: 1 sub-item other: "%{count} sub-items" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > Để thêm các trường tùy chỉnh mới vào một dự án, trước tiên bạn cần tạo chúng trước khi có thể thêm vào dự án này. is_enabled_globally: "Được bật toàn cầu" @@ -550,7 +569,7 @@ vi: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -566,7 +585,6 @@ vi: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2131,7 +2149,10 @@ vi: copy_options: dependencies_label: "Copy from project" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "Sử dụng mẫu" + template_heading: "Templated projects" copy_options: dependencies_label: "Copy from template" blank_template: @@ -2139,10 +2160,14 @@ vi: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2675,6 +2700,7 @@ vi: new_features: header: "Đọc về các tính năng mới và cập nhật sản phẩm." learn_about: "Learn more about all new features" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3096,7 +3122,6 @@ vi: label_installation_guides: "Hướng dẫn cài đặt" label_integer: "Số nguyên" label_interface: "Interface" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "Nội bộ" label_introduction_video: "Getting started video" label_invite_user: "Mời người dùng" @@ -3290,6 +3315,9 @@ vi: label_project_hierarchy: "Phân cấp dự án" label_project_mappings: "Các dự án" label_project_new: "Dự án mới" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "Các dự án" label_project_list_plural: "Danh sách dự án" label_project_life_cycle: "Project life cycle" @@ -3303,7 +3331,6 @@ vi: label_project_view_all: "Xem tất cả các dự án" label_project_show_details: "Hiển thị chi tiết dự án" label_project_hide_details: "Ẩn chi tiết Dự án" - label_project_initiation_request: "Project initiation request" label_portfolio: "Portfolio" label_portfolio_new: "New portfolio" label_program: "Program" @@ -4376,15 +4403,15 @@ vi: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4668,8 +4695,6 @@ vi: Thêm người dùng bổ sung sẽ vượt quá giới hạn hiện tại. Vui lòng nâng cấp gói của bạn để đảm bảo người dùng bên ngoài có thể truy cập vào phiên bản này. warning_user_limit_reached_instructions: > Bạn đã đạt đến giới hạn người dùng của mình (%{current}/%{max} người dùng hoạt động). Vui lòng liên hệ với sales@openproject.com để nâng cấp gói Enterprise của bạn và thêm người dùng bổ sung. - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/zh-CN.yml b/config/locales/crowdin/zh-CN.yml index 9f688a5d528..61c2bd15900 100644 --- a/config/locales/crowdin/zh-CN.yml +++ b/config/locales/crowdin/zh-CN.yml @@ -310,6 +310,25 @@ zh-CN: zero: 无子项目 one: 1 个子项目 other: "%{count} 个子项目" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > 要向项目添加新的自定义字段,您需要先创建字段,然后才能将其添加到此项目中。 is_enabled_globally: "已全局启用" @@ -547,7 +566,7 @@ zh-CN: creation_wizard: export: description_attachment_export: "The generated artifact will be saved as a PDF attachment to the artifact work package." - description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders. At the moment only Nextcloud file storages are supported." + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "Select which of the configured external file storages should be used." external_file_storage: "External file storage" label_artifact_export: "Artifact export" @@ -563,7 +582,6 @@ zh-CN: wizard: sidebar_content_title: "Content" sections: "Sections" - title: "Project initiation request" no_help_text: "This attribute has no help text defined." success: "Project attributes have been saved successfully." progress_label: "%{current} of %{total}" @@ -2127,7 +2145,10 @@ zh-CN: copy_options: dependencies_label: "从项目复制" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "使用模板" + template_heading: "Templated projects" copy_options: dependencies_label: "从模板复制" blank_template: @@ -2135,10 +2156,14 @@ zh-CN: description: Start from scratch. Manually add project attributes, members and modules. blank_description: No description provided. create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "Blank portfolio" description: Start from scratch. Manually add portfolio attributes, members and modules. create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "Blank program" description: Start from scratch. Manually add program attributes, members and modules. @@ -2671,6 +2696,7 @@ zh-CN: new_features: header: "了解新功能和产品更新。" learn_about: "详细了解所有新功能" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3092,7 +3118,6 @@ zh-CN: label_installation_guides: "安装指南" label_integer: "整数" label_interface: "界面" - label_interlinked_role_assignment: "Interlinked Role Assignment" label_internal: "内部" label_introduction_video: "入门指南视频" label_invite_user: "邀请用户" @@ -3286,6 +3311,9 @@ zh-CN: label_project_hierarchy: "项目层次结构" label_project_mappings: "项目" label_project_new: "新的项目" + label_project_initiation_request: "Project initiation request" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "项目" label_project_list_plural: "项目列表" label_project_life_cycle: "项目生命周期" @@ -3299,7 +3327,6 @@ zh-CN: label_project_view_all: "查看所有项目" label_project_show_details: "显示项目详细信息" label_project_hide_details: "隐藏项目详细信息" - label_project_initiation_request: "Project initiation request" label_portfolio: "项目组合" label_portfolio_new: "新项目组合" label_program: "计划" @@ -4367,15 +4394,15 @@ zh-CN: confirmation_message: "The initiation request wizard will no longer be available to new projects based on this template. Project managers and project owners will need to manually configure and fill out the relevant information in the Project overview." checkbox_message: "I understand that this action is not reversible" name: - artefact_name: "Artefact name" - artefact_name_caption: "Choose the name for this artefact that your project management framework recommends." + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "Project initiation request" project_creation_wizard: "Project creation wizard" project_mandate: "Project mandate" submission: work_package_type: "Work package type" - work_package_type_caption: "The work package type that should be used to store the completed artefact." + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "Status when submitted" status_when_submitted_caption: "The status the generated work package will transition to once the request is submitted." send_confirmation_email: "Send confirmation email to the user who submitted the project initiation request" @@ -4659,8 +4686,6 @@ zh-CN: 添加额外的用户将超出当前限制。请升级您的计划,以确保外部用户能够访问此实例。 warning_user_limit_reached_instructions: > 您达到了用户限制(%{current}/%{max}活跃用户)。 请联系sales@openproject.com以升级您的Enterprise edition计划并添加其他用户。 - warning_interlinking_custom_field_with_role_html: > - Warning: You are about to link a custom field with a role. This will give users with the "Edit Project Attributes" permission to add members to the project and they will be assigned the linked role. This may lead to privilege escalation because users can assign themselves higher privileges than intended. Please make sure you understand the implications of this action. warning_protocol_mismatch_html: > warning_bar: diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index 23a8c89f373..67cb0868f55 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -312,6 +312,25 @@ zh-TW: zero: 無子項目 one: 1 個子項目 other: "%{count} 子項目" + role_assignment: + title: Role Assignment + description: You can automatically grant a certain project role to any user assigned to this project attribute, regardless of that user’s original role in that project. + warning: Depending on the role selected below, the user assigned to this project attribute might gain significantly more permissions than they previously had, including the ability to add new members and elevate their role. + role_field_label: "Project Role" + role_field_caption: This project role will automatically be granted to any user assigned to this project attribute + review_hint: > + There are %{user_count} who are already assigned to this project attribute in various projects. They might get additional permissions and be added to projects they did not previously have access to. + review_button: Review users and permissions + dialog: + title: "Overview of users and permissions" + change: Change + changes: + new_member: Will be added as a member + remove_member: Will be removed as a member + gain_and_lose_role: Will lose role ‘%{old_role}’ and gain role ‘%{new_role}’ + gain_role: Will gain role ‘%{new_role}’ + lose_role: Will lose role ‘%{old_role}’ + no_change: No changes text_add_new_custom_field: > 要加入客製欄位至一個專案,您必須先建立欄位才能將它們加入至此專案。 is_enabled_globally: "已全域啟用" @@ -549,7 +568,7 @@ zh-TW: creation_wizard: export: description_attachment_export: "產生的產物將會以 PDF 附件的形式,儲存到該產物的工作套件中。" - description_file_link_export: "該產物的工作套件將包含一個指向外部檔案儲存庫中 PDF 的檔案連結。此功能需要可正常運作且具備自動管理專案資料夾的檔案儲存服務。目前僅支援 Nextcloud 檔案儲。" + description_file_link_export: "The artifact work package will have a file link to a PDF stored in an external file storage. Requires a working file storage with automatically-managed project folders for this project. At the moment only Nextcloud file storages are supported." description_file_storage_selection: "選擇應使用哪個已設定的外部檔案儲存空間。" external_file_storage: "外部存儲空間" label_artifact_export: "產物匯出" @@ -565,7 +584,6 @@ zh-TW: wizard: sidebar_content_title: "內容" sections: "區段" - title: "專案啟動請求" no_help_text: "此屬性未定義任何說明文字。" success: "專案屬性已成功儲存。" progress_label: "%{current} of %{total}" @@ -1176,12 +1194,12 @@ zh-TW: off_track: "進度落後" finished: "已完成" discontinued: "已中止" - project_creation_wizard_assignee_custom_field: "Assignee when submitted" - project_creation_wizard_notification_text: "Notification text" - project_creation_wizard_send_confirmation_email: "Confirmation email" - project_creation_wizard_status_when_submitted: "Status when submitted" - project_creation_wizard_work_package_comment: "Work package comment" - project_creation_wizard_work_package_type: "Work package type" + project_creation_wizard_assignee_custom_field: "提交時的執行者" + project_creation_wizard_notification_text: "通知文字" + project_creation_wizard_send_confirmation_email: "確認電子郵件" + project_creation_wizard_status_when_submitted: "提交時的狀態" + project_creation_wizard_work_package_comment: "工作套件留言" + project_creation_wizard_work_package_type: "工作套件類型" template: "範本" templated: "範本專案" templated_value: @@ -1826,9 +1844,9 @@ zh-TW: other: "以下的欄位有問題:" field_erroneous_label: "此欄位不正確: %{full_errors}\n請輸入一個有效的值!" messages: - unsupported_storage_type: "is not a supported storage type." - storage_error: "There was an error with the storage connection." - invalid_input: "The input is invalid." + unsupported_storage_type: "不是支援的儲存類型。" + storage_error: "儲存連線出錯。" + invalid_input: "輸入無效。" activity: item: created_by_on: "由 %{user} 於 %{datetime} 新增" @@ -2127,7 +2145,10 @@ zh-TW: copy_options: dependencies_label: "從專案複製" create_project: + attributes_heading: "Required attributes" + details_heading: "Project details" template_label: "使用範本" + template_heading: "Templated projects" copy_options: dependencies_label: "從範本複製" blank_template: @@ -2135,10 +2156,14 @@ zh-TW: description: 從零開始。手動新增專案屬性、成員和模組。 blank_description: 未提供說明。 create_portfolio: + details_heading: "Portfolio details" + template_heading: "Templated portfolios" blank_template: label: "空白組合" description: 從零開始。手動新增組合屬性、成員和模組。 create_program: + details_heading: "Program details" + template_heading: "Templated programs" blank_template: label: "空白方案" description: 從零開始手動新增方案屬性、成員和模組。 @@ -2671,6 +2696,7 @@ zh-TW: new_features: header: "閱讀關於新功能和產品更新的資訊。" learn_about: "進一步瞭解所有新功能" + missing: "There are no highlighted features yet." #We need to include the version to invalidate outdated translations in other locales "16_6": new_features_title: > @@ -3092,7 +3118,6 @@ zh-TW: label_installation_guides: "安裝說明" label_integer: "整數" label_interface: "介面" - label_interlinked_role_assignment: "相互關聯的角色分配" label_internal: "內部" label_introduction_video: "入門影片" label_invite_user: "邀請使用者" @@ -3133,8 +3158,8 @@ zh-TW: label_lock_user: "鎖定使用者" label_logged_as: "登入為" label_login: "登入" - label_custom_logo: "Custom logo desktop" - label_custom_logo_mobile: "Custom logo mobile" + label_custom_logo: "客製化桌面標誌" + label_custom_logo_mobile: "自訂手機標誌" label_custom_export_logo: "客製匯出的Logo" label_custom_export_cover: "自訂匯出封面背景圖" label_custom_export_footer: "自訂匯出頁尾圖片" @@ -3286,6 +3311,9 @@ zh-TW: label_project_hierarchy: "專案結構" label_project_mappings: "專案" label_project_new: "新增專案" + label_project_initiation_request: "專案啟動請求" + label_project_creation_wizard: "New project creation wizard" + label_project_mandate: "New project mandate" label_project_plural: "專案" label_project_list_plural: "專案列表" label_project_life_cycle: "專案生命週期" @@ -3299,7 +3327,6 @@ zh-TW: label_project_view_all: "檢視所有專案" label_project_show_details: "顯示專案詳細資訊" label_project_hide_details: "隱藏專案詳細資訊" - label_project_initiation_request: "專案啟動請求" label_portfolio: "個人檔案" label_portfolio_new: "新投資組合" label_program: "方案" @@ -4370,15 +4397,15 @@ zh-TW: confirmation_message: "啟動請求精靈將不再適用於基於此模板的新專案。專案經理和專案所有人將需要在專案概述中手動設定和填寫相關資訊。" checkbox_message: "我了解此行動是不可逆轉的" name: - artefact_name: "產物名稱" - artefact_name_caption: "請選擇您的專案管理架構所建議的此產物名稱。" + artifact_name: "Artifact name" + artifact_name_caption: "Choose the name for this artifact that your project management framework recommends." options: project_initiation_request: "專案啟動請求" project_creation_wizard: "專案建立精靈" project_mandate: "項目任務" submission: work_package_type: "工作套件類型" - work_package_type_caption: "應該用來儲存已完成工件的工作套件類型。" + work_package_type_caption: "The work package type that should be used to store the completed artifact." status_when_submitted: "提交時的狀態" status_when_submitted_caption: "提交請求後,產生的工作套件將轉換到的狀態。" send_confirmation_email: "向提交專案啟動請求的使用者傳送確認電子郵件" @@ -4663,8 +4690,6 @@ zh-TW: 添加額外的用戶將超出當前限制。請升級您的計劃,以確保外部用戶能夠訪問此實例。 warning_user_limit_reached_instructions: > 您已達到用戶限制(%{current}/%{max} 活躍用戶)。請聯繫 sales@openproject.com 升級您的企業版計劃以添加額外用戶。 - warning_interlinking_custom_field_with_role_html: > - 警告:您即將將自訂欄位與角色建立連結。這將允許擁有「編輯專案屬性」權限的使用者新增專案成員,且新增的成員將被指派為所連結的角色。此操作可能導致權限提升,因為使用者可能會為自己指派高於預期的權限。請確保您了解此操作的影響。 warning_protocol_mismatch_html: > warning_bar: diff --git a/modules/documents/config/locales/crowdin/de.seeders.yml b/modules/documents/config/locales/crowdin/de.seeders.yml index af13acd5eb6..eb08f1ce516 100644 --- a/modules/documents/config/locales/crowdin/de.seeders.yml +++ b/modules/documents/config/locales/crowdin/de.seeders.yml @@ -15,6 +15,6 @@ de: item_3: name: Spezifikation item_4: - name: Report + name: Bericht item_5: name: Dokumentation diff --git a/modules/documents/config/locales/crowdin/de.yml b/modules/documents/config/locales/crowdin/de.yml index 8bed4222e44..4e9b9afc939 100644 --- a/modules/documents/config/locales/crowdin/de.yml +++ b/modules/documents/config/locales/crowdin/de.yml @@ -27,7 +27,7 @@ de: errors: models: document_type: - one_or_more_required: "Cannot delete the last document type" + one_or_more_required: "Kann den letzten Dokumenttyp nicht löschen" models: document: "Dokument" documents: "Dokumente" @@ -55,13 +55,12 @@ de: heading: "Es sind noch keine Dokumente vorhanden" description: "Es sind keine Dokumente in dieser Ansicht vorhanden. Sie können auf die Schaltfläche unten klicken, um eines hinzuzufügen." document_categories_deprecation_notice: - heading: File categories are now called 'Document types' + heading: Dateikategorien heißen jetzt 'Dokumenttypen' description: |- - Your existing file categories have been converted to document types with the introduction of the new Documents module. - All existing documents have also been migrated to these new types. - primary_action: Configure document types - secondary_action: Learn more about the Documents module - document_type_actions: "Document type actions" + Mit der Einführung des neuen Moduls Dokumente wurden Ihre bestehenden Dateikategorien in Dokumenttypen umgewandelt. Alle bestehenden Dokumente wurden ebenfalls auf diese neuen Typen konvertiert. + primary_action: Dokumenttypen konfigurieren + secondary_action: Erfahren Sie mehr über das Dokumenten-Modul + document_type_actions: "Aktionen auf diesem Dokument" index_page: name: "Name" type: "Art" @@ -71,8 +70,8 @@ de: all: "Alle Dokumente" types: "Typen" last_updated_at: "Zuletzt aktualisiert %{time}." - active_editors: "Active editors" - active_editors_count: "%{count} active editors" + active_editors: "Aktive Bearbeiter" + active_editors_count: "%{count} aktive Bearbeiter" label_attachment_author: "Autor des Dokuments" label_categories: "Kategorien" new_category: "Neue Kategorie" @@ -80,20 +79,20 @@ de: delete_dialog: title: "Dokument löschen" heading: "Dieses Dokument löschen?" - confirmation_message_html: "This will permanently delete this document and all file attachments. Are you sure you want to do this?" + confirmation_message_html: "Dadurch werden dieses Dokument und seine Anhänge endgültig gelöscht. Sind Sie sicher, dass Sie dies tun möchten?" delete_document_type_dialog: title: Dokumenttyp löschen heading: Diesen Dokumenttyp löschen? confirmation_message: |- - The type "%{type_name}" is currently unused. Deleting this type will have no effect on existing documents. - select_reassign_to_label: Reassign documents to + Der Typ "%{type_name}" ist derzeit unbenutzt. Das Löschen dieses Typs hat keine Auswirkungen auf bestehende Dokumente. + select_reassign_to_label: Dokumente neu zuweisen als reassign_message: - one: The type "%{type_name}" is currently being used in %{document_count} document. Please select which type to reassign them to. - other: The type "%{type_name}" is currently being used in %{document_count} documents. Please select which type to reassign them to. + one: Der Typ "%{type_name}" wird derzeit im Dokument %{document_count} verwendet. Bitte wählen Sie aus, welchem Typ Sie sie neu zuordnen möchten. + other: Der Typ "%{type_name}" wird derzeit in %{document_count} Dokumenten verwendet. Bitte wählen Sie aus, welchem Typ Sie sie neu zuordnen möchten. at_least_one_type_required: - title: Cannot delete document type - heading: Cannot delete the last document type - message: There must always be at least one document type configured. Create another one first if you want to delete this one. + title: Kann diesen Dokumenttyp nicht löschen + heading: Kann den letzten Dokumenttyp nicht löschen + message: Es muss immer mindestens ein Dokumenttyp konfiguriert sein. Erstellen Sie zuerst einen anderen, wenn Sie diesen löschen möchten. label_document_added: "Dokument hinzugefügt" label_document_new: "Neues Dokument" label_document_plural: "Dokumente" diff --git a/modules/documents/config/locales/crowdin/zh-TW.yml b/modules/documents/config/locales/crowdin/zh-TW.yml index 96d3dfbc464..62f5a8ecffd 100644 --- a/modules/documents/config/locales/crowdin/zh-TW.yml +++ b/modules/documents/config/locales/crowdin/zh-TW.yml @@ -27,10 +27,10 @@ zh-TW: errors: models: document_type: - one_or_more_required: "Cannot delete the last document type" + one_or_more_required: "無法刪除最後一個文件類型" models: document: "文件" - documents: "Documents" + documents: "文件" attributes: document: content_binary: "二進制內容" @@ -55,13 +55,13 @@ zh-TW: heading: "尚未有任何文件" description: "此檢視中沒有文件。您可以點擊下面的按鈕添加一個。" document_categories_deprecation_notice: - heading: File categories are now called 'Document types' + heading: 檔案類別現在稱為「文件類型」 description: |- - Your existing file categories have been converted to document types with the introduction of the new Documents module. - All existing documents have also been migrated to these new types. - primary_action: Configure document types - secondary_action: Learn more about the Documents module - document_type_actions: "Document type actions" + 隨著新文件模組的推出,您現有的文件類別已轉換為文件類型。 + 所有現有的文件也已轉換成這些新的類型。 + primary_action: 設定文件類型 + secondary_action: 進一步瞭解文件模組 + document_type_actions: "文件類型動作" index_page: name: "名稱" type: "類型" @@ -76,23 +76,23 @@ zh-TW: label_attachment_author: "附件作者" label_categories: "類別" new_category: "新增類別" - new_type: "New type" + new_type: "新增種類" delete_dialog: title: "刪除文件" heading: "刪除此文件?" confirmation_message_html: "這將永久刪除本文件和所有檔案附件。您確定要這麼做?" delete_document_type_dialog: - title: Delete document type - heading: Delete this document type? + title: 刪除文件類型 + heading: 刪除此文件類型? confirmation_message: |- - The type "%{type_name}" is currently unused. Deleting this type will have no effect on existing documents. - select_reassign_to_label: Reassign documents to + %{type_name}" 類型目前尚未使用。刪除此類型對現有文件沒有影響。 + select_reassign_to_label: 重新分配文件至 reassign_message: - other: The type "%{type_name}" is currently being used in %{document_count} documents. Please select which type to reassign them to. + other: 類型 "%{type_name}" 目前用於 %{document_count} 文件。請選擇將其重新指定為哪一種類型。 at_least_one_type_required: - title: Cannot delete document type - heading: Cannot delete the last document type - message: There must always be at least one document type configured. Create another one first if you want to delete this one. + title: 無法刪除文件類型 + heading: 無法刪除最後一個文件類型 + message: 必須始終至少配置一個文件類型。如果要刪除此文件類型,請先建立另一個。 label_document_added: "文件已新增" label_document_new: "建立新文件" label_document_plural: "文件" diff --git a/modules/grids/config/locales/crowdin/de.yml b/modules/grids/config/locales/crowdin/de.yml index fb899abce27..e27fa725e68 100644 --- a/modules/grids/config/locales/crowdin/de.yml +++ b/modules/grids/config/locales/crowdin/de.yml @@ -2,13 +2,13 @@ de: grids: label_widget_in_grid: "Widget im Gitter %{grid_name} enthalten" widgets: - empty: "This widget is currently empty." - not_available: "This widget is not available." + empty: "Dieses Widget ist derzeit ohne Inhalt." + not_available: "Dieses Widget ist nicht verfügbar." subitems: title: "Unterelemente" no_results: "Es gibt keine sichtbaren Kinder." view_all_subitems: "Alle Unterelemente anzeigen" - button_text: "Subitem" + button_text: "Unterelement" members: title: "Mitglieder" no_results: "Kein sichtbaren Mitglieder." @@ -16,7 +16,7 @@ de: show_members_count: "Alle %{count} Mitglieder anzeigen" x_more: one: "und ein weiteres Mitglied." - other: "and %{count} more members." + other: "und %{count} weitere Mitglieder." news: no_results: "Nichts Neues zu berichten." activerecord: diff --git a/modules/grids/config/locales/crowdin/zh-TW.yml b/modules/grids/config/locales/crowdin/zh-TW.yml index 1e76bf270a2..142d0bb88df 100644 --- a/modules/grids/config/locales/crowdin/zh-TW.yml +++ b/modules/grids/config/locales/crowdin/zh-TW.yml @@ -2,13 +2,13 @@ zh-TW: grids: label_widget_in_grid: "網格(Grid) %{grid_name} 中包含的工具集" widgets: - empty: "This widget is currently empty." - not_available: "This widget is not available." + empty: "此小工具目前為空。" + not_available: "此小工具無法使用。" subitems: title: "子項目" no_results: "沒有可見的子項目。" view_all_subitems: "檢視所有子項目" - button_text: "Subitem" + button_text: "子項目" members: title: "成員" no_results: "沒有可見的成員。" diff --git a/modules/meeting/config/locales/crowdin/de.yml b/modules/meeting/config/locales/crowdin/de.yml index 4be12c620f4..16a8c15f19a 100644 --- a/modules/meeting/config/locales/crowdin/de.yml +++ b/modules/meeting/config/locales/crowdin/de.yml @@ -115,7 +115,7 @@ de: label_meeting_new_dynamic: "Neue einmalige Besprechung" label_meeting_new_recurring: "Neue Terminserie" label_meeting_create: "Besprechung erstellen" - label_meeting_duplicate: "Duplicate meeting" + label_meeting_duplicate: "Besprechung duplizieren" label_meeting_edit: "Besprechung bearbeiten" label_meeting_agenda: "Agenda" label_meeting_minutes: "Protokoll" @@ -127,8 +127,8 @@ de: label_meeting_date_time: "Datum/Uhrzeit" label_meeting_date_and_time: "Datum und Zeit" label_meeting_diff: "Differenz" - label_meeting_send_updates: "Send email calendar invite and updates" - label_meeting_send_updates_caption: "Send out email invites to all participants of this meeting" + label_meeting_send_updates: "E-Mail-Kalender-Aktualisierungen senden" + label_meeting_send_updates_caption: "Versenden Sie E-Mail-Einladungen an alle Teilnehmer dieser Besprechung" label_recurring_meeting: "Wiederkehrende Besprechung" label_recurring_meeting_part_of: "Teil einer Terminserie" label_recurring_meeting_new: "Neue Terminserie" @@ -136,7 +136,7 @@ de: label_template: "Vorlage" label_recurring_meeting_view: "Terminserie ansehen" label_recurring_meeting_create: "Öffnen" - label_recurring_meeting_duplicate: "Duplicate as a one-time meeting" + label_recurring_meeting_duplicate: "Als einmalige Besprechung duplizieren" label_recurring_meeting_cancel: "Diese Besprechung absagen" label_recurring_meeting_delete: "Besprechung löschen" label_recurring_meeting_restore: "Dieses Vorkommen wiederherstellen" @@ -335,9 +335,9 @@ de: E-Mail-Kalenderaktualisierungen sind deaktiviert. Die Teilnehmer erhalten keine E-Mails bei Änderungen an der Teilnehmerliste. onetime: enabled: > - All participants will receive updated calendar invites via email when you add or remove participants. + Alle Teilnehmer erhalten aktualisierte Kalendereinladungen per E-Mail, wenn Sie Teilnehmer hinzufügen oder entfernen. disabled: > - Participants will not receive an email informing them of changes to meeting date, time or participants. + Die Teilnehmer erhalten keine E-Mail, die sie über Änderungen des Datums, der Uhrzeit oder der Teilnehmer der Besprechung informiert. occurrence: enabled: > E-Mail-Kalenderaktualisierungen sind für die Terminserie aktiviert. Alle Teilnehmenden erhalten aktualisierte Kalendereinladungen, die sie über Ihre Änderungen an dieser Besprechung informieren. @@ -349,15 +349,15 @@ de: disabled: > E-Mail-Kalenderaktualisierungen sind für die Terminserie deaktiviert. Die Teilnehmenden erhalten keine E-Mail, die sie über Ihre Änderungen an dieser Vorlage oder Ereignisse der Serie informiert. presentation_mode: - title: "Presentation Mode" - button_present: "Present" + title: "Präsentationsmodus" + button_present: "Präsentieren" exit: "Präsentation verlassen" current_item: "Aktuelles Element" total_items: "%{current} von %{total}" - previous: "Previous" - next: "Next" + previous: "Zurück" + next: "Weiter" no_items: "Keine Tagesordnungspunkte" - no_items_flash: "There are no agenda items to present." + no_items_flash: "Es sind keine Tagesordnungspunkte vorhanden." meeting_section: untitled_title: "Unbenannter Abschnitt" delete_confirmation: "Wenn Sie den Abschnitt löschen, werden auch alle zugehörigen Tagesordnungspunkte gelöscht. Möchten Sie fortfahren?" @@ -388,9 +388,9 @@ de: label_view_template: "Vorlage ansehen" label_edit_template: "Vorlage bearbeiten" banner_html: > - You are currently editing a template of a meeting series: %{link}. Every new occurrence of a meeting in the series will use this template. Changes will not affect past or already-created meetings. + Sie bearbeiten gerade eine Vorlage einer Terminserie: %{link}. Jede neue Besprechung der Serie kopiert diese Vorlage. Änderungen wirken sich nicht auf frühere oder bereits erstellte Besprechungen aus. draft_banner_html: > - You are currently editing a template of a meeting series: %{link}. Every new occurrence of a meeting in the series will use this template. Changes will not affect past or already-created meetings. No email invites will be sent in this current draft mode until you open the first meeting. + Sie bearbeiten gerade eine Vorlage einer Terminserie: %{link}. Jede neue Besprechung der Serie kopiert diese Vorlage. Änderungen wirken sich nicht auf frühere oder bereits erstellte Besprechungen aus. In diesem aktuellen Entwurfsmodus werden keine E-Mail-Einladungen versendet, bis Sie das erste Meeting öffnen. frequency: x_daily: one: "Jeden Tag" @@ -553,18 +553,18 @@ de: label_meeting_close_action: "Besprechung schließen" label_meeting_in_progress_action: "Besprechung starten" label_meeting_open_action: "Besprechung öffnen" - text_meeting_draft_description: "Prepare your agenda in draft mode. This meeting will not send out any calendar updates or invites, even if you change meeting details or add/remove participants." + text_meeting_draft_description: "Bereiten Sie Ihre Tagesordnung als Entwurf vor. Besprechungen in diesem Modus versenden keine Kalenderaktualisierungen oder Einladungen, selbst wenn Sie Besprechungsdetails ändern oder Teilnehmer hinzufügen/entfernen." text_meeting_open_description: "Sie können Tagesordnungspunkte hinzufügen oder entfernen und bearbeiten. Sobald die Tagesordnung fertig ist, wechseln Sie auf In Durchführung, um Ergebnisse zu dokumentieren." text_meeting_closed_description: "Diese Besprechung ist abgeschlossen. Sie können keine Tagesordnungspunkte mehr hinzufügen/entfernen." text_meeting_in_progress_description: "Sie können die Tagesordnung ändern, die Ergebnisse für jeden Agendapunkt dokumentieren und die Anwesenheit der Teilnehmer verfolgen. Sobald die Besprechung abgeschlossen ist, können Sie sie als geschlossen markieren, um sie zu sperren." text_meeting_open_dropdown_description: "Alle bestehenden Ergebnisse bleiben bestehen, aber die Benutzer werden nicht in der Lage sein, neue Ergebnisse hinzuzufügen." text_meeting_in_progress_dropdown_description: "Ergebnisse der Besprechung festhalten, wie z. B. Informationsbedarf oder Entscheidungen, die während der Besprechung getroffen werden." text_meeting_closed_dropdown_description: "Diese Besprechung ist geschlossen. Sie können keine Tagesordnungspunkte mehr hinzufügen/entfernen." - text_meeting_draft_banner: "You are currently in draft mode. This meeting will not send out any calendar updates or invites, even if you change meeting details or add/remove participants." - text_exit_draft_mode_dialog_title: "Open this meeting and send invites?" - text_exit_draft_mode_dialog_subtitle: "You cannot return to draft mode once you schedule a meeting." - text_exit_draft_mode_dialog_template_title: "Open the first occurrence of this meeting series?" - text_exit_draft_mode_dialog_template_subtitle: "You cannot return to draft mode after this." + text_meeting_draft_banner: "Dieses Meeting ist derzeit ein Entwurf. Diese Besprechung sendet keine Kalenderaktualisierungen oder Einladungen, selbst wenn Sie Besprechungsdetails ändern oder Teilnehmer hinzufügen/entfernen." + text_exit_draft_mode_dialog_title: "Diese Besprechung öffnen und Einladungen verschicken?" + text_exit_draft_mode_dialog_subtitle: "Sie können nicht mehr zum Entwurfsmodus zurückkehren, sobald Sie die Besprechung eröffnen." + text_exit_draft_mode_dialog_template_title: "Das erste Vorkommen dieser Terminserie öffnen?" + text_exit_draft_mode_dialog_template_subtitle: "Sie können danach nicht mehr in den Entwurfsmodus zurückkehren." text_meeting_not_editable_anymore: "Diese Besprechung ist nicht mehr bearbeitbar." text_meeting_not_present_anymore: "Dieses Meeting wurde gelöscht. Bitte wählen Sie eine andere Besprechung." label_add_work_package_to_meeting_dialog_title: "Besprechung auswählen" diff --git a/modules/storages/config/locales/crowdin/af.yml b/modules/storages/config/locales/crowdin/af.yml index 9002e78c7b8..3f05b991d21 100644 --- a/modules/storages/config/locales/crowdin/af.yml +++ b/modules/storages/config/locales/crowdin/af.yml @@ -348,9 +348,10 @@ af: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Fout label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/ar.yml b/modules/storages/config/locales/crowdin/ar.yml index 37d20ca98f7..1a726848ccc 100644 --- a/modules/storages/config/locales/crowdin/ar.yml +++ b/modules/storages/config/locales/crowdin/ar.yml @@ -356,9 +356,10 @@ ar: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: خطأ label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/az.yml b/modules/storages/config/locales/crowdin/az.yml index 7e3dfd41a96..3ff567765e9 100644 --- a/modules/storages/config/locales/crowdin/az.yml +++ b/modules/storages/config/locales/crowdin/az.yml @@ -348,9 +348,10 @@ az: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/be.yml b/modules/storages/config/locales/crowdin/be.yml index 6e2dcbe0d4a..ebb16c33e72 100644 --- a/modules/storages/config/locales/crowdin/be.yml +++ b/modules/storages/config/locales/crowdin/be.yml @@ -352,9 +352,10 @@ be: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/bg.yml b/modules/storages/config/locales/crowdin/bg.yml index d861a041944..a77c0558935 100644 --- a/modules/storages/config/locales/crowdin/bg.yml +++ b/modules/storages/config/locales/crowdin/bg.yml @@ -348,9 +348,10 @@ bg: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Грешка label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/ca.yml b/modules/storages/config/locales/crowdin/ca.yml index f6239b7f906..18358a25d03 100644 --- a/modules/storages/config/locales/crowdin/ca.yml +++ b/modules/storages/config/locales/crowdin/ca.yml @@ -348,9 +348,10 @@ ca: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/ckb-IR.yml b/modules/storages/config/locales/crowdin/ckb-IR.yml index de61d443e8b..0da083a2595 100644 --- a/modules/storages/config/locales/crowdin/ckb-IR.yml +++ b/modules/storages/config/locales/crowdin/ckb-IR.yml @@ -348,9 +348,10 @@ ckb-IR: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/cs.yml b/modules/storages/config/locales/crowdin/cs.yml index 0269eabf3e8..bfd5cf71466 100644 --- a/modules/storages/config/locales/crowdin/cs.yml +++ b/modules/storages/config/locales/crowdin/cs.yml @@ -352,9 +352,10 @@ cs: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Chyba label_failed: Chyba diff --git a/modules/storages/config/locales/crowdin/da.yml b/modules/storages/config/locales/crowdin/da.yml index e41a44fe138..223eba6bd61 100644 --- a/modules/storages/config/locales/crowdin/da.yml +++ b/modules/storages/config/locales/crowdin/da.yml @@ -348,9 +348,10 @@ da: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Fejl label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/de.yml b/modules/storages/config/locales/crowdin/de.yml index bebcd9ddca4..3729dc8e192 100644 --- a/modules/storages/config/locales/crowdin/de.yml +++ b/modules/storages/config/locales/crowdin/de.yml @@ -165,7 +165,7 @@ de: group_does_not_exist: "%{group} existiert nicht. Überprüfen Sie Ihre Nextcloud Instanz-Konfiguration." insufficient_privileges: OpenProject hat nicht genügend Rechte, um %{user} zu %{group} hinzuzufügen. Überprüfen Sie Ihre Gruppeneinstellungen in Nextcloud. not_allowed: Nextcloud blockiert die Anfrage. - not_found: OpenProject could not find the file on the Nextcloud Storage Provider. Please check if it wasn't deleted. + not_found: OpenProject konnte die Datei auf dem Nextcloud Dateispeicher nicht finden. Bitte überprüfen Sie, ob die Datei nicht gelöscht wurde. unauthorized: OpenProject konnte nicht mit Nextcloud synchronisieren. Bitte überprüfen Sie Ihren Speicher und die Nextcloud-Konfiguration. user_does_not_exist: "%{user} existiert nicht in Nextcloud." one_drive_sync_service: @@ -348,9 +348,10 @@ de: sp_client_write_permission_missing: Der Client hat anscheinend keine Schreibberechtigungen in SharePoint. Bitte überprüfen Sie die Setup-Dokumentation für Ihren Speicher. sp_existing_test_folder: Der für den Test benötigte Ordner %{folder_name} existiert bereits in SharePoint. Bitte löschen Sie ihn und versuchen Sie es erneut. sp_oauth_request_error: Die benutzergebundene Anfrage an SharePoint ist fehlgeschlagen. Bitte prüfen Sie die Serverprotokolle für weitere Informationen. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject kann die Kommunikation auf Benutzerebene mit SharePoint nicht testen, da der Benutzer sein SharePoint-Konto noch nicht verknüpft hat. sp_tenant_id_missing: Die konfigurierte Verzeichnis-ID (Tenant) fehlt für SharePoint. Bitte überprüfen Sie die Konfiguration. - sp_unexpected_content: Unerwarteter Inhalt in der SharePoint-Dokumentbibliothek (Drive) gefunden. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: Die Verbindung konnte nicht validiert werden. Es ist ein unbekannter Fehler aufgetreten. Bitte prüfen Sie die Serverprotokolle für weitere Informationen. label_error: Fehler label_failed: Fehlgeschlagen diff --git a/modules/storages/config/locales/crowdin/el.yml b/modules/storages/config/locales/crowdin/el.yml index f5e106e66cd..0a6866d5e17 100644 --- a/modules/storages/config/locales/crowdin/el.yml +++ b/modules/storages/config/locales/crowdin/el.yml @@ -348,9 +348,10 @@ el: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Σφάλμα label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/eo.yml b/modules/storages/config/locales/crowdin/eo.yml index 3a8c1cb51c5..d50ce931322 100644 --- a/modules/storages/config/locales/crowdin/eo.yml +++ b/modules/storages/config/locales/crowdin/eo.yml @@ -348,9 +348,10 @@ eo: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Eraro label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/es.yml b/modules/storages/config/locales/crowdin/es.yml index 998b72e16f6..a022385f783 100644 --- a/modules/storages/config/locales/crowdin/es.yml +++ b/modules/storages/config/locales/crowdin/es.yml @@ -348,9 +348,10 @@ es: sp_client_write_permission_missing: Parece que el cliente no tiene permisos de escritura en SharePoint. Consulte la documentación de configuración de su almacenamiento. sp_existing_test_folder: La carpeta %{folder_name} necesaria para la prueba ya existe en SharePoint. Elimínela e inténtelo de nuevo. sp_oauth_request_error: Ha habido un error en la solicitud vinculada al usuario a SharePoint. Consulte los registros del servidor para obtener más información. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject no puede probar la comunicación a nivel de usuario con SharePoint, ya que el usuario aún no ha vinculado su cuenta de SharePoint. sp_tenant_id_missing: Falta el ID de directorio (inquilino) configurado para SharePoint. Compruebe la configuración. - sp_unexpected_content: Contenido inesperado encontrado dentro la unidad SharePoint. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: No se ha podido validar la conexión. Se ha producido un error desconocido. Compruebe los registros del servidor para obtener más información. label_error: Error label_failed: Fallido diff --git a/modules/storages/config/locales/crowdin/et.yml b/modules/storages/config/locales/crowdin/et.yml index bbd31a62f1a..622c0876f1e 100644 --- a/modules/storages/config/locales/crowdin/et.yml +++ b/modules/storages/config/locales/crowdin/et.yml @@ -348,9 +348,10 @@ et: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Tõrge label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/eu.yml b/modules/storages/config/locales/crowdin/eu.yml index 07390129a65..51c6cdd5449 100644 --- a/modules/storages/config/locales/crowdin/eu.yml +++ b/modules/storages/config/locales/crowdin/eu.yml @@ -348,9 +348,10 @@ eu: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/fa.yml b/modules/storages/config/locales/crowdin/fa.yml index 3e0abbbe041..c9b7e92657a 100644 --- a/modules/storages/config/locales/crowdin/fa.yml +++ b/modules/storages/config/locales/crowdin/fa.yml @@ -348,9 +348,10 @@ fa: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/fi.yml b/modules/storages/config/locales/crowdin/fi.yml index 2061d6a7e4d..ced7135d251 100644 --- a/modules/storages/config/locales/crowdin/fi.yml +++ b/modules/storages/config/locales/crowdin/fi.yml @@ -348,9 +348,10 @@ fi: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Virhe label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/fil.yml b/modules/storages/config/locales/crowdin/fil.yml index 8980a7013bc..e23272b2a36 100644 --- a/modules/storages/config/locales/crowdin/fil.yml +++ b/modules/storages/config/locales/crowdin/fil.yml @@ -348,9 +348,10 @@ fil: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Mali label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/fr.yml b/modules/storages/config/locales/crowdin/fr.yml index 4af378943d8..3a6deab852c 100644 --- a/modules/storages/config/locales/crowdin/fr.yml +++ b/modules/storages/config/locales/crowdin/fr.yml @@ -348,9 +348,10 @@ fr: sp_client_write_permission_missing: Le client semble ne pas avoir les autorisations d'écriture. Veuillez vérifier la documentation d'installation de votre espace de stockage. sp_existing_test_folder: Le dossier %{folder_name} requis pour le test existe déjà. Veuillez le supprimer et réessayer. sp_oauth_request_error: La requête liée à l'utilisateur vers SharePoint a échoué. Veuillez consulter les journaux du serveur pour obtenir plus d'informations. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject ne peut pas tester la communication au niveau utilisateur avec OneDrive/SharePoint, car l'utilisateur n'a pas encore lié son compte Microsoft. sp_tenant_id_missing: L'identifiant de répertoire (locataire) configuré est manquant pour SharePoint. Veuillez vérifier la configuration. - sp_unexpected_content: Contenu inattendu trouvé dans le lecteur SharePoint. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: La connexion n'a pas pu être validée. Une erreur inconnue s'est produite. Veuillez consulter les journaux du serveur pour en savoir plus. label_error: Erreur label_failed: Échec diff --git a/modules/storages/config/locales/crowdin/he.yml b/modules/storages/config/locales/crowdin/he.yml index ca4604f9b28..41266e76f5d 100644 --- a/modules/storages/config/locales/crowdin/he.yml +++ b/modules/storages/config/locales/crowdin/he.yml @@ -352,9 +352,10 @@ he: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: שגיאה label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/hi.yml b/modules/storages/config/locales/crowdin/hi.yml index c583869038d..48e242fecbf 100644 --- a/modules/storages/config/locales/crowdin/hi.yml +++ b/modules/storages/config/locales/crowdin/hi.yml @@ -348,9 +348,10 @@ hi: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: त्रुटि label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/hr.yml b/modules/storages/config/locales/crowdin/hr.yml index 0a33398c763..f17d4b7c08f 100644 --- a/modules/storages/config/locales/crowdin/hr.yml +++ b/modules/storages/config/locales/crowdin/hr.yml @@ -350,9 +350,10 @@ hr: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Greška label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/hu.yml b/modules/storages/config/locales/crowdin/hu.yml index b8d288cc37e..e6c7056304e 100644 --- a/modules/storages/config/locales/crowdin/hu.yml +++ b/modules/storages/config/locales/crowdin/hu.yml @@ -348,9 +348,10 @@ hu: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Hiba label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/id.yml b/modules/storages/config/locales/crowdin/id.yml index c6445393e3d..14cf7fe5d0d 100644 --- a/modules/storages/config/locales/crowdin/id.yml +++ b/modules/storages/config/locales/crowdin/id.yml @@ -346,9 +346,10 @@ id: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Eror label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/it.yml b/modules/storages/config/locales/crowdin/it.yml index 2d0719bf21b..3d690848e8a 100644 --- a/modules/storages/config/locales/crowdin/it.yml +++ b/modules/storages/config/locales/crowdin/it.yml @@ -348,9 +348,10 @@ it: sp_client_write_permission_missing: Il client non ha i permessi di scrittura necessari su SharePoint. Consulta la documentazione di configurazione del tuo archivio. sp_existing_test_folder: La cartella %{folder_name} necessaria per il test esiste già su SharePoint. Eliminala e riprova. sp_oauth_request_error: La richiesta vincolata all'utente verso SharePoint non è riuscita. Controlla i log del server per ulteriori informazioni. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject non può testare la comunicazione a livello utente con SharePoint poiché l'utente non ha ancora collegato il proprio account SharePoint. sp_tenant_id_missing: L'ID directory (tenant) configurato per SharePoint è mancante. Controlla la configurazione. - sp_unexpected_content: Contenuto inatteso nello spazio di archiviazione SharePoint. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: Non è stato possibile verificare la connessione. Si è verificato un errore sconosciuto. Per maggiori informazioni consulta i log del server. label_error: Errore label_failed: Non riuscito diff --git a/modules/storages/config/locales/crowdin/ja.yml b/modules/storages/config/locales/crowdin/ja.yml index 7fc763318cd..5a443689175 100644 --- a/modules/storages/config/locales/crowdin/ja.yml +++ b/modules/storages/config/locales/crowdin/ja.yml @@ -346,9 +346,10 @@ ja: sp_client_write_permission_missing: クライアントはSharePointで書き込み権限が不足しているようです。ストレージのセットアップドキュメントを確認してください。 sp_existing_test_folder: テストに必要なフォルダ %{folder_name} は SharePoint に既に存在します。削除してから、もう一度お試しください。 sp_oauth_request_error: SharePointへのユーザーバウンドリクエストに失敗しました。詳細については、サーバーのログを確認してください。 + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject は、ユーザーがまだ SharePoint アカウントをリンクしていないため、ユーザーレベルの SharePoint との通信をテストできません。 sp_tenant_id_missing: 構成されたディレクトリ(テナント)IDがSharePointにありません。設定を確認してください。 - sp_unexpected_content: SharePointドライブに予期しないコンテンツが見つかりました。 + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: 接続を検証できませんでした。不明なエラーが発生しました。詳細についてはサーバーログを確認してください。 label_error: エラー label_failed: 失敗しました diff --git a/modules/storages/config/locales/crowdin/ka.yml b/modules/storages/config/locales/crowdin/ka.yml index c5a4c1940bc..74e935da28d 100644 --- a/modules/storages/config/locales/crowdin/ka.yml +++ b/modules/storages/config/locales/crowdin/ka.yml @@ -348,9 +348,10 @@ ka: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: შეცდომა label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/kk.yml b/modules/storages/config/locales/crowdin/kk.yml index fac22749f64..c9e82c4b275 100644 --- a/modules/storages/config/locales/crowdin/kk.yml +++ b/modules/storages/config/locales/crowdin/kk.yml @@ -348,9 +348,10 @@ kk: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/ko.yml b/modules/storages/config/locales/crowdin/ko.yml index 5f67160b5aa..cfef51f2cde 100644 --- a/modules/storages/config/locales/crowdin/ko.yml +++ b/modules/storages/config/locales/crowdin/ko.yml @@ -346,9 +346,10 @@ ko: sp_client_write_permission_missing: 클라이언트가 SharePoint에서 쓰기 권한이 없는 것 같습니다. 저장소에 대한 설정 설명서를 확인하세요. sp_existing_test_folder: 테스트에 필요한 %{folder_name} 폴더가 SharePoint에 이미 있습니다. 이 폴더를 삭제한 후에 다시 시도하세요. sp_oauth_request_error: SharePoint에 대한 사용자 바인딩 요청이 실패했습니다. 자세한 내용은 서버 로그를 확인하세요. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: 사용자가 아직 SharePoint 계정을 링크하지 않았기 때문에 OpenProject가 SharePoint와의 사용자 수준 통신을 테스트할 수 없습니다. sp_tenant_id_missing: 구성된 디렉터리(테넌트) ID가 SharePoint에서 누락되었습니다. 구성을 확인하세요. - sp_unexpected_content: SharePoint 드라이브에서 예기치 않은 콘텐츠가 발견되었습니다. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: 연결에 대한 유효성 검사를 할 수 없습니다. 알 수 없는 오류가 발생했습니다. 자세한 내용은 서버 로그를 확인하세요. label_error: 오류 label_failed: 실패함 diff --git a/modules/storages/config/locales/crowdin/lt.yml b/modules/storages/config/locales/crowdin/lt.yml index 57a19005e5d..be6499437dc 100644 --- a/modules/storages/config/locales/crowdin/lt.yml +++ b/modules/storages/config/locales/crowdin/lt.yml @@ -352,9 +352,10 @@ lt: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Klaida label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/lv.yml b/modules/storages/config/locales/crowdin/lv.yml index d52f49d7462..3780e86f8fc 100644 --- a/modules/storages/config/locales/crowdin/lv.yml +++ b/modules/storages/config/locales/crowdin/lv.yml @@ -350,9 +350,10 @@ lv: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/mn.yml b/modules/storages/config/locales/crowdin/mn.yml index f8070dfa9d0..a2ba8595375 100644 --- a/modules/storages/config/locales/crowdin/mn.yml +++ b/modules/storages/config/locales/crowdin/mn.yml @@ -348,9 +348,10 @@ mn: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/ms.yml b/modules/storages/config/locales/crowdin/ms.yml index 57e2309103c..dd3c0377f10 100644 --- a/modules/storages/config/locales/crowdin/ms.yml +++ b/modules/storages/config/locales/crowdin/ms.yml @@ -346,9 +346,10 @@ ms: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: Sambungan tidak dapat disahkan. Ralat tidak diketahui berlaku. Sila semak log pelayan untuk maklumat lanjut. label_error: Ralat label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/ne.yml b/modules/storages/config/locales/crowdin/ne.yml index 90498e8ca0d..ebac5b4af32 100644 --- a/modules/storages/config/locales/crowdin/ne.yml +++ b/modules/storages/config/locales/crowdin/ne.yml @@ -348,9 +348,10 @@ ne: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/nl.yml b/modules/storages/config/locales/crowdin/nl.yml index 3abcb01f6c7..07a8fa3c49f 100644 --- a/modules/storages/config/locales/crowdin/nl.yml +++ b/modules/storages/config/locales/crowdin/nl.yml @@ -348,9 +348,10 @@ nl: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Fout label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/no.yml b/modules/storages/config/locales/crowdin/no.yml index 4e967864697..69ce51188fb 100644 --- a/modules/storages/config/locales/crowdin/no.yml +++ b/modules/storages/config/locales/crowdin/no.yml @@ -348,9 +348,10 @@ sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Feil label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/pl.yml b/modules/storages/config/locales/crowdin/pl.yml index c9f0b41eac2..70d1d61b271 100644 --- a/modules/storages/config/locales/crowdin/pl.yml +++ b/modules/storages/config/locales/crowdin/pl.yml @@ -352,9 +352,10 @@ pl: sp_client_write_permission_missing: Klient nie ma uprawnień zapisu w usłudze SharePoint. Sprawdź dokumentację konfiguracji swojej pamięci masowej. sp_existing_test_folder: Wymagany do testowania folder %{folder_name} już istnieje w usłudze SharePoint. Usuń go i spróbuj ponownie. sp_oauth_request_error: Związane z użytkownikiem żądanie do usługi SharePoint nie powiodło się. W celu uzyskania dodatkowych informacji sprawdź dzienniki serwera. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: Aplikacja OpenProject nie może przetestować komunikacji z usługą SharePoint na poziomie użytkownika, ponieważ użytkownik nie powiązał jeszcze swojego konta SharePoint. sp_tenant_id_missing: Brakuje skonfigurowanego identyfikatora katalogu (dzierżawcy) usługi SharePoint. Sprawdź konfigurację. - sp_unexpected_content: Na dysku usługi SharePoint znaleziono nieoczekiwaną zawartość. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: Nie można zweryfikować połączenia. Wystąpił nieznany błąd. Aby uzyskać dalsze informacje, sprawdź dzienniki serwera. label_error: Błąd label_failed: Niepowodzenie diff --git a/modules/storages/config/locales/crowdin/pt-BR.yml b/modules/storages/config/locales/crowdin/pt-BR.yml index 19f00e80467..78150dc4631 100644 --- a/modules/storages/config/locales/crowdin/pt-BR.yml +++ b/modules/storages/config/locales/crowdin/pt-BR.yml @@ -348,9 +348,10 @@ pt-BR: sp_client_write_permission_missing: O cliente parece não ter permissão para gravar no SharePoint. Verifique a documentação de configuração do armazenamento. sp_existing_test_folder: A pasta %{folder_name}, necessária para o teste, já existe no SharePoint. Exclua-a e tente novamente. sp_oauth_request_error: A solicitação vinculada ao usuário para o SharePoint falhou. Verifique os logs do servidor para mais informações. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: O OpenProject não pode testar a comunicação do usuário com o SharePoint, pois a conta do SharePoint ainda não foi vinculada. sp_tenant_id_missing: O id de do diretório (cliente) configurado está ausente para o SharePoint. Verifique a configuração. - sp_unexpected_content: Conteúdo inesperado encontrado na unidade do SharePoint. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: A conexão não pôde ser validada. Ocorreu um erro desconhecido. Verifique os registros do servidor para obter mais informações. label_error: Erro label_failed: Falhou diff --git a/modules/storages/config/locales/crowdin/pt-PT.yml b/modules/storages/config/locales/crowdin/pt-PT.yml index 710fe291c68..de1ba968f6a 100644 --- a/modules/storages/config/locales/crowdin/pt-PT.yml +++ b/modules/storages/config/locales/crowdin/pt-PT.yml @@ -348,9 +348,10 @@ pt-PT: sp_client_write_permission_missing: O cliente parece ter permissões de escrita em falta no SharePoint. Verifique a documentação de configuração do seu armazenamento. sp_existing_test_folder: A pasta %{folder_name} necessária para os testes já existe no SharePoint. Elimine-a e tente novamente. sp_oauth_request_error: O pedido de ligação do utilizador ao SharePoint falhou. Verifique os registos do servidor para mais informações. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: O OpenProject não consegue testar a comunicação ao nível do utilizador com o SharePoint, visto que o utilizador ainda não associou a sua conta SharePoint. sp_tenant_id_missing: O ID do diretório (inquilino) configurado está em falta no SharePoint. Verifique a configuração. - sp_unexpected_content: Conteúdo inesperado encontrado na unidade do SharePoint. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: Não foi possível validar a ligação. Ocorreu um erro desconhecido. Consulte os registos do servidor para obter mais informações. label_error: Erro label_failed: Não aprovado diff --git a/modules/storages/config/locales/crowdin/ro.yml b/modules/storages/config/locales/crowdin/ro.yml index cc165376ac2..2fc5ef00dbc 100644 --- a/modules/storages/config/locales/crowdin/ro.yml +++ b/modules/storages/config/locales/crowdin/ro.yml @@ -350,9 +350,10 @@ ro: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Eroare label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/ru.yml b/modules/storages/config/locales/crowdin/ru.yml index 06d8bf88d0a..47ed2483ab8 100644 --- a/modules/storages/config/locales/crowdin/ru.yml +++ b/modules/storages/config/locales/crowdin/ru.yml @@ -352,9 +352,10 @@ ru: sp_client_write_permission_missing: Похоже, что у клиента отсутствуют разрешения на запись в SharePoint. Пожалуйста, проверьте документацию по настройке Вашего хранилища. sp_existing_test_folder: Папка %{folder_name}, необходимая для тестирования, уже существует в SharePoint. Пожалуйста, удалите ее и попробуйте снова. sp_oauth_request_error: Запрос к SharePoint, связанный с пользователем, завершился неудачей. Пожалуйста, проверьте журналы сервера для получения дополнительной информации. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject не может протестировать взаимодействие с SharePoint на уровне пользователя, поскольку пользователь еще не связал свою учетную запись с SharePoint. sp_tenant_id_missing: Настроенный идентификатор каталога (арендатора) отсутствует для SharePoint. Пожалуйста, проверьте конфигурацию. - sp_unexpected_content: Неожиданное содержимое обнаружено на диске SharePoint. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: Соединение не удалось подтвердить. Произошла неизвестная ошибка. Пожалуйста, проверьте журналы сервера для получения дополнительной информации. label_error: Ошибка label_failed: Ошибка diff --git a/modules/storages/config/locales/crowdin/rw.yml b/modules/storages/config/locales/crowdin/rw.yml index d9767f076ba..3d1134760f5 100644 --- a/modules/storages/config/locales/crowdin/rw.yml +++ b/modules/storages/config/locales/crowdin/rw.yml @@ -348,9 +348,10 @@ rw: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/si.yml b/modules/storages/config/locales/crowdin/si.yml index 17b0648074f..64128c5e484 100644 --- a/modules/storages/config/locales/crowdin/si.yml +++ b/modules/storages/config/locales/crowdin/si.yml @@ -348,9 +348,10 @@ si: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: දෝෂය label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/sk.yml b/modules/storages/config/locales/crowdin/sk.yml index de59af79f51..5375decf04b 100644 --- a/modules/storages/config/locales/crowdin/sk.yml +++ b/modules/storages/config/locales/crowdin/sk.yml @@ -352,9 +352,10 @@ sk: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Chyba label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/sl.yml b/modules/storages/config/locales/crowdin/sl.yml index 4c5cfcc8315..911fd7883f6 100644 --- a/modules/storages/config/locales/crowdin/sl.yml +++ b/modules/storages/config/locales/crowdin/sl.yml @@ -352,9 +352,10 @@ sl: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Napaka label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/sr.yml b/modules/storages/config/locales/crowdin/sr.yml index 73e4768a651..70f666c4214 100644 --- a/modules/storages/config/locales/crowdin/sr.yml +++ b/modules/storages/config/locales/crowdin/sr.yml @@ -350,9 +350,10 @@ sr: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/sv.yml b/modules/storages/config/locales/crowdin/sv.yml index a54593c5067..44b10061e89 100644 --- a/modules/storages/config/locales/crowdin/sv.yml +++ b/modules/storages/config/locales/crowdin/sv.yml @@ -348,9 +348,10 @@ sv: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Fel label_failed: Misslyckades diff --git a/modules/storages/config/locales/crowdin/th.yml b/modules/storages/config/locales/crowdin/th.yml index 4d5ecb8c0e8..d65afeae3ac 100644 --- a/modules/storages/config/locales/crowdin/th.yml +++ b/modules/storages/config/locales/crowdin/th.yml @@ -346,9 +346,10 @@ th: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: ข้อผิดพลาด label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/tr.yml b/modules/storages/config/locales/crowdin/tr.yml index f7784fcf8b3..a06794bd1ab 100644 --- a/modules/storages/config/locales/crowdin/tr.yml +++ b/modules/storages/config/locales/crowdin/tr.yml @@ -348,9 +348,10 @@ tr: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Hata label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/uk.yml b/modules/storages/config/locales/crowdin/uk.yml index f597b4ea8f7..c8f40840309 100644 --- a/modules/storages/config/locales/crowdin/uk.yml +++ b/modules/storages/config/locales/crowdin/uk.yml @@ -352,9 +352,10 @@ uk: sp_client_write_permission_missing: Схоже, клієнту бракує дозволів на записування в SharePoint. Ознайомтеся з документацією щодо конфігурації для свого сховища. sp_existing_test_folder: Папка «%{folder_name}», необхідна для тестування, уже існує в SharePoint. Видаліть її і повторіть спробу. sp_oauth_request_error: Не вдалося виконати пов’язаний із користувачем запит до SharePoint. Докладні відомості наведено в журналах сервера. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject не може перевірити з’єднання на рівні користувача із SharePoint, оскільки користувач досі не прив’язав свій обліковий запис SharePoint. sp_tenant_id_missing: Бракує налаштованого ідентифікатора каталогу (клієнта). Перевірте конфігурацію. - sp_unexpected_content: На диску SharePoint знайдено неочікуваний контент. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: Не вдалося перевірити підключення. Сталася невідома помилка. Щоб дізнатися більше, перегляньте журнали сервера. label_error: Помилка label_failed: Не пройдено diff --git a/modules/storages/config/locales/crowdin/uz.yml b/modules/storages/config/locales/crowdin/uz.yml index 3f934fc7a90..8e89aaa048b 100644 --- a/modules/storages/config/locales/crowdin/uz.yml +++ b/modules/storages/config/locales/crowdin/uz.yml @@ -348,9 +348,10 @@ uz: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: The connection could not be validated. An unknown error occurred. Please check the server logs for further information. label_error: Error label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/vi.yml b/modules/storages/config/locales/crowdin/vi.yml index 996bfdf468b..e0e5e0473fa 100644 --- a/modules/storages/config/locales/crowdin/vi.yml +++ b/modules/storages/config/locales/crowdin/vi.yml @@ -346,9 +346,10 @@ vi: sp_client_write_permission_missing: The client seems to have write permissions missing in SharePoint. Please check the setup documentation for your storage. sp_existing_test_folder: The folder %{folder_name} needed for testing already exists in SharePoint. Please delete it and try again. sp_oauth_request_error: The user-bound request to SharePoint failed. Please check the server logs for further information. + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject cannot test the user level communication with SharePoint as the user did not yet link their SharePoint account. sp_tenant_id_missing: The configured directory (tenant) id is missing for SharePoint. Please check the configuration. - sp_unexpected_content: Unexpected content found in the SharePoint drive. + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: Kết nối không thể được xác thực. Đã xảy ra lỗi không xác định. Vui lòng kiểm tra nhật ký máy chủ để biết thêm thông tin. label_error: Lỗi label_failed: Failed diff --git a/modules/storages/config/locales/crowdin/zh-CN.yml b/modules/storages/config/locales/crowdin/zh-CN.yml index 17c4b8bfead..ec3aed88e8e 100644 --- a/modules/storages/config/locales/crowdin/zh-CN.yml +++ b/modules/storages/config/locales/crowdin/zh-CN.yml @@ -346,9 +346,10 @@ zh-CN: sp_client_write_permission_missing: 客户端似乎在 SharePoint 中没有写入权限。请查看您的存储空间的设置文档。 sp_existing_test_folder: 测试所需的文件夹 %{folder_name} 已存在于 SharePoint 中。请删除此文件夹并重试。 sp_oauth_request_error: 向 SharePoint 发送的用户绑定请求失败。请查看服务器日志以获取更多信息。 + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: OpenProject 无法测试与 SharePoint 的用户级通信,因为用户尚未关联他们的 SharePoint 帐户。 sp_tenant_id_missing: SharePoint 缺少配置的目录(租户)id。请检查配置。 - sp_unexpected_content: 在 SharePoint 驱动器中发现意外内容。 + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: 连接无法验证。出现未知错误。请查看服务器日志以获取更多信息。 label_error: 错误 label_failed: 失败 diff --git a/modules/storages/config/locales/crowdin/zh-TW.yml b/modules/storages/config/locales/crowdin/zh-TW.yml index 17a1195c798..c43417e0780 100644 --- a/modules/storages/config/locales/crowdin/zh-TW.yml +++ b/modules/storages/config/locales/crowdin/zh-TW.yml @@ -346,9 +346,10 @@ zh-TW: sp_client_write_permission_missing: 客戶在 SharePoint 中似乎缺少寫入權限。請檢查您的儲存空間設定文件。 sp_existing_test_folder: 用於測試的資料夾 %{folder_name} 已存在於 SharePoint 中。請將其刪除後再試一次。 sp_oauth_request_error: 綁定至使用者的 SharePoint 請求失敗。請檢查伺服器日誌以取得更多資訊。 + sp_oauth_request_unauthorized: The current user isn't authorized to access the remote file storage. Please check the server logs for further information. sp_oauth_token_missing: 由於使用者尚未連結其 SharePoint 帳號,OpenProject 無法測試使用者層級的與 SharePoint 之間的通訊。 sp_tenant_id_missing: 已設定的 SharePoint 目錄(租用戶)Id 遺失。請檢查設定。 - sp_unexpected_content: 在 SharePoint 磁碟機中發現非預期的內容。 + sp_unexpected_content: Unexpected content found in the SharePoint Document Library. unknown_error: 連線無法驗證。發生未知錯誤。請檢查伺服器日誌以瞭解進一步資訊。 label_error: 錯誤 label_failed: 損壞 diff --git a/modules/team_planner/config/locales/crowdin/js-de.yml b/modules/team_planner/config/locales/crowdin/js-de.yml index 3422283ce2f..8291771aa2e 100644 --- a/modules/team_planner/config/locales/crowdin/js-de.yml +++ b/modules/team_planner/config/locales/crowdin/js-de.yml @@ -18,7 +18,7 @@ de: work_week: 'Arbeitswoche' today: 'Heute' drag_here_to_remove: 'Hierher ziehen, um den zugewiesenen Benutzer zu entfernen und die Start- und Enddaten zu löschen.' - cannot_drag_here: 'Cannot move the work package due to permissions or editing restrictions.' + cannot_drag_here: 'Das Arbeitspaket kann aufgrund von Berechtigungen oder Beschränkungen nicht entfernt werden.' cannot_drag_to_non_working_day: 'Dieses Arbeitspaket kann nicht an einem Nicht-Arbeitstag starten/fertig werden.' quick_add: empty_state: 'Benutzen Sie das Suchfeld, um Arbeitspakete zu finden und ziehen Sie sie in den Planer, um sie Nutzern zuzuweisen und Start- und Enddaten zu setzen.' From 74cb4dfcf23bf28094fafb42851c6c99b2759f76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Nov 2025 06:13:06 -0300 Subject: [PATCH 30/33] Bump @types/lodash from 4.17.20 to 4.17.21 in /frontend (#21154) Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.20 to 4.17.21. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash) --- updated-dependencies: - dependency-name: "@types/lodash" dependency-version: 4.17.21 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- frontend/package-lock.json | 14 +++++++------- frontend/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 034abfb5885..85a372bf5a9 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -149,7 +149,7 @@ "@types/jasmine": "~5.1.12", "@types/jquery": "^3.5.33", "@types/jqueryui": "^1.12.24", - "@types/lodash": "^4.17.1", + "@types/lodash": "^4.17.21", "@types/mousetrap": "^1.6.3", "@types/pako": "^2.0.4", "@types/rails__request.js": "^0.0.1", @@ -7940,9 +7940,9 @@ "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==", "dev": true }, "node_modules/@types/markdown-it": { @@ -28625,9 +28625,9 @@ "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==" }, "@types/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==", "dev": true }, "@types/markdown-it": { diff --git a/frontend/package.json b/frontend/package.json index 0fc417dbb32..1ca76390edb 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -26,7 +26,7 @@ "@types/jasmine": "~5.1.12", "@types/jquery": "^3.5.33", "@types/jqueryui": "^1.12.24", - "@types/lodash": "^4.17.1", + "@types/lodash": "^4.17.21", "@types/mousetrap": "^1.6.3", "@types/pako": "^2.0.4", "@types/rails__request.js": "^0.0.1", From 12222907d78afc121f9a9faf1106df2f3322c48f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Nov 2025 06:35:14 -0300 Subject: [PATCH 31/33] Bump the aws-gems group across 1 directory with 3 updates (#21135) Bumps the aws-gems group with 3 updates in the / directory: [aws-sdk-core](https://github.com/aws/aws-sdk-ruby), [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) and [aws-sdk-sns](https://github.com/aws/aws-sdk-ruby). Updates `aws-sdk-core` from 3.238.0 to 3.239.1 - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-core/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/commits) Updates `aws-sdk-s3` from 1.204.0 to 1.205.0 - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/commits) Updates `aws-sdk-sns` from 1.108.0 to 1.109.0 - [Release notes](https://github.com/aws/aws-sdk-ruby/releases) - [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-sns/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-ruby/commits) --- updated-dependencies: - dependency-name: aws-sdk-core dependency-version: 3.239.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: aws-gems - dependency-name: aws-sdk-s3 dependency-version: 1.205.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: aws-gems - dependency-name: aws-sdk-sns dependency-version: 1.109.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: aws-gems ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 4 +-- Gemfile.lock | 30 +++++++++---------- ...nproject-two_factor_authentication.gemspec | 2 +- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Gemfile b/Gemfile index ba86c62084a..27b85fc0396 100644 --- a/Gemfile +++ b/Gemfile @@ -192,9 +192,9 @@ gem "carrierwave", "~> 1.3.4" gem "carrierwave_direct", "~> 2.1.0" gem "fog-aws" -gem "aws-sdk-core", "~> 3.238" +gem "aws-sdk-core", "~> 3.239" # File upload via fog + screenshots on travis -gem "aws-sdk-s3", "~> 1.204" +gem "aws-sdk-s3", "~> 1.205" gem "openproject-token", "~> 8.1.0" diff --git a/Gemfile.lock b/Gemfile.lock index fc970c50890..7ed2bcf608a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -203,7 +203,7 @@ PATH remote: modules/two_factor_authentication specs: openproject-two_factor_authentication (1.0.0) - aws-sdk-sns (>= 1.101, < 1.109) + aws-sdk-sns (>= 1.101, < 1.110) messagebird-rest (>= 1.4.2, < 5.1.0) rotp (~> 6.1) webauthn (~> 3.0) @@ -339,8 +339,8 @@ GEM awesome_nested_set (3.8.0) activerecord (>= 4.0.0, < 8.1) aws-eventstream (1.4.0) - aws-partitions (1.1185.0) - aws-sdk-core (3.238.0) + aws-partitions (1.1187.0) + aws-sdk-core (3.239.1) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) @@ -348,15 +348,15 @@ GEM bigdecimal jmespath (~> 1, >= 1.6.1) logger - aws-sdk-kms (1.117.0) - aws-sdk-core (~> 3, >= 3.234.0) + aws-sdk-kms (1.118.0) + aws-sdk-core (~> 3, >= 3.239.1) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.204.0) + aws-sdk-s3 (1.205.0) aws-sdk-core (~> 3, >= 3.234.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) - aws-sdk-sns (1.108.0) - aws-sdk-core (~> 3, >= 3.234.0) + aws-sdk-sns (1.109.0) + aws-sdk-core (~> 3, >= 3.239.1) aws-sigv4 (~> 1.5) aws-sigv4 (1.12.1) aws-eventstream (~> 1, >= 1.0.2) @@ -1555,8 +1555,8 @@ DEPENDENCIES appsignal (~> 4.7) auto_strip_attributes (~> 2.5) awesome_nested_set (~> 3.8.0) - aws-sdk-core (~> 3.238) - aws-sdk-s3 (~> 1.204) + aws-sdk-core (~> 3.239) + aws-sdk-s3 (~> 1.205) axe-core-rspec bcrypt (~> 3.1.6) bootsnap (~> 1.19.0) @@ -1793,11 +1793,11 @@ CHECKSUMS auto_strip_attributes (2.6.0) sha256=a7e2e0cf744de2bcd947fd68014220702bcc88c81274c1cd9ce6f7316aae39b0 awesome_nested_set (3.8.0) sha256=469daff411d80291dbb80d1973133e498048a7afc2519c545f62d2cdebc60eda aws-eventstream (1.4.0) sha256=116bf85c436200d1060811e6f5d2d40c88f65448f2125bc77ffce5121e6e183b - aws-partitions (1.1185.0) sha256=cc711b7c3381e83abfd9e3a84b8a50e37f23c82fd0386ef6b91c15b6e4981b1b - aws-sdk-core (3.238.0) sha256=379ab70effc304ba2ca361d2a7140cb5ea6be23abbc948c75bd405282604cb92 - aws-sdk-kms (1.117.0) sha256=d3d655ae825ca0d6715555e2543e062fe14ccacf30bace04f3aefd6005b76c14 - aws-sdk-s3 (1.204.0) sha256=b680a2552ee8225a24d4df115caacb140aa3adc35cb9d975e20e53549b607e63 - aws-sdk-sns (1.108.0) sha256=043650ee2af3107b4cfebe4bfe24d2cfc71db81ae811bbead8203024bca9f078 + aws-partitions (1.1187.0) sha256=77157ba65f856a1c2a177e8b203abe1c37d9fe5a6ff8f4706cf0fde5f635c5af + aws-sdk-core (3.239.1) sha256=60bc83b0ae61442c47c6ea674fc03c68ba9eb48a19b9de8575ff9614bca6b252 + aws-sdk-kms (1.118.0) sha256=c9c751596d4f1502adac857c90010f00a9a52370b78e170acb198af7fa716fbd + aws-sdk-s3 (1.205.0) sha256=dcffbd495dfd2d6ba5bc86e7b0c58facb982aae298b328e5f199ece38dea2ee9 + aws-sdk-sns (1.109.0) sha256=71bb33691a8a88a485cefe4fba30dfef352104d82c14c665396534dcde39b811 aws-sigv4 (1.12.1) sha256=6973ff95cb0fd0dc58ba26e90e9510a2219525d07620c8babeb70ef831826c00 axe-core-api (4.11.0) sha256=3d9c94e3c8f8f9b8f154a3ce036b3dec2dabf7bb7de5e51d663b18bd8a0d691b axe-core-rspec (4.11.0) sha256=3c3e3ef3863d9f5243e056b7da328932c0b6682dda299bb4bd74d760641486d7 diff --git a/modules/two_factor_authentication/openproject-two_factor_authentication.gemspec b/modules/two_factor_authentication/openproject-two_factor_authentication.gemspec index 18033fbd9f6..90d9ef2b277 100644 --- a/modules/two_factor_authentication/openproject-two_factor_authentication.gemspec +++ b/modules/two_factor_authentication/openproject-two_factor_authentication.gemspec @@ -16,6 +16,6 @@ Gem::Specification.new do |s| s.add_dependency "rotp", "~> 6.1" s.add_dependency "webauthn", "~> 3.0" - s.add_dependency "aws-sdk-sns", ">= 1.101", "< 1.109" + s.add_dependency "aws-sdk-sns", ">= 1.101", "< 1.110" s.metadata["rubygems_mfa_required"] = "true" end From 2ae2c07f64d9796870f521a83b8cc2cfbec87c95 Mon Sep 17 00:00:00 2001 From: Marcello Rocha Date: Tue, 25 Nov 2025 10:45:13 +0100 Subject: [PATCH 32/33] [Docs] Admin docs for SharePoint Storage Creation and Usage (#20798) * Adds System Admin SharePoint docs * Adopts @Kharonus feedback * Addresses more feedback, like remaning the site guide --- .../integrations/one-drive/README.md | 5 +- .../one-drive/drive-guide/README.md | 5 +- .../integrations/share-point/README.md | 147 ++++++++++++++++++ ...m_guide_delete_icon_sharepoint_storage.png | Bin 0 -> 77275 bytes ...system_guide_delete_sharepoint_storage.png | Bin 0 -> 60425 bytes ...delete_sharepoint_storage_in_a_project.png | Bin 0 -> 32563 bytes ...tem_guide_edit_icon_sharepoint_storage.png | Bin 0 -> 78017 bytes ...torages_add_projects_button_sharepoint.png | Bin 0 -> 33119 bytes ...ew_sharepoint_message_successful_setup.png | Bin 0 -> 71836 bytes ...ct_system_guide_new_sharepoint_storage.png | Bin 0 -> 46794 bytes ...tem_guide_new_sharepoint_storage_OAuth.png | Bin 0 -> 75396 bytes ...ide_new_sharepoint_storage_details_new.png | Bin 0 -> 95678 bytes ...de_new_sharepoint_storage_redirect_URL.png | Bin 0 -> 64149 bytes ...system_guide_select_sharepoint_storage.png | Bin 0 -> 41869 bytes ...guide_sharepoint_add_multiple_projects.png | Bin 0 -> 66399 bytes ...ide_sharepoint_storage_remove_projects.png | Bin 0 -> 43284 bytes .../share-point/site-guide/README.md | 49 ++++++ .../one-drive-integration/README.md | 58 +++---- 18 files changed, 228 insertions(+), 36 deletions(-) create mode 100644 docs/system-admin-guide/integrations/share-point/README.md create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_delete_icon_sharepoint_storage.png create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_delete_sharepoint_storage.png create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_delete_sharepoint_storage_in_a_project.png create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_edit_icon_sharepoint_storage.png create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_file_storages_add_projects_button_sharepoint.png create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_new_sharepoint_message_successful_setup.png create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_new_sharepoint_storage.png create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_new_sharepoint_storage_OAuth.png create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_new_sharepoint_storage_details_new.png create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_new_sharepoint_storage_redirect_URL.png create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_select_sharepoint_storage.png create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_sharepoint_add_multiple_projects.png create mode 100644 docs/system-admin-guide/integrations/share-point/openproject_system_guide_sharepoint_storage_remove_projects.png create mode 100644 docs/system-admin-guide/integrations/share-point/site-guide/README.md diff --git a/docs/system-admin-guide/integrations/one-drive/README.md b/docs/system-admin-guide/integrations/one-drive/README.md index 8275cd23e56..37c01714861 100644 --- a/docs/system-admin-guide/integrations/one-drive/README.md +++ b/docs/system-admin-guide/integrations/one-drive/README.md @@ -3,7 +3,7 @@ sidebar_navigation: title: OneDrive integration setup priority: 601 description: Set up One Drive as a file storage in your OpenProject instance -keywords: OneDrive, SharePoint, file storage, integration +keywords: OneDrive, file storage, integration --- # OneDrive (Enterprise add-on) integration setup @@ -36,8 +36,7 @@ OneDrive for Business plan as well. There might be some differences in the setup documentation. > [!NOTE] -> This guide only covers the integration setup. Please go to -> our [OneDrive integration user guide](../../../user-guide/file-management/nextcloud-integration/) to learn +> This guide only covers the integration setup. Please go to our [OneDrive integration user guide](../../../user-guide/file-management/nextcloud-integration/) to learn > more about how to work with the OneDrive integration. ## Minimum requirements diff --git a/docs/system-admin-guide/integrations/one-drive/drive-guide/README.md b/docs/system-admin-guide/integrations/one-drive/drive-guide/README.md index f94a4edace8..7a32b0e949f 100644 --- a/docs/system-admin-guide/integrations/one-drive/drive-guide/README.md +++ b/docs/system-admin-guide/integrations/one-drive/drive-guide/README.md @@ -94,10 +94,7 @@ specific toolset. ### Example 1: Microsoft GRAPH explorer -Microsoft provides a web application, which can browse the GRAPH API. This tool can be -found [here](https://developer.microsoft.com/en-us/graph/graph-explorer). This method only works, if the drive is not -configured as described in the section -about [configuring a drive for automatic management](./#configure-drive-for-automatic-management), so the better +Microsoft provides a web application, which can browse the GRAPH API. This tool can be found [here](https://developer.microsoft.com/en-us/graph/graph-explorer). This method only works, if the drive is not configured as described in the section about [configuring a drive for automatic management](./#configure-drive-for-automatic-management), so the better alternative is [example 2](./#example-2-terminal). #### Preconditions diff --git a/docs/system-admin-guide/integrations/share-point/README.md b/docs/system-admin-guide/integrations/share-point/README.md new file mode 100644 index 00000000000..79c39b55bfa --- /dev/null +++ b/docs/system-admin-guide/integrations/share-point/README.md @@ -0,0 +1,147 @@ +--- +sidebar_navigation: + title: SharePoint integration setup + priority: 601 +description: Set up SharePoint as a file storage in your OpenProject instance +keywords: SharePoint, file storage, integration +--- + +# SharePoint (Enterprise add-on) integration setup + +| Topic | Description | +| ------------------------------------------------------------ | :----------------------------------------------------------- | +| [Minimum requirements](#minimum-requirements) | Minimum version requirements to enable the integration | +| [Set up the integration](#set-up-the-integration) | Connect OpenProject and SharePoint instances as an administrator | +| [Sharepoint site setup guide](./site-guide) | How to set the necessary permission on your SharePoint site | +| [Using the integration](#using-the-integration) | How to use the SharePoint integration | +| [Edit a SharePoint file storage](#edit-a-sharepoint-file-storage) | Edit a SharePoint file storage | +| [Delete an SharePoint file storage](#delete-a-sharepoint-file-storage) | Delete a SharePoint file storage | + +> [!NOTE] +> SharePoint integration is an Enterprise add-on and can only be used with [Enterprise cloud](../../../enterprise-guide/enterprise-cloud-guide/) or [Enterprise on-premises](../../../enterprise-guide/enterprise-on-premises-guide/). An upgrade from the free Community edition is easy and helps support OpenProject. + +OpenProject offers an integration with SharePoint to allow users to: + +- Link files and folders stored in SharePoint with OpenProject work packages +- View, open and download files and folders linked to a work package via the Files tab + + +The goal here is to provide access to all the *Document Libraries* in a SharePoint site, as a file storage system for OpenProject. + +> [!NOTE] +> This guide only covers the integration setup. Please go to our [SharePoint integration user guide](../../../user-guide/file-management/one-drive-integration/) to learn more about how to work with the SharePoint integration. + +## Minimum requirements + +Please note these minimum version requirements for the integration to work with a minimal feature set: + +- OpenProject version 17.0 (or above) +- Access to a SharePoint site + +We recommend using the latest version of OpenProject to be able to use the latest features. + +## Set up the integration + +> [!IMPORTANT] +> You need administrator privileges in the Azure portal for your Microsoft Entra ID and in your OpenProject instance to set up this integration. +> +> Please make sure that you configure your Azure application to have the following **API permissions**: +> +> - Files.ReadWrite.All - Type: Delegated +> - Sites.Selected - Type: Application +> - offline_access - Type: Delegated +> - User.Read - Type: Delegated + +Navigate to **System administration -> File storages**. You will see the list of all storages that have already been set up. If no files storages have been set up yet, a banner will tell you that there are no storages yet set up. + +Click the green **+Storage** button and select the SharePoint option. + +![Add a new SharePoint storage to OpenProject](openproject_system_guide_new_sharepoint_storage.png) + +A screen will open, in which you will first need to add the **Name**, **Directory (tenant) ID** and the **Host** details for your new SharePoint storage. Please consult your Azure administrator and the [Site guide](./site-guide) to obtain respective information. Be aware, that the last step includes copying generated information to the Azure portal. Enter your data and click the green *Save and continue* button. + +![Setting up a new SharePoint storage](openproject_system_guide_new_sharepoint_storage_details_new.png) + +Continue by filling out the information for the *Azure OAuth* and once again click the green *Save and continue* button. + +![OAuth applications details in SharePoint file storages setup in OpenProject](openproject_system_guide_new_sharepoint_storage_OAuth.png) + +Finally, copy the *Redirect URl* and click the green *Finish setup* button. + +![Redirect URI details in SharePoint file storage setup in OpenProject](openproject_system_guide_new_sharepoint_storage_redirect_URL.png) + +You will see the following message confirming the successful setup on top of the page. + +![System message on successful SharePoint file storages setup in OpenProject](openproject_system_guide_new_sharepoint_message_successful_setup.png) + +> [!IMPORTANT] +> In SharePoint you can add (custom) columns in addition to the ones shown by default (*Modified* and *Modified by*). Please keep in mind if these custom columns are added, OpenProject integration can no longer copy the automatically managed project folders. The columns will have to be de-activated, or ideally not be created in the first place. + + +## Enable SharePoint file storage in projects + +Now that the integration is set up, the next step is to make the SharePoint file storage you just created available to individual projects. This can be either done by you directly in the system administration under **Projects** tab of a specific file storage, or on a project level under **Project settings**. + +To add a SharePoint to a specific project on a project level, navigate to any existing project in your OpenProject instance and click on **Project settings** -> **Files** and follow the instructions in the [Project settings user guide](../../../user-guide/projects/project-settings/files/). + +To add a SharePoint storage to one or multiple projects on an instance level, click on a file storage under *Administration -> Files -> External file storages* and select **Projects** tab. You will see the list of all projects, for which the file storage was already activated. Click the **+Add projects** button. + + +![Add SharePoint file storage to projects in OpenProject administration](openproject_system_guide_file_storages_add_projects_button_sharepoint.png) + +You can you use the search bar to select either one or multiple projects and have an option of including sub-projects. Select the type of project folders for file uploads and click **Add**. + +![Select projects to activate SharePoint storage in OpenProject administration](openproject_system_guide_sharepoint_add_multiple_projects.png) + + +You can always remove file storages from projects by selecting the respective option. + +![Remove SharePoint file storage from a project in OpenProject administration](openproject_system_guide_sharepoint_storage_remove_projects.png) + +## Using the integration + +Once the [file storage is added and enabled for projects](../../../user-guide/projects/project-settings/files/), your users are able to take full advantage of the integration between SharePoint and OpenProject. For more information on how to link SharePoint files to work packages in OpenProject, please refer to the [SharePoint integration user guide](../../../user-guide/file-management/one-drive-integration). + +## Edit a SharePoint file storage + +To edit an existing SharePoint file storage hover over the name of the storage you want to edit and click it. + +![Select SharePoint file storage in OpenProject system administration](openproject_system_guide_select_sharepoint_storage.png) + +To update the general storage information, select the **Details** tab, click the **Edit** icon next to the storage provider. To replace the Azure authentication information, click on the **Sync** icon next to the OAuth application. With changing the authentication information the redirect URI will get generated again and thus needs to be copied again. The redirect URI can be copied by clicking the **Copy-to-Clipboard** icon next to the information text, or by entering the form by clicking the **View** icon. + + +> [!TIP] +> If you have selected automatically managed access and folders you will also see the *Health status* message on the +> right side. If the file storage set-up is incomplete or faulty, an error message will be displayed in that section. Read +> more about errors and troubleshooting [here](../../files/external-file-storages/health-status/). + +![Edit SharePoint in OpenProject](openproject_system_guide_edit_icon_sharepoint_storage.png) + +Here you will be able to edit all the information you have specified when creating the SharePoint connection initially. + +## Delete a SharePoint file storage + +You can delete a SharePoint file storage either at a project level or at an instance level. + +Deleting a file storage at a project level simply makes it unavailable to that particular project, without affecting the integration for other projects. Project admins can do so by navigating to *Project settings -> Files* and clicking the **Delete** icon next to the file storage you would like to remove. + + +![Delete a SharePoint storage from an OpenProject project](openproject_system_guide_delete_sharepoint_storage_in_a_project.png) + +Deleting a file storage at an instance level deletes the SharePoint integration completely, making it inaccessible to all projects in that instance. Should an instance administrator nevertheless want to do so, they can navigate to *Administration -> File storages*, hover over the name of the file storage they want to remove and click it to enter the next page. Then they need to click the **Delete** button in the top right corner. + + +![Delete icon for SharePoint integration in OpenProject system settings](openproject_system_guide_delete_icon_sharepoint_storage.png) + +You will be asked to confirm the exact file storage name. + +![Delete a SharePoint integration from OpenProject system settings](openproject_system_guide_delete_sharepoint_storage.png) + +> [!IMPORTANT] +> Deleting a file storage as an instance administrator will also delete all settings and links between work packages and SharePoint files/folders. This means that should you want to reconnect your SharePoint instance with OpenProject, you will need to complete the entire setup process once again. + + +## Getting support + +If you run into any issues, or you cannot set up your integration yourself, please use our [Support Installation & Updates forum](https://community.openproject.org/projects/openproject/forums/9) or if you have an Enterprise subscription, please contact us at Enterprise Support. diff --git a/docs/system-admin-guide/integrations/share-point/openproject_system_guide_delete_icon_sharepoint_storage.png b/docs/system-admin-guide/integrations/share-point/openproject_system_guide_delete_icon_sharepoint_storage.png new file mode 100644 index 0000000000000000000000000000000000000000..03df6f17a7e8e7e2aafa8ec59c51de35f9fb9c7d GIT binary patch literal 77275 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 P#6w*bq*A72`SQO2hOo8j literal 0 HcmV?d00001 diff --git a/docs/system-admin-guide/integrations/share-point/openproject_system_guide_delete_sharepoint_storage.png b/docs/system-admin-guide/integrations/share-point/openproject_system_guide_delete_sharepoint_storage.png new file mode 100644 index 0000000000000000000000000000000000000000..948a4b660f973b9ece61b342f6b28b6160ee21ce GIT binary patch literal 60425 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%0D+hvwm$|B(UAHY8d+9&nnABT5klK)?~ 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 literal 0 HcmV?d00001 diff --git a/docs/system-admin-guide/integrations/share-point/openproject_system_guide_delete_sharepoint_storage_in_a_project.png b/docs/system-admin-guide/integrations/share-point/openproject_system_guide_delete_sharepoint_storage_in_a_project.png new file mode 100644 index 0000000000000000000000000000000000000000..593cf88edea65275557f5ef127b0185cd15d85c6 GIT binary patch literal 32563 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 kdG$Yx*Z)t;nOrkOwuu1jDJ?4hzz>% literal 0 HcmV?d00001 diff --git a/docs/system-admin-guide/integrations/share-point/openproject_system_guide_edit_icon_sharepoint_storage.png b/docs/system-admin-guide/integrations/share-point/openproject_system_guide_edit_icon_sharepoint_storage.png new file mode 100644 index 0000000000000000000000000000000000000000..46eb159861657c880006a9ca28376815eb77158c GIT binary patch literal 78017 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 literal 0 HcmV?d00001 diff --git a/docs/system-admin-guide/integrations/share-point/openproject_system_guide_file_storages_add_projects_button_sharepoint.png b/docs/system-admin-guide/integrations/share-point/openproject_system_guide_file_storages_add_projects_button_sharepoint.png new file mode 100644 index 0000000000000000000000000000000000000000..7c381ff5a6b5738b589097168dba5c54e094d3da GIT binary patch literal 33119 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%0DRfbFhUN*wzjwR$zY)L9?fm5?E%a9 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

y8m&cHc|QSmA;K;%gF$<|{1F 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

h;jZ@rDuB@dj_1$jVQzmLpjp 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 Nu9l%@<-Lc`|1VS)Z~g!P literal 0 HcmV?d00001 diff --git a/docs/system-admin-guide/integrations/share-point/openproject_system_guide_new_sharepoint_storage.png b/docs/system-admin-guide/integrations/share-point/openproject_system_guide_new_sharepoint_storage.png new file mode 100644 index 0000000000000000000000000000000000000000..f5961f816e00d6dec920cab1c645b85fff5df21e GIT binary patch literal 46794 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

n)n({mVZM zPzg!oE>`!PXXWqk{Cqa_U8vXl8m&08sudW4c8H}_C}Os62rz^AQq#iCiM@U_9xg(W z`#o;7uiO?kBBnMhDmbkRVgZl#k88YPVLWGSK|cYS@0@>J=TZ;wO2sYx>ngLhxo6>NWnVmn!rf{F>ye$-5-`S(cQZmtav zD-pUvaNSvobILa{;x~~XV;EsTrPIS^u9qI8rnBaZ((|l9GPteaocO{;YLQWjDYJz+ zq4M@7;xnMU+xoTA%v?}wN0I@7D|(g{5{v7|c&ymVhIpU3D#^fMT)0l}QyZYLZ}pUr zRnEsYdD;7=iAnd%xy?cstv2&DUT8jTcHRt{rM38afS8pA%8*0A7V&HQEhcrgKx=LW z&#`ca3V*zg+>B411zN<}ufM7GBE0oRBaq-3n{uvyWU|5UVDhhGGs;J5Ba%1Tb|AmW zaf|oKO7VhcEB1B_56MQBHrr|h+8P%c9ft@L?dfgjD#+c3lx@XMSSsV}s{~d9h7d*(qKg2LF z$MH$aCrUxLZD8FP?n38yTxID44%^BsHr5{Q~6w0GfKhATwAKfsY-zm&mu$Y5#L`d0f4Ppc&PD10|bS9Hzz0 zxbzu>d{iCB4XdwrekoVDtLN+EqQ`BO9^fg?qoBwhf#FcS+@OqiBKcve?F(tuax32K z3%B$T_{pr00jOCDZ^0mwQnmbPGrsh`8209bSr%m$R2322TCyKyEf?BY zs%Uy8mDJR3vt-p&9YE%J=sxqVqrFxm5oq;LuSK$G(|B zRxww@6>(Sta*23~4X{tuvCnCw54-Sy1mMN=Apoef0HQi9SCvjsV5e z5`6aqT_X!zz7_y+;HV!8IRvQv7jpyUC@aq3cRxQj(4CuUC)emc8xl?S0Hn{?ziyus zMd$t-4>mj?!nM;pzYcc$eqD4WXdINxyJ-XD6G+Mw+9SggZeaZ{Zz`F>5#Om~0!byF z@Q#j(7hY&S@LYbf4Q0SVJlNYF7D(v5E0zT4k~K9P!{(Y0sqESKca$TJp%7rtr|2X6 zwmSRNOZkr|81_^B$L+EO+P?obNTeX6=pHeA23n@ZAI-{>rk@J|O;mZ!vGzi05U&OB zq}o>|e>FPGXg2SP-u`D|0z`ZNSyCiz!vBx6v~pKJXv69r((5z4_@OEot>iko(cXrg zMkM%X7jb;LJn8*d+T#WlMRdsSj}a&GI3b1LV?`6b)41+#IRjcA>BWaaN2S^W95oXc z>$gTW>lRI-f>-eaRbH_djg4Cpoi-j{R$2XillbgkuT>VZSS)PuExny=b~-(x;8N}E zFW)`d-s*Z>h+q|YuMI^3HCXRP2_vbB=*pItt`aXUx{O&qBBr-LX({w9T4l%WYzq9J zbGnrp(?Cvp^v_~FNhm94KasihSR7j1Tfb}0cpJw~Uf~swn9fj5^bEMc>~cH(s#k<8 zu2O-%4uM#awKAX!70|K5#7E-rO1wB8CrO$x{fuJynXO6YJH2J%rg$hz(lxHv1TP$@ zzFSR+GzHd(kVmt&D(v;6`sYJsS#(>}5XhGog++CuCREmwx~HIN5Hs1=Hmal zclL!%)rNK!hTy+tp6;v+jXVx_Q=(ipM}{pLnG72E?=+U7NST%kudSwtLf-6U_U_!x zwDSsA52m;662n^Zy*?cA+1Bc%N=mQt58|{^=GfG=yiYh!o&GO-0W&ir(63v2P>LfZ|fz2o}-BeIWwz zoDUXsevRa+6Z`JhY*tzH_GShf>U2IZZnU_CT^cG?5N)Hu-AVjy;A6+hLHG?}dQ0Q01%F%?Wc@e2j(q7(<|FMf{+qjT2^Ys{<+HY< z7}It#B83I<#hTnpR+Pc_c4U|F0{l{M1~>|{R_t8jzP-&Z)u1mTZQ1%EBDK=wa$NB1 z=nx(Iex}P?NUWoFfu&eV>9ic_WLPYqom_q3E9~ zo1b~*A+bSNHZy++IlZ_>?+KTq)5}<`kJSVt<3MixwAqP#MK^QXwEm95)GrHz7Zeo( zf)-=s!w*CY&H`as?`+@na3$mLh%c4248GW$ z)Lk6n@_tG|n15B{g(Zmgd?%&muEU}i=>}Txh0Gd@MJ8r|+dY^(o=QogV-984*OyVM zIL;!3tq$wmE&^froBP)iwJ`kYP8;yk{r&Alw9mStN47&s>|vYiO=EWr%r7Tz<7o?+ zUtu1N)w@q zqL^YYo3~l?$6=|^BO2>Evk~95YwS=qY=ghhiL!2x65>g{IjRGf+qaiTTKGIY@N16W zcOS9!a82ZS+cU&eaY_%mb?VdrSdmQAis8ax3QJAQtE(k`Q`aC zU)5?L?#8<_W@0(|>JHaTk&Z*&RA<~#^o4cn(yWcV*Ynq1 zl_vxR3T`tCKf3vxM<3c;BEq9oe2NYPIsNUJkZ+?_C~|y=FTW_}+sV!~sqkiT{W9Q1 zgfV`WqiSU-WKcM98rP=lgF-#ms5)H~>l5Cc^{`v)BGNtk6Fni5=~t!Jv%N-CAMz=i z^NSG-4Q<_*BNxWTni#p+limG`S(nmBo7dlK%*obPUJofqm>VPYUL#U#{$os8qvg_HO4-C8`%DZZVj^rzX*!tFUL-y-=1YNRfMr+ve``da`CvW zWy45mrCk2Ig2QjVF04bTlAeTxg{W_M*ZcC;5z1rYOto@V)Po_h24PQ(_iBW6sd5$S zPB2_-x;fJb%lp<9t?<6aD4L`LWDS6kCInG*t zy?fn}x`e4t0!?!(qZTH+CeVg!Z%n_Xuhj_Gt~&FwIxaA}*+P1NkorjuaT%&BAVRKtgXoxH^{^?mSCWw!1f`cjnAMw`-dRhI&$w& zzY_lEA0ilzNP1$^oI)Md&r>x_krpXBaFY{CwVT z+r*N<=EbW`xL9fHTVTa|@U9s&$zmy-@KM1TE#;OyP$%6DuJ2D$Gbng@!@1S)o-e^^ z&7hiJRnYBvgqm1+7_QxCOuW3MeAlgqTCE-~G?;198btb-)$QSdNrg`s0>BfPhrV5L zPT^TSFC4Ko)0odX=rDSSoar}xNjgG zv2A(`qIH;LG9$wj9xXk?g`}xB-B-$JJ`2;^Y2FLQCFIHOQ_vc3E*9ULtbX)#hRVDn z4BNh^|4U-U0)x-OpZ1*9#wg2>d~l7C#eN@05VLuh>j0!g!1tD`my6rvkIi8U!^}Hw z{K|3%i=p%*{^VtUYXx3yO|awGEG3DCC(tFzo&wc75j5a(hC-#v3Ra65sDpJNI?Rlh zy1j^ll%COgJ!r$xPvsPWeHxvv1TBc4!SZAN?;$E46=F^Pz- z=xoVyCNni{G}Kt6Yd?n*2#N!RDbq4L8;5xkGWYF*p6imyUk=kL@p!na2k&`Getm$1 zUGRUN{X%nS!vuxWDJk#O)_Gs?uhGsSiYPK5&Dv~tF&cqjp9k1VzIQLY(EyDmb2GF| zRaQ<7aHG;kI}{tc%TNO9?B{(cxsMb0v~D2P#C%R_!7nEOtX)9JzTu9YaWh4S zvbS}zeY3j;bq-_Hx{4*$RU=VO)!Rt6Ckr09zpG{`q#>`;>`lL~!` zTFMX8NVU^iXxE$Y6qK=TY}{cTSYP|onhQ-oPag&5 z2Ky=fQT<`32Ixf<|0P3OrWDRmWdZLSW-EiXm(~*0)>s{PC^O=D|@3rbX8|B(k~364LT9f-#yo}S z*lQngay~`tU`=1e(%GQ1^|W7!;BqZlJM2`~*c7gDEPZ4=a{ks_j5IKW{g7BIX28j0 z2dj}BKs(b0Nl$mNTc`u&RvJ3qK+fMxkC+~CFlthVm8sJxmSF->s730NO;7`CJM|!0 z6Hn22la5`m#$wo~@$!7M-UJ}3o-i{g{^Zxp0z7iJb~#-Kc~wwm^PG+!%}q!&P8BxK zH2z=^uifagcmn+in`nVK(WZs*N2bVFYAdp`wU_MjMZP+64?2G}YVShZb9V7q);Dan z1*s9QCu#+yuh-jfr?0zjOXL=io8_Qp6=lZYR$b$Z?RK1h8{U^$kLOaI7$#a^PW@G$ z%?AYyl~|lBa(GxHzaJ8jb5i&P5?S|vC0064eqgUz}atkeEpk6N)?U zP?k{>N6N$9x7X_KA&xeEvD~LS#b)kPGm_rG_&8+hYO^>~AZd0l_7A$?D9kl_9ckOc z09Fp}F#Ee}7merl1z_#@+P*6g!0wI&a`He0G5tib{63;8M^W1LNN zyAW}@el4`qZoe6PJkOOv30r}?ZZ&WtbSA#Wn$1p#HGaI)n-N?p;&a;=q2HAmjym2v?4?>(c9?g z0+#ye@^H}Sov|>9a8R*jWU8a->CT885-pvDE4;-^eyg4JY{jK-N2$tbMkb^Uw1lf0 z%@i3c+Ch#$=^F`;-J0c7$Rv^Po}@T$Zg~dKlDrFJmT8<=rpW!xZjq^1y)`8D|1hIz zYI`HpCa#zM=^Cd>nH9Z4v}j$hLB@;g9cKA#F=5ubPiD;9c7akO92f&|%@o8-jQ;(2 z^c1by{BoiN*y;8%za16&p@EAS^({U6Yn$yKWXS_{`1Moak%ncFUG=fQUHAFicDT)= z2lJZr;oXShU7l<>oWCnfIXuJddw6|%@#r0dIEmAa+u8;s>~qh48fz@upPWSo=r1P4 zxiB4d?Ye>hb%IPK5zWw>wGY`IXPx5y$HRn^abMY10Bmr%S(364M}}# z%aC{%8=rNnV7SLlh08IH-AM${H~S>E1*s7aWias(rOeolB$#srf=#9t#jtYEjKV7oZX~k=S7c1|BgKk*NfUT0Xq0N5GJ&TE@7oSe9BN%h=O_=bgh}jy*q{7n+z| zwZUHui2Fh%-8y1c!@O%ZhGn1A5qmcstA9e~p6ZW8E>YcVWd5Y>7U9bb-!OgmxAzGr zx_y=6?7%&o{$_XVEnVDnL7VuNDBuytmCI=RhLdP&AGu#QDaLi-Va+_`__J zI;;tVWTP8VbkMA71d1!D6G5=Bv?T;{pSiXvO*4-sXYtg z?mLYB9l7qt?{t3j$=LcEC?(Ec$1PQvrsUbs!jVEu(^?fNB;L_WK&Sp966wYaY8@MD zf}q4bz}(w6ag3;0v@>~iMXwhf8AHUf?~A?ui9GmW+%@Wkjf;WlTsogo@&*LLQQJ?^;r^zDZ&pJcUS zLN^{SY3PL1(sy!bMXJD68FG(R*y%+?&F{NVAnnWEZ=Hc;|KOcm&$n zhu^X$q|(dzTG4*6DKVZ4^R%DJWSkDQ$YcUV^`|@vPz2Q`@)~LlcsBTM@uM7l3^Fbh zU@=w2#2S|4GHmp*{a~Q>9q#<(qBs7Bcf)W;QkB1>_ zq_fvn1-`4l&fiQc=6j_9*-Z)ad2qWeiTU9jKY0SSG&lX)+r<-~Ql(*2@YOf?cP}YAMkI!1%Az>ngGBh@|ePP%Wn8HPD&Ljnm-Agnb^U zz!FWCPyY}!x$PAFClDpMC!0TsC}^FD!c*h>DcbvtL=bVsmK!4O&$^_~KfV(RSi6=u z@M=0&gbFE8o!;%HY=_U)YZdOfe`-a;Aq@B?OBbDR>U&OjW;;FB(x5m{SZ)(7rui$> zRhRtG*hd@db4zatGeA>ItAqB^1VPk=QT1v{RX$>ehLjBBXv*pD#giTibes~E=cVS=MX8LF+5Ab94i1tj^c zO3}fZdcgjH=SXxyM*n6oBG0fjK;$hcV+FWoMAj189!x&?`u!wE=B*WP7mPM=F(#N< zi5g_L9oo}$1aHaR(3|_wWiU~oeDF~Das*n`}!d%x|dNfkyi|?c4PNEM- z@)?dE3Q|ZHdCsk_H-<)B2_9a=g#fIZxlbsz)TVfT{kW~`#>#{y2ynvjqAUp$*S#4v zvFlcfc*OhL1|IGDleW}uvqfpF7!@l$teva+Aszs*(MoGq#99CZ zk53;zm$b*4R8nicwz-e(>e=pV@YrVzciW4M@zH$Wflf{In$cK~Q56=^xc^Q#coeEeBY{yH@s*(gE1zS#sEH0{OHf`~G2auuR zoWsPHXLR-^Th$6a?vuV{jH8XPvHckIV6cUwBiino9Kl0OuS~K6mD>s z*4L#ejzH~cgw!~rU1k6xG=?07lB~OY!U_P4z#UwRJ{2dfC9Si6a9V;*&8MKpSnaq@ zG_{UmuE?8nqPqfUsPPE81r6;CBU`VyLtN(y*~k@hhp0Ty+&Z{jaO%JfHI#jgp)m6R zg!qKDKQ9gM-BPeHglkb?i=-0u9d+RKNWg4tuNXHJs0rTnT6Ils(; zB^U!Qkm~$Zz9EtoHYPC2_`Uz z?a`k(lX!BRS$J%}dWGF|*;0RNv-{@Jrq8ylgECtbLWmlB+zp-cK-R6lxgYb`kf4fG zJCr6$hCULQk44(W6OPtD8SWKb)6BT`Q91{1UG1{THjK9hGQFZ*%-{pu1MzBShK7^{ zSB^d$Sehw#C75B(UcUhrd|Z4~f!hJ~W>@QLn~FU>5^J}K0PeL*pH`m7N8)W4WL%Qg zuEkyV9`QDRh4<{v4D<%{I(g&uoCY^@Cfv747XK3dTe??7<x;Jxh#v{uZYSa_)w#@|y`8-G!eP#(!+1lPc#*Y!bd53Bnm#G`>&Ia%@e|HqExnfW!MiN{UPf5yJTeNgfi;=KS+_4n1|??cB*F`EP~csH-fAz;3aI8 zI$I1pz5`VdP-6>AMInX;by@Tr(9&bedV3gH6n8&%05y@FOCn+ws6sb?=Bjh=cx`MF zhKdooHwWV;*=7XhXdjL_PMJH~mqn0vC(bq45Kx|=O2*|N^A`gm9c-2iKJT$K<>*#; z-dGJeBJnWS2e?y)cU;e}6`t$jtYq zfVhYaT;q+{N)%e<@I({TCu3l(f|jV=v~e=Dm#O>~bSzxDh#vF zk#fyR>tdSx&h)xt-|Arp3xphJL-58x=stSwm?lrN0-=}EhT0W;ArdydeH3g}?*`E1 zP4@HT6TRm!G8_YtY98-3@lRso`K}DaKM?-%G_}7f3hC4x>=5HFH7E5$*Dhq$`xhml zk}3gJOEt2eTfXrfu-M0wN(>*qijC!gf!&IOh^?3JEO(ZKo@Y6^Xe&@ady% z&Ah2~S|9zCMGa|!b~Ta`8OlMm(cffBh`Fhs8_^auzd71z^Pu_N?GDR-qMuyQuE5w; z%!>ZL9O=a7p9F=wS?}XoYO%&_v9Xf(KjelDM;7LNlcg_jy)kw01I%7i7U?Y~VpnF> z1igm}+U;0c@>?G?TN65qMpQ%6YmEs32GcyFi~bX;e5NHrd+aX~IWbz@62qd=#*4w> z4FmX~TggLp1BIpLs_LSZKOBvDc5#pGi1||$qOPZ!SR^o-BO8-KHMj1(Eg#}%{zh%g zJQ#&=LY&#@ugIrLd;H2OPz*|EK5#j9Sg}!Dde-va`1Lai3_WNyuQ2qcP_pXqMm?yX zCdbM&a)YDU`28kCsr9?NQYnMC$o*SHbd?l%_| zQ{4Sk*m-V)9Qw-%1YIt;o}kUFt{~^O;Axn>dZ{OwtL%DgU*-Ht$(0!Te#2r{=5q9< zp5$)HY?Ue-h5wg;#M=i+%|Ww78uksVcI)Rk5ta6LHOBJs)Okf z*cYs0J52Dj{1HAek~>+z?kZ>^s=P2cVVAKu-5+HCBG}(R7Jya-p_ij**_9Z!@^U0})6?0IYUbKq7mvz|UknrWiig}Q$w-q`g*4-Rx$qiuxVCbGbMDQa_Xp(@M zbu?RF@&9<3%GU~KdY>>yF=Rltj zKI($2bIvnke5n&YsTwLM$Yb-cl_SMtlbGzS=zta-vpz4u@Q7dlVS>iX?G@I>?wNS1 z5=t^A?14`=V$&^?PeXW-9FQJEShcaEEIH-s5-=h&2K&c>1_ggf^~x>{C)`0*=&wLE ziYv4oe;{QD5!UtXErReIqdCRRRENgMe26-4mVc|>kI!I<+&P9}vR0fG)R9d$=j;QY z)Q%J^qBGU<;%E6C1_WgKax$n>`flaxA|8~dYnZ4 znECc)%OyyTqk-E z6M%{A`9|UCskyl~opsu-oo2BEv7uP`%nmA5d_9D!D;(f?BvBdugeX^c6w*#>5_w&D z2Wp)<5^7MxeO$y6VPT_*3B?gBi6j0D{ot=;hO&{^@biMJvQ9tXY2ZR8>LA-rieQPC zjqrjPMwCXjxy)X&hVgQI!Uwqf4K zQWLFe?HVF<3c@VcvHT{>48v7&vHRSPP{28>%1+ zgY3m=#3W4)Zkb++3L8p^esAYUEvDx@oRtjmFFkB0 zm=Y4#ZhdT@u8kg!xd&P-W@iy-Gu^MeZOB}SH-~@Tf>B8GeE74F$LlAGeJvuDN*d0< z6^L69d6@4`>|!i#?oQ()oMOG0N4T6BXRh?-RmxNWWdQN8xORJTgR>_)3d>0J83#Pvy3&V4X&&W)B^Erxp9Ql zZ_s_!ka{yht*X|=;gKdaDBL)3f>o#_jO-8H@Ki1Fl2o~Z$euWk1(t&ZXuXqu7xA+# zbNmN)-7(!WsR}9ZKJkIUN;D8zB3tsdu2D;ZpYbeTwfJ*F0$i*G@@qDHYE*KR-RC2% zsEG7HOTJh#h%7%S5=Q0MC*f4tB_*&xRfur0i!?AuNz$1Qb8vyFg#OpZ2H*0JfCok) z6S)Wo@#dUD6FlOOkhdZhuV%Z5&RPKwj6{vW)ZS#Nx^cc#&QhT-i=?;UyRildurcDC zmA<>XIagPQG|Kw_peFgsbB|fD>Kp0n?4B5l*Yt8Ra&-(VMMxxqD|hI|CEWo@%8Up6 zFbvB7NsC1{d1vwy-BW=uRcoauWPV>?G+B!#c z)JCPVh4*CIH{L8ke))!HT8gwa?d9_?MFgfC2|oX-&F}XW)`KK-(5q4l6r=6*v&?Y# zc|hn*rvK{By7&C!XKw=@@}f1{y@(Sl=U`RJVAW!a!Z_uXg_oJGyL8Fv_N0aCv=-Xc zZ!h!ld317tr%#0XG=laXV5n7464`h}nOzi2hsH$seWQD}e|D8&^q0nYI44;B&_n$0VIC6$V*q@E@F#PbHKAn9s0YgiL>dD_c8KE$6`MPsx9+g zX?Nghd1WnP-IY!lwnp80&nBY#)eNd57&)D&SnQBnL})r8M?x+%Z@Wo!8`X}r?{ke! zPGSzKO?rwiOVj9%#Ra@r{&5Z3W_ya7(G`VB%f~OQ47l?>J9D~op(u_O0`01_=srmz z8bv82imhyS>U$}?KCq8Y)d(WhDIYHir7!X{LwI?42N*QI?O)HM5526tAJ?E}S|7Zh zp^dwi`sBo(I( zEDEYtiESkNNf|%jSWEO0YwD+>B506*IF_K>aRJEX1T;Ac@_a&XPQZW_)F=RceXe}( zCz$!OEADzSu0jonSNUT?XO-sS6K6;3%R6mcLo9J9iRvT}TPnmr{6V%{@hz!R40)r@ zGEtIpN`WeE&2rxkHKU-?qZz1~8!A+ML&bnD$yY;~I~S#6N;n0oiI;b5cG6$|ZiW^^ zt^}uO0){R%k@SV7&8^VsvloBxEmNn{x}X@u7NP!o^QsMod=33S=skVGez z8Xl=2<}Cst8-=6{nKYG6q5I=}mB`~i)*wtUj21wb=**y@TtG!WFs)0)qLWh*>|RC} zU-5{v{^`6mjy2=u{>7y&6h2a;k<*xvlkw>7r7D8`PIZ?SHrwKUWVMP2j61=1c=N}~ zB#BLWQlz>DJI3jt096r)i15SOC^tBm^zJtVK3n`C8-E~q`8<=Ne79YpPv$@a-TrYW z#uhUt`>XNU4=q={UhnyIq6Z^*hU^?Fhy>%x@JKpfwHh0udID(W41~2dnD1X4h-s{L;Lp2q}9+lc@ z*C=XNrckyGcOsOIMra2Jm|Z-j78C0w6J(+3f4cwAOzy6JvFXTtQaL1+O}yhAe!nu1 zIH*iSb7*t!ziXARNITi0&=^XNA@@GD#E*hSDkiyNRYYGwqaml%z`E#VfhB)Fs^)~x zJ+Va-tPH$*f{2Nu^a1wzGdd1FWNt<39jCv$sJV}_LVSzeV`7P)IFbha&!{h}6G;Cd z6hOCwYA2$5Fo&kG;$n^OR_Kg=c?eF9#?cq6!TG*{|MNGJ*7{m zqsUaJ$cuR-8YAMYe0uRspV=W-YP^_p4?oSyX~w+RQs{t2)jf#hpFU3$gnT|2TeRxk zg;y8fQ}MVzaqqU%6nX`|cz9f6Z52UQB8oUPm)PX=p?3%=ORY=^*K9PSzn|G~152mD z9bfDj>yP6b`HNK35kXtf6)&$OFEBj5a6?5(TDt4@0#_JRW#Y#4az~N5+>mWEW##6} z#2)LOo#t>|k#Hv*d3Sc&u^6nOB~a_W#x9=f`RdUwnxpuZnHnyCP_3`+5mseKx5^T^ zc(y$D$Bz$FHe*mvuV3%Z)S&)Wh*2w<1@53H6Yx8K^PI;pq0L?O6Hc|&Kr;796_jZm zHli5HQAs{_KOLjHykJ;#&6a=cvq(bM9tvY{QV!d(S+PS@YI8((PoRx;5PCudnV=1+ zXUIuU$eX>~wbPSRgucbLJyB6nr|nsNo5}b!XhcLAd;CV9CrVCUY3>Y##`mKdUPk24 zH9x<4(rQC+t*cAnUWb*<-~_9fe}RK@555&iVe#r?Pf1VT+?bCCUt--MwI!z;K(0H` z@#{vNm}7x^GFo1Q19hhUq-d-0qs5U_+xywZ_VuaM8qI3=*D-`kkqBEuxmMSDa0n<8 zwl=F(h$S-Kh`MtyMDWZkh$BP{g!bELwLB9 z`Dz_UL}Rn@@dI?~h||`-OAF|te^iCC7&37pUpiN^zI?9LE$i+=o@g=e6F5&Yorge3 zE-gZxAw5rhc>kmA#l#k!``H94;`XR;W3`E5@hAAHG8MjVZ+Lik%^F+Cr|V7BA{`(E zLKF99XjPt4#|Vmc-SK-{o26>xRo7b>WPyY3m9|%RmwWjul#gyEt_tP~ldoS`=-Q|7 z&J&e7md#`u^NCz!-tTtlq~7iibFgP;XGN;D>ige&dc<~j+ba4pIX2DM&6gkwC@F7@ z*B`9wZ$W!(+`Mz(yerzp+lL3pDczv_)vSqp8Q?Wd{X-CQpWs@KuNgZzJ9iYVi=IvP(9G31(S57F&Y%YdJs%!gR~aAlu@8O7KiPpt zMAUGjz`-PlEGjZjffJTd@3|C?yI=`hmo6AW+bD#KLQ8c9FfubUceKKyPRO?V zKEGayz*2v4zqH^~Tl4d)azu3uU!hLZ?kV#(xn~^XBKhLxI zbe2aB4TyyR&AcG<=_(E^LP4-hO!;Te#s$iayg3H zWAp8ePOqQJiQ?XUJmB)*UDzVHh%73F9?(ap)BS01ZXTxZ-D_MXUE%3B zE>&*NuXp$M3?CP;_nl7Vl8?=2s}N&|gi`mOqMi+r(zt8_gheH@eez5jJdb#15bupl zEPzi-)3tAXQd!Y43&BKJqLsnnO%}7!&1d$5n*w7mq}^FqOiK9>vu@M<&*n=hO4&@w zVu{^EuA@5?(zq@!&%@LA67R_;q~S{1E>zmGWM!bLZvkw znO+-0Kt3?1X^}S-?Nx;FUD0#Axt5W`XRrTp-*PL&%eB9IKfFE;e@d@z!<`ey`=4Vs zj(hBML>sl+9`y&+`2TmeqCa>xvj4}elK%bjJL{mJ5Yjc5w|ekQsj@J1bchYOG*C`# zDu4TZ0QrC5&3OCBVn1#Pmo;uzA{V~kzh5cpHDV4KZoU5tOij(j!6Cn z0Di8Cc7vm7LKGVcz!Mcc>3oche%dp(b=Y8$93K+mM-)bsy0>>)t=`yBGAi#r1Zhhi zc4|TOG)5i12j5!Bb5qB3FU{-_=x_oB z`q2866Kpp|^*d7$HO8`Skqtdze|)meRserFi02#??)^bshGK3Itm*I#zN@RN`voQ1 zP*R21P#uwj!HK-4mgbuALYqloC6P8149t4p@L~$v2^Sdpz{@;q!iCSZtKbk45ix`9 z9r!(-VE%6N^&AoQB>{iqy<5DDA-wHqdlO=qy?_E_n*!}*oRix?J#SlyQx z8#}t|m;xOGBVuIrDoFcm;=NLP#ZoEulV&yju&3MMQZ#~^rAWDA(W>2Q zmCUk{#8UEAM$<;8DAU;NzX0)ZQ?DIf#Mznt+q}0IGu7Rl=k8b&{+pSS;LSp&j_X^Q z-zR5$N1PN2y-+?wIM!B|BQVHne0*GZmNCQr=0_F#B$fOvel!6`$3Pw|%bD+HmHk;( zgY#{~U5!SCUY^%z+wN4A0Ar>=I7werR|*N`+IHFE{BdZBl`y-tBFQ}pp>&PiV>?Nd zsT_gvPMsX}$F6t7tTtM;Jx{;hQ}+6cN{&@~sF32tt&e@lOQ8soWGj&C4Q8WKEVIN0 z?JkqBu&`uTK>l-2+(~Bed!ZXs4XZwjXy>L7Je7mbYe-eq7v8^8_i{&N%+2vudV7KW z!UM9TvjM*`mxzeSKD&c8j>AtZSXi&`<}+AZgGrsO_o&lZHuH6m*t7|fvm+T(n+@z1 zOK7#0>Z9MWWjw_ZaMj&33d)oq6D?ui8^(1Ci_MnrR zog(E%<&e=V0pHhr+S=fYG+&;Lo&ASrun5^?Q4SSl6iK>iwZAau5c$RVRY*ysOq#{r z-Q7InJ6Fs)(`6W!4zifli6%9fGF>IZpGE8Y>g)?YfBt;059^99@%w0rJ*Oo5R4C?) z%*Vbd4+A&QF|aj-_-)+oTEaHVrz-Su4>+v@l!3ArsXC1P+YF0S#@WA;(zVg~Jwcj8 zgJF>Kg)Q_9^wqk@$F2AK!pGX*%_CaOXTHN{w!4Ref%V4u7M=Oz9iT&5buPKEZFJ%= z^oEs_6#_u???oXbahOEPLIY2tVq}DIEO;v6aNRDH`4^`N@D_?93SP@L0PP8(f$@ZY z1)B8Nc6)Szdr+tdu%nVR(6P0gF@ta8@_;Mlw0*$+@Ip*La1iYJIGp$_%>1;2fLz}> ziRE)UFe#P6 zIGY$%AbKd(szCuCMDXta2XcbZrm&ghQsYT5c_U#HFUijA7Z+_;Qd(XZbhd^4z3LND$Z=0*!&ycRr%!-EnZqWT2Tcke z%7?dgyf~|&lI?+!fec}7>P-63ofA`VMvPRhZd6a%PYUi#iPHb_tWP}HgGnNVoWoT% zqr&_kABb2Zaf8f$;rE!Bm}k4;Ox{`dK*+R}RoD03p0$5Biv%hB8w7nW;$(P}qmzok z?R?07ymT#LuIZkcgxk)eJ~l7Bj8ITzMl`oL|96CUH|yW<@RI|hJPO`iJ;6WNpyVaV z0*(&F++Wa_ zH9X<^ThTL_BGkEaURn3T0knWd>bW-;~3QXK;AY2b}XjH2gg_uEdQ`1Ad`O)(qDTQ zB=uv<5wtsvYBHG6byrJA`sKq^nOZ45!x_(9n+fFk&M2y{ukX)i0Q%h(Nzl8{D-lV` zA%~BWlCVhlAOS}@8XEYWQGKx*%4lJIn7_I8Tqdo<6;gYJC)2e14#==x-*{RhE>AD> znC@B-9-$o6?^PK$W8%JHfCvm=Hl2b?VA8+=-&evr@kr&^D0r6b#ksGXYc2<@&Xr zM7!^s><(DB_eGxv#6kFyIQ|B;{U%Wi1*Q zB8o;8Orm&GInl!}R$|2wpF67KeH8uL$mthHGayD|%Q{XFlMSAYDSu5`02o*-|mZj0%!g*6m39t%av zZ-=-4zYGt;x*QYOWi@Mz!7iD3uOW%s>}uVamgu{F7oDzI=S|`4>}-E_DD~SH?OsrG zKbs-|cwWDHtp7U?DOYy4qxIh2*&Z#ux8(DUfk0Ab1cr}vjtHnRQ4=5}EFfpP3S;cm zSo1v3{;jgIdh8)k+Y$xQ>B!epa`W&U|HfuLYhT)(Vt1&s`tgurrSA^E9r5)L>!DWy z6xih4eeWr+>+v%hZF@9ds4nw7Oq_E&Vf}dxcy0q<@EC{IHY`SS20gv~oAWh0`=ema zc)WIqYd?w7Xx8Xxu~y9ujLEFaszIaTV0wrw0*f(W_JDF)H{?^##hb1;(c4n z?6YL<0!LmqW3gI?e7x)ncgK3>X7Jlg4t|y5K*HC7y!Yh|r8c2Pp`Q=%zl80O`>BJ) zRAn+i3KgzD3f9BD`s`n15ilCB8sHlWwJp*?hRMam5}4R~|EMVbwZE~Z?3 z3~f8jrN`Z(iA5? z@zo+N1)UD6i7T8e5wasX^OkGIn#G9{PN}0YrWcJmx}4yW@ZVFFG})Sv6CdjO8R}|h zTi!ZSE0+=u&K?ClwOe;hXMZQk%#ZQkP{geJY3NB@a`j%=w$56cxRT{O`mL}}X= z3Rm`+kgDCKvs5=lm}I(v56+3*_KZ5@#g`=OWdn-M)jf4F84m0i{4nf!XNDml@L^S_ zV?#+-QG3ZJe6VQ763u7+5^lWs`vqldYv|*UslkWXt0I+J)(C7m`1%PBrHV=Fp8~(q zJx7dVp8d`TcA7t=o4BVH*wJAJ1V7SeE}49lJUN1s<&ihxK0Z!~?952ZRi3ZzYEu=- zmsmAAt?;rJBEvo6Qmu0L@j={v;zm14pAv1HFqzs?EKt`5r8E%Fu2`Og5!Rb>NEjND zAkJon(4FNpw7Fum*=P|^$RtQqMMRI;-jHw~XFUwnZQv(;r^{H126qivA_-?NlstRY z&dCTA+zvQKX1Vm7Sr(^xM{ICk@ov1z!6t!L2}7KpHaFLd3Us@NYTbMV6YfE)4IN-- z-OCi%oU2zWZO=rhQ=yiY+g<4~=fK2oQ*RW3tGUpYP#J?k{oKt%PTg&9e5A0eS%DDY zq1x-#EIQqvu;@4=coKUBcP(?V0KArY_Mkc?J4fnMrT=o9BJM$BCC*%KlM?fEM35(f zFPEBBzCw5eE7u*@dVR_{*)|zxZyZwK-Md-FyT>}Ap5C*07_>nBjd4`j{H%X+$_e|# z4Mhg52vM`3rqtqY;jRi2t67P!Jk;s9cPYwUuQjG^!*4_O--pJu_jVSSyTzr6W+Z@^ z-v9%mT}+JTAC}{#G~oVzv92~+hEsEA7J^*N>^~jneIQ{-Sy>UZxyripoeC>Y>l^X6 z$8jO>ZD`kp`1rI5c`NxYT{h-~3He%thP{or^vvXmI|G}!Dt(5fx%qg2g^}yhrmD1R zmKsK>EbQ#B00K9OM1L8NG+P!B@jQk$>~R-?I2;P&e1v~3!TQofU>bsSD$zppvH!+E zyFT@5X7AKWUghyPUs=Q)ZM>Ob zZmGWVj${D?Q6>yoBjA%!2bq$c(|weFRsW7%jC!88UvTU7dZxb7xnb{S^sGfGp)aJ~ zxOP=eA>F664DrKZmlXb!w_V?@VzzSJeGZs$RvQEEzi3w$N3zL+3nwwt1Lw%GN;l3d zzJg9d$)HUJ`Uyjv`t8W{mQs44Y8Tl3%2IF#9xI(x^&i~1UxfpAm|xpvEq8Uc+iv!p z5oorYnX!K#*!I%>9|i0}n%o~;vG%qXvO0}8ezknQVzuA~u2{l5Rqm(QOWZpp^Gufo zj}8ZGBzW%E$WIFwi2K@DV(C}dm8VbGJ@BuW@;8&wmaA!gD$56s(tP#I0p`xq%wgFK z?wPd3I@Gh&Ym?A>U{%z{R>66AkQC~9uIGz0d@uX_d8j%%^tx$%m*bH?0PAEn3GEJo z3#F`Mcr(<&w2$^-Wrk;&$x2#mxjk&S#<%-WEjDNqol;8H@RMmV%6lj6ku;3NZnsT) z=f~TP``h6At(yt-1}`8KD3>i9|6F;d818G@4Filds-I4YVqQSj`gYZh`{@j^oK}Lw z6B5C=c;i*sdYdgv%P;8`0RTijMoEsAbQSqhUsX-cKAKprHbR*;7DkL@@DD4*ajP}` z1|neXDtg7biw|E56LEj4LrGPWKFh9TX2(}4ZTsZz-@*!y2gT}TQI`ZiIC?M+OJ9~cFi(9I_ZlxUUKNl)6785nw zl~Pp<(&;*M7&?2~jXN7Oc-U;_z|jV$g>;9`RuJ>PaKbdrR}(Surhdk*KjRm#Yep`h zYH!IxN00|Q(@6duou6wBr_tl*^RZ9L$|+t?VK#hq2KA>4oCUlfCx@27Q^^LB{eS|< z-Xm1W(71xMBf2~Xo1^=q$SpIa3c4nB`cP9qpV7!h;#`{z#WsiH zs$hNO|a2YZ*E=_#{3CG&4>pr%9NfYSe7Bz^r@Zfr%zENlQ}sOYOT7 z=@t*mr@{W1g1*GLw*lDYgH(h}r7IUl>Fa`K6&nn!5N$R+Qe0GJ6S$j@(vdyN5PrQH zUl^~wzuQqJj+pRs)NPUp~Vw`Q`=_{TDi1^$ye#KVh*yNAckyC2(o1yQhze% z=o^^{qQfBKo4S261Itx%{oK_@c4b`;i`QFUOOTpdOJ@1?S?FUdu!Q)Xp3$p=fMaUC z@8nAeKhD)h_Rsl4z(tOK{XbUGJYu}*LzL8`Rrk#q0P52XKq%IP$P0e)s$Dsht{MW& zV2?WJ2zsG;X~=f}uzQo+?^pL>;Fwhh#g<`Q7_O-YLj@|Uvx@Iz@^cSgp}ho=rL=)! z6@?ZzJS?so@`bNv44+5?*|>{XUR7k(&JR*TJ+{}w8O}Wgl79)!L&0UG&-C^T6P&ht zQVtL`?B$+UPVb-3w;DtGSQriKe-01ZjVxHUnHCyYy#M0)`5KHu*9TO<^3!g_7e3ly zcbEIWEVE=~Wesd?Ll)hRi&xu07v1`F>N^cOwU%n@>Ql&pp)oyWi*9RRUdCyMY3;}O z<`3j|qN2_R3;2^}PZ0!McBF6D5FoEN7)8^(CIw3gWrS{SNB(Xi=Z)5U*uF97BFJa&M&DHWEMl#mpkJ|F!EhdV2id+8 zm>{mf)12e#NywiZo9=;RrPQBHk?l zeI0&+F#jfS65c&d0GNyCiIG-t<8&No19cD9cMs0m_BGF@5M$%-7vdV#g*ig6r`xLo z)Rcy$BAQ2oBgVMxmH@@?OAts7vT{YtFAhx{x%8DaXKjN9ftUGr)Jn~7tds6HYOm_g zF#)GzR2~6;OUOTE4c+A{*5uNtw}<&DIo~=C@u_I8>V`4*eDlDA!3OuInme_ zx9etw1t}~;e~E$RKWHJjme}5f;liXjE=oTo|F+yF!X1JM>+tJb^rj6((pe`*cm} zoJaL$BbJlmOp>y>7zw#go2BYwhS!0^HeJ40X#&U2H#}77CzdnGkTi z!q!z=+7Wrb5~l3YA?@W6E@+985o9MI%l71%eBh|w^}HAP%XT`*NwW-PurO1U2&-HV zI|i}!ROH@g!0ID`hIk~eI=6!uTx9NvQSWE|8)J1HJ(XdkUm9- zYH}2u>SETUYh(0*&2-BCl8!CZ8hVObCIF%M+_UL6~N3vZPQ??vV=tp^wzIq4eFq9 zmvuGIHT*i6l`=3i`BHHH(Wo3BcB}RZ!^2B$H z%`w-;anrK$9$5yj?dUdLen1KaOv~tr;0MDUbynrP|5h23fMAZPvKdtd{Y@nM%J$*rc zL?g`C;f&ICw(!@#tlk?LKwxJ4V$0JYVk>tCw!cnUzqAK;Ml)>-{iAuo%`~^uCZ~56 ze^2nU+K-$?_HZ=Xy|)@f!vhhyHqFXtkvjOU#QkV#dvkC7}@UN#MBA4rvG&^K#f!NMx20gmx75r&x-gK`*DI&KSc(LrnP$S`PZT*&(h zn7@4D-;P>N*s1+mdxA@v{Q>uFF$PAQcAy2r8L5elCSKWdJ&M_=b!RRMk>Ygcdx3%& zvIpXssI1s{mLDOni(Sl7T=K|*N#rv@0kc51G<6PE0(M&!BFce&BWue9Z+cd4kWOr2 z>e1{ZEO$~{^Y6Nb!I^drJ;d=H+7hpSlF0#Bto3o!hS|50g&SKGI;URG(GIsYG7TW< z3q7N?7-ezxS`aG$@NH_5cBQ53f3^4BUrlu1yC^CG0t(Wb6h*p#lu(r}RjJZJdhfj| z3eu5Y0w@qVL3$4=N()5@7^Fpz9y%l;B#;|@-_N?AyY9Mw!T0VTX3aXYax!P1Gkf+~ z^E~@0oK{=$MQ%r~f}h3SNWEJ0epvfcb*BvtW1={$pTWhxf=7mjWZ_bcDM7$`|elW4E}vPhokFy7LTNw6;$<&Z)++@ zpB1mtuGis+47Pq{>NZ~X zbzUy`SIP39VBSZgjq=bcTf_9(Lf?%sS)0@O-sj<5{t%6J|IYuDVK)g`)qN>E%9pVX z7+%34s^NsV?kT`p&XMF#T*$VjFF#3W`0_|KFHTZ>e-qEB$ayCZ!--z{yd>?jwkP=Y z2nzX|XH!Kb#Q%xAiWCWIkpb>zBz*1Hvl|jHjV`nLkNV>7zh;yE%Sa(N}G)VXACi0}+@4MZv-(TLLRc|Jpf z5M(?k4fLN?UmOIRMX%^YFh~y4N=$nq6CyN%mOWR^cI1oi7^J6!$qT}Crg>(BDTXvhE^24Kfv0UANNp+r4@V$#+IWiFL|}z z&O=od_|U^Db}^&BlqRrs=Oq$%M`UZyLGL^rR_q-YtY~U7A zxtH1Aq`v8OW7n7D8p^HAt(x1XN$QpSsleVp&R zlepMyz;%%PhWv4F*6(n=>|KQ~|DeMZY3Zg}wMf#>Uu9J0V!e)ZoM}2C;OdsM)yIvFT~g=BAi}Y*>5lWNk$()on|4y z{n(4!JpVPE5pK7xRz-GI)Ur&RP1Hv1Q9+CPE4(lv{wKV|Zq~%+>l?&CR|%2Tw;^7u z#dMB*lm#EusI-9a7tHOOkO4;ChR;4U3?YXF{wr|tD(x{Nz4^m9*!WmT_0wNtpE;iq zzF(<|e)7ZrReT|!Cz4x&eM6nSVs`)ATujKs5SlBCb&l>7|cw)u$*uo8;Mh zzU|l=Cyeo~nrJ zR_X^8(p9A{y2poyH)*ujzhC#PT`k?V#8O{KQ@{9zip^(JRh-`ac}*>oHDvX9+tuzD z=yHoqsY52~yH}U-O;2PRdJAQPTuxyRPXvJTL588C&QBl}ObRY?;PK9c`;Odrz4JFu zR#NyTRX)D}KS({&h5PX|IM%C9A46phPQ`=D5mpJ*Z049p{_{WsRsNmAHkJBN`0G2G z9n{~R$a=ZV5Sg?N{|^NaSPe_YhmhauJ{G;Vmz0Ol;~OOFI`Z#}tv}ib-*7W0ncz^= z+cSBZYHFSK=4KlO+bo8Zh_hIh(W88}RQ_7zACAjr*}FW`fsPcpr>-!TIz%u>u+0@p z`i?kdkl&MOk0pB2@E`HDL6L3K9PCjRREuhqA6I?_p7!XzejH_Lbg=XKL%;bi)aqGB zsLVY^iyyIrF-nb-_+Wh3*?liaGVONn;?r)Zi_TsNr-fY0p!d?&oQkIB_k-NASwnkL z6EDCkO6!XdR>7Cmo?KbAi?optWHJjn?36dT_V-|4g^KflA6w5_`~fd}9{v4SM}dj` zcpj5g7E{h7$v)N>bDTII>=Pzhl<+Uh8j-Fvwgm6n+TW`N)vq|T+4=?BvgW#VIcD4o zX3g;xVzGEw+(wUklkS1dDeLed0A79dRXfqO-F2mi!OFy{W_=Rgb-@ME=LBM6{Jp9Cc^8m8H#s)PZ1GBH&_031snRnA^fY0vS z5xOMHaP^n<2M*bj-6XxWqqS;_uAbaxjzkpQ9%C~?EPO_6IV!;jA=)aN_LT{rs?#0$U`S|72X?07RwVA|aXAz@eH65$Xf;QD`Mx(}o1L^b!HeB4%dDi=+aot_ zFP##cp%s=OFHY7*e=dl0{OGwBwj=9LnTA(B)T<^{@n`J_GkR2HQg1j&O}mxD^476$ z_z+rp-m!yYI5eP}?aEO-Z<105Y?m5zgR25OdG`2Z%gi>yKH7H>0f{!Z#Z*HHjEzAb zGYstN*jqGtT?yPmiVa+EAq?BycNZ1zEb-CqhHGZ4JPiGBtnp-Y!3sG;n`b=MTG@lw zfAFn>oLK4UAiLd0pNJdgkr7MyHS#Z_De7ZUgY|Dx4i4ppq4ifR&pWSnfhl8@U&L%@ z(%7lAUuM(Hdi(Z1fX;AqZ47=s1kZp%l`sT!^YDe^QyZkmnQ# zmD9ixYt@QrcB0VPbQpJ(hwWiD{1z|w=8|t6qcyYUjb9hLsyBwmNF+J)1unSSM)MM3 z3Dt6>v89V*_AXbM{y>;7M0Be%a99*7;3hjxkM85mNXIW_rOW9E?)lLFpxYR=U$|WJ zCuM$-abmZ%^HO#f(w`S4X?HA%k-RII>=Y@>eKIX9AA!Ec^~_h(NXyp6D_;4oV42-u z@g}V0z7FBd6)kSb*PZ!_4$E3h>w<6niV?P_Z$+wH1{y|biD6J{i>zCJ*fzjHyeCOt znaF0dVmG-9gRAtcBfj0O+JAX_J4eV|_|tT>-+zPIMKw%f7u=)bD!Lo$u63EF^>gF- zdKfG3^76lbT4U?(Nlt{jKh=~ezIvt9!A=8ZOWY^lz2FN~`qX=-|Gx>olZ=A9OtdvZ z70wV~ajFq}&)2U5L|WM$YvlI9v+GR$T^j!lM~b}L(hV31;;1j7B07woE;iWr@XlFA z0=y%nJ_#OihPxxNBa`-bg8m#f1@D<~^ff&C5kPk@D1kRB*5(*s>+nA9VCeq++gf=A zOfNUJ>DY-(8!!_qOZgJrc5aAhRr;Jl9{T*>#NlsOo0O#rE|F3a)q{3V@}+T(M%#84 zI{=j3rkh4eh2-uA7c%}V4Q z$jS=cO?n*lQ8_OW!0_0#qwO1|;#z^eS5tJxno$3g@d`d;d&O>_t^+ai@{Y{2j)fYPXmcB*#Y!=fuBUR1bM6Lu>pVETu+4FC7 zb%`@=vbZSUUS@$?B8ML*@&a6*fvl{<7yl0`=!5(~Z1x9wN?zs)XQm{zT1v45Rgjrb zXaqz4L8Xq(4Qq$$$0=IKiIaQ^6^1juavD|ekLFRQ`X|&dv=YNyb z&PGHX1oHrrx^y%il*k)&d*?E0tRtHCr?1uWy}>I$P?B&-gYA* zL$a#-n&A_1q8u#zKTqdBlmBk!xsa3r`6)YSh8}|eYH6uwTwpk z4VMTO^Xk9c&c%pW3kej1=JC0AIs-Ge4f@ zcl>_ki=wp4s%8fA{c(q7VqW?rinW4k{)?i2UIDA(lse+nKk6?}=|b_K>Nu93o*Zd_mT3k z!DeRiei>gq4$F-Zf!u!5(e8CEm7Y0iawg@X8DV7f2KbFw0B2LalRk0i&v;KtGJ=5F z$)rn_I{NRNe&JTruh5R2WHAVD!3&!#8Nx|Q(*!fygffK8on6WJYA}!O&o1psT*-1> zcm9WHaRPe!?brI+;P=|+H1wQBpT4o$RUsZAqH%C3W41j+*sG9Ofzwi6`Ti6#v8VK( zqw{D#VD|e>m;cnuDxI)0v2QHr9929I5t=(ru!^akN`{qQte%JQ7NA_>h51WBI(%o9 z4nO=T=j^K=A@xzMg;JJJU?Xbo*npJYe}dm+?qm8WMn(=~>F6i(DmNec%7&#c?h|o7 z-}i2tUKc7ZnNLD#?0u0IB99B&bNSvTU%o{!1~R?Y?hdxYWIJC^guiUHaBOL)Ea_J& zHV(lYu>^5K62nC=-(q`rrI%Rnf1ysHYvyBo6a!RM0T8R(ExJ4oefm`ZW$T4}Jyq;E zSs6x4jqhUXF7A!BL@|b0-*$rYzutqzeW-3dp!BdL8Q%rGRgsRo#U%Kq+KS8Q&?62l z$!1r6LDt76ZL0G%3>J0TX+ZMBTmEHXgK?Ft3&pi8gJo38@7YK+S1}|k>7xv@5K#NQ zYh{p&`-bP`KI#TJq^vnct$4Bhrjw1k7TGFpxlK59YHqFeZb1BFs=xQH?F#sr48uB?_!r z+(_)!oOYNN%2dc)g~}Z3tdE^JiA&`3Haj{!6!l(r49)!ZHCa1L)97pDwCdML71i6X zO7AxXG(QaJbz^XS{}M9r^===hO+p}YA$&q15DTd}Zt&N`&PQipqUEYN9xB-2SMr&S zLmQ+Z2amvAZhCuRFG5XPr=30xkpp}Owg90zX$qs>J-JfyUI#xgb&k5lc{mszUZ1v_ zpIr#^{GQi?tjo^_fDozA9<%eq))m7x`$UF8(!$WVoXVp`ia5)l^gC8>)YwcFq&}hKDzT+i+X1Kla z1YCBWYB0Jl&sB^*2&iYeL3b=?3K`B&%;4~=X4!Lp@SUlzpr z>8Q9fO=fItAb@f?;L$JL#d^8@`XkJPx?|;&IFLT5Bm#?B#woprX}ls7W7B|HAF{>QT9f>c!p9PX51_5Ep_88dmNJRX zjUzlJrG1T&Mlpx1Kz)5QKigd~;3*4HmJ+^*$cRNqO6`s(n_6QBejwYfhWc)ucZRRM z1^S&G0-TOEAKuu^L8V#e_d!nfJPQ2O75$c4*c5$?_qw(#JNd}gPa744FH?|sHw8t{ z^jYM46khefRAO1Z+Rx9X8C9-%+>N?O{%YK5&2i4AIETJp64VaA-LKr)WPQwu4g($?|dbnpx(y%pT^AlVH76T6#CUY zSigM~Y9Ec{E~Jj|R>VMfrh=jIzn?L~{f!|96T!VfRY!uDHD?TX{B5&hQCe?!pNE-w znO(p&FkukCRTmguuMSUe-blN*7ovEEr;~`jpby>7AIOSF&3ZaK4n=8)`bJt&%WQwt zVYX^^oX-QnVpb7Z;IVmv)1Dc8AgB2tmFa5ktubNe9>duVwwcYKT4Z#}aUr^Mj=Sz8$3 z<6~SPz>fCMK@FdX5`{ci+KTM)2h%-xP=xz3`drF+asesf4f`6go>{q3)%8Q-#>554 z5zA@QC+T0JAi$VB3)1fOZ$Ckrl5-2FS!|yff!)JV1)T!rXZ&dn? zbMZ%__WjrDLIGFGKU?A)%1KPvW( z2YKy6peM6iJ;qye&E8>f6G)6Pyh6VZVxdx9pW6spgk$7|O7KH1$+Jz74lH31U_1eh zmOt~*PR)N>M3uG#bT8R1pu6}*n(zDR$2+bvGOr<6^x1FxPBF~?bQm=+Vr%b49i<<& zKOI-UAFWbS7qSY)E^DhCk=e*ZTF6N{d>wd`kEwTV`ZeRHzBi{SXZ|~-7QRkz_VI8B zKlW{ZJbf3wbY$SwfiAA|$jes(5Qa{?>jyUNw$Lju?8;d1>bp$Qp{xQD;yOjEH|=zJ zYDXXCRDwKM{W97NBR%(lOUSo5JDyou{0HjycLPMTF(K}|EFya>ENwR67F1)r4=9`S z<|UGYws!1K+!0~|Gm@2n19iGu75u=Atv*4S`R@0IHif$9`@u5gkCpFg<;i$e+ML3Z zSqjBG*Z1dIPCA9Wwn`GnP!p+v&|2}32o)R;DY|sJ-Z{)Pwb$3)zq`S7S6XZ^*}9~Y zuz@&ALGDeI8W*A?ziZK4Oub2hJ(rd;RBtQlsqt6W<0ye3i-+m7rP=|5T!6#(k)pha z&fxtMO@FC}-U@?FY7p*1da>X~w=J%a8_jElB z_iG@`5?!VRxkAID7P2N4c?MxA%$XlN86cvly-dZQc@=^6WbVTme2k8|?P7oqyTLKj z8rFA>q|i{W!={~%>2X)4ZbGW-NKIIUenU+Fi#fT5+k8uCgY{N1Dm%On&sqzA{X31Q zR97Cj-tsLp;t8Oik3IbiUSm?UOogk|hD`}sKkMMS6oYubDEHoiVBr<~P&?e+*n{)Z z_n_TG1*M>5-l`e_&rp29HJOke70z9Rba>x>P_ITXd*jqnn4ksR>F04D{ohDa=sx}` zeBBvaVS0pDBA9u3;0&tygB2Bd$aHH07#eI!0<+(jYgl25`s22}s*zpx(277L%yPT9 zxO>#oxMnveDCf3o+1&<_9=T@ks0V4nX77xV1S54+Q2pj?HierQef>a)9q&H1W0SKyAs@@nBpn>vo`Ex*6~Em99AK8 zfvxYn*w8mot~7RC=l~Q-H%!dsKpN;>-OLf=0Ih7@R=K$bKVWOh+C$MUp^~#{N4b(x z%aJ@3s{jGc!w$+v}P@AWm=VHtGdkc<~Z2z{pbG3`ZW{lH@VGgVs9@jFUYBBf0 zD06OZdr|)x%n^G3{bE+MA!@szSRt4>b!s|qASXvY@LTTDXTcz_5#YSpONAt+{cUgk z;8e|m(|I=gg!WIx0?@9zS}Kiq4tftBw7T%X~Ylj z#QU+pJ#n;H^Tw2)76hN;QshxEAwZ)h4fyU@NlHp3EKs-dC=)x;hks_W>)1Da0xi#+ zm?+P5au_~uUkz945wNi`%E~xf{;KVh+;G`@N19JY(9Fv`wAGU(=FCxo-k+Hr^*a9!4mMb&r>t7|+YqOZ0dm zyM|b|Qff`*1aLuu#*RD56YFJU!Sichi>8{Fu27I1m^8KDbinZUw<#c+(j#35HL?_5 z3$IBTCem|dec-X4=xv3cw|R?Jj#XtF#1m1|#4NS#$H`{T0=y-9T+vmFdIy14@dliy zLKNCZyQGiddLxaC@lIc3RtE+doW{uGD>m9n3v)z9V7l3gXP)7KEV4qlT#g|g{hkc} zxEXKU-t+Oq%93GdIB>b@E|fEzdm^|X9ntq|R%a>b}>DKdeA6)J23r6I|#X?rU2jq7@NE2EF#;SX0GmRjd4z?JZ z0KM(>$Xs9hGY1%c&2=X@;$DC*Swm~f-R7U)7b;RgiU3=WK98>BN%@5kO=^UqWtF4a zUbIhWjRt$>JKPz1N{^M}K`EELtWws7^^OnaZbT1(0F8Q%vJB%46{^_ zLl>e)2ntggq;e&Ei8>||yKu1x$c#iEL5Y<3G3r5ppeh4#;kp^d#p@!g!z zfj9|&)pIasm^QP|=5#V{ShDl@Vg|5&$_22S%Ny<7DX{c21~}_)l}yzV6Um)WGsEHg zXP$^!1Q)<@d%;o`*^Q01(i@vpace?%V)Fx`+SUAlODbwwTgC`!D=CpNm9)B{ufx5~ zTcApDOd|1X9PPcGzW84A90GUlVvm5zAT{*YS(j10HL!3mO3^BgvxKX@7Z2*X!M>m{ zcI-7VgFy{VYo!HZxOl`j-){jnV&ac`_wml#yr|g{(d)p63<;BS0P7_+K zTQ&#<;WYVtT(0i87%uy08+Ls3`=`F~t4xjtD}Bt9!Hq@Ii(oJTO#?&r*o#+q+2<&P z_=6*RJV%U*#Q2Jet1%aMa--^j%@yof%L;O!(A`A&=8ybkpFlh7Or1mGURa6veD2jpdJ9Anlcv=tZ+7PrZ{15XYR`wP1 z>B6>DFU3gDLzHt&cCQM{wY6`hFKuD;!jVqpnBqTka z*`^9va-8nNml$>2+K+puoeff%qdg)16QpLo3*F+stojNGomf8X1yJyqM%qJb_t#Pk_z;}ER^@GFBKr5}^Y29$* zTqZXfBZv(#T*JO^%n#bzUngDD_Qw^YYj*QR1ihffn1%FgUEwVw(~`-|iP3KxdW%v` z<^I$KzIIM^9pe6wP*?E2q6lNuG9B}Dy&_-KnSXUrpp}!&VUcBX*WE?3LQ%rCpl^KCaevQhD8HL>S{MuYY5@tCQ|V7sIRYq;gk6QPn}%& z&p1g}85|4?QDdm2uq-T@B`Z?s3-uoxkP(05WaE78U^eWgo749rg0B-hPE^y2}RVzl_TIOzPy0P zs-ZexpcSx_?OsC#>)X>aG|;d1`p_Sj^sJ^TAsTKrySWfaSyPf<^)GDPD_R&^S{5OT z;|=YYO9}@__)>jOe7cYR=Mjj9sG-2V{fq8+2KmA#_VHvSB&VLH;E(GJ}0K8G(2 z|9hF_DmiiM`^PB$y-sqQmpFt!c3<Yra42$=5FejixZ4GsFKy=4FcoQGjF zF>@mScEjgV#84MV#AbDfNB9t?1C};u(d?AZ+uU`%tcm+CR5so1S*pLC{t~VZe2n`c zX=+}16*)AN4Mz)VYyG`KLh%#B#Q4u?5cmI|??0aSAGVbL@5gl;4dSn|6j8AWC4H4$SBDwD9OtGrJ-s5;7aOmKOegJKOZvlcJU8%@O3`r>gDa} zEa~Uu>+J01=jQFdai&@A)M=qjohOgXgEH1;*h0;<^WSa;2F|Zvxct}Cm*3XCBIZoR zAC_E%1qO0c4RhOUt#fJ{z(db`&g;BeUsu(6f9iBgb=6M8z{&B}jEmp%{tU$idZY4v z!+_U6t^cdMn8^73SN&AvpH=^h+!vT)cOICNQZpO<3RL2DYZgMRTARzwjWsT&~d`cwxfQr?>}kO0~Z zp@|IO#;Q9{Ab0{R^`%R>!bY%}KUe1>843zb^X=tlk1Z}$GMK{92;^b}@qF+x$Vr5z zh6uI|Boc0)?C1$6T3rW8vuRtH(y!YB_NtE|7VVnx6>ZYwSfO)CSt5nfECao(XT{~I zW#*rNA+AR`T~piU<=dWAySB}WBjt{B|Nh`_6ir5ERb#OI9+B|F+Y9n2)22C4{HR`_9oiy} zDp6!@OM*~r6;yUpUDlLxTZD|aELIE00PJMVD7>Qid_t!6jkcoK>VKFo>S{uZo^()3 zzi*-qJwV;#4d%EPswf`F2}O7@#UD=d@*MZwQZWQD{vl`6NZJB}iPDWl4(f)Z6^nj5 z+k8O1wRnZP2NHUhr|)UZHZuy&GU=Fh1`Xqj zvX1r~H&I;=({qv+NWobmN)gyfaUQZ+$$W@)c6OOyOw%v|F^O?u)I)Z9f6L^taT?e& z8&L~3Rq%Juw+2AOiY)vH>-Wv26KwLI(AY3j=dCe;&1THm!0aqI!_VN*Hz!(FMli^V zu(0+)xmwOM>#&@^wmdy;6pPgb(lB=EH2)54vzum%A|Vx^5eSm5zqE)|FTE*pu46pG zU{tca9g3p4eUrY>J-wYyA$q^GmcK{+t2&p*J|r^h1ePD4+2px8skH9Q5%eNky+2X~+syHJZ|HE+j_^s7So*QidDzE*}<%q~Ofv%G7C1KBx97c}l$dqrCP;(>+~YsgUdU z(>aYo%@J8?*ab&Vu?@?{>atI{eBeqTA>RZ(qPeMLQQ{I6y=jCkA$MsMN)BOPuakbv)QQv#j5Pu0 z8N=V=Ft+QTb-VSC@d3XUoV}1F-z#Db6&XC#?~zlYInOT9F2^BhP~1S%p56Xb6Zz`K z^@zL4--LNsL+6jwpwaD(6Gp(e{;-269BXM&po&B-IxETBng7?(XFf7!QKS_$9cS&8 z@zv{sSs^<`cFM?&j=_oB_y~F@CYN^KUGtDX0GQCM`-Qk$Of|{=c+ur>C-5am?;wTe z$6T3pz=MO2%F{_A@*oW1L4SjwP2F8FNK%6=n)72$PT> z`DJe7f$Gr1cTAXl;}YU*`zOY zp6$qbFxAV~OuuY-XJo;h}8q5HGvwX zQ_zg|o=dCs)@qs@y;->g^#l?;|CaEEJp7n^8IH%1yFT|=#qsYwy4n#Z8>Y2Ff`;pQ zB~}04$J6jx^m)1Ys6neRv};Z=4dC+0t{I(DPf@b84c9MJIkvA0OTW_5jAL5de3coK z-Q8{uM2VxgR-H5YOm)aJ(^drQ9g>E0GkPOzU(-nqsh=r$aWc-fE~K5BK5H~{A6tF= zBVKD=jNPi20wgVe=Vt8oT%y*Ci%nJuZXbpm)DV6}A^*%4CS9}~PlDaizI}$DM084C zWdKEzYM^iI4(d|0W=)1xR25M7DunELMGVGvr^BV}T}jQ`0M$v!yyC0Gmiuu3Hi3HR zu*u?vUGe_GTPmep(tH3`ecc5N3tH5rSB?Sq=@M02#RkFya2{WcG&_V-)D<#b=6K9_ z2#FuuY6d-V&34OxS&Jh@E>gTIoc%NK4;IN~(IJ1D7T_xIZ+&#!hf%MK0#-?x$j8#OIg1(yyRfv{qxRRth z^Ggo^utQzvYtuZ5HIwSw<#uaamO+=4tHsbeQ17w8gVOF98N=q%S~Kse7r>HFDx-%b zWjkFAhY03AD_LrCW}goy)4~p&v!mZP9RFv)o(n=AZF*^@A=SGj2{MDxg6!tL$xj#> zsV5iJ+Uisg@TH$VpKlw5mZckdx`?%H;zCY_8B=s&HaVoReG@XoVK3mVl>=gSWTEnU zMTyXf?fspOb6}MB0EsfgmY?<8!t*1u%H=hAJ7p{H1SFp6b=S<&n`{eyWR=N3mNZ%^ zVp56j_iMEM75?DgnU-D4%0zkkJ9fAYn!T1=XO$6DrNOkOP|$n>0^fwk`>HCqmkW@p z>6;>G_3n{wvT|_?P3YEma_QdRg8ETjc^2h{*0u6R7J^T#QhggTEO0}ou{!zUL4!Oediv7;mLCE z)pkX{ok4Q;YE%8P(Q6kmvZ<#;Hs(&^p*YB*IQSKN^1QKEe82Vj!k(Apr`?9@UgL$Y z#X3+ZSCr)Z%lND{iJIj_@r_1@vo8CA!Ishi3XhW=%d7*vRc{(|>2m=rUPEJ5Ptw@6 zZVCyD_dN*HdDK%>Sq*3@#wbwxBGayAiUgvo*Hjc`P-XyvTd0dTpl-}O<}8KfFe@WC z{*;v57x~=NDPe9 zOE?cYrp$OrXT*0B#ysIg8*($U-77B*!KIhfKcNF&tNK%P`K$ln8~BWx8@I5!SX3<= ziH#V_rB?++Zf#dX`iidAl~KG7Nu?`r*fopIPt>z%1j*n;3r~I20frti5|f$%Er#7c z(F?3dZ{(Vy`5X-%ae8KMzNQ>Kt6dW4OlGV=5Qlr*5T*GGfES9cDevz^TvPwtX6pFu zJ%J%I6MWEMo#9686-)0GH)~o8hPn1U1(jf=)K9`McBJcHSFAh0=toc?lO@gTH-;af z3^`NFU0p@zN0mfey!Tn32E-F<0>4y&JJ_qu;c%^zvaaVBEZmGYoo+H1HLzXqHPw}? zaWCN7(xGxzyk^^|>}v4#+vbw}<}kDivkC3M1SBEFhLfA&N5adZn%Y@YSGEX&hga+O z_h+xAgsk#Zy1G)ouFCF-{ZnRnQ-6JH(?`DheaKkdN&J6XhEeb*J?>i1hPGavBe{>6 zrKLiEElJEBt4vN`#hTYsYhvC;+p7q8Xti;+fBjwy6=f}F_SIFnYBsHe4}86AV?bph z&TyrkA<^BX2Pu7QCKJt4FY7VfDONf4aJuxvaq%nsnP^Sgx4(e%S2*OqmP{&nv zL4k?;hZX6njSJ3=8D5e%R5o*5^lQN~+`OiyhkHwZ&Fmf75Qkd!TbAX1yOABvYw_p# z@pzi$mmiU4%UDWE%m@_BVrLkSV)`h9~8JGK?*cVhzWR+Xp7nUS9`Mv$^Q{&@naCnmp zwltpe^yhU_wXKLYzoj^Kz!qUH-2#?scV0mMO)EZw{RkHCz)-sux>?HtEc(DlP(fhO z7rzt?#*9=adbe}7NK?PmgqM0=fqVq}vGN zFigp(X~EIjjU$%ZwExkA&!HyPZgJ#f&k_-BUz@o-&^H$DTp)E|C$AFxSeY7s+rXSM zU~oOrKukyIuHlBMAy=NETG&3A;AU0sSyAIgA8Xv+t(&9&0wP{aNFkr--Hyrg4tiV@ z*I<(E)dRGvxGb9VV#WH1g&mU?aI;M|=o-l;KO<|@H-J4O>XyVL9TLVQ_Y5jCyvM2( zCb2JWg+uuWkcC2%k$4FwlCNiHWsfNVPu)vpAGir@cpKiEo>c3FlIJeH<8{F#CK)Il zc3DIox^TbDZDRZO&kf>J2Ih(QKa!wGi@wn$KF$2IcfT-5#o@1g!Y9CC6s`R$amZ@E z;qEr1xMY3fRzUyoxs5*a=rgC|#d7k!*0xHn8$Nvx2#ir9($t(eh;}#$R=58hO&>4_ zGS*APFxNr#=!!Fo^4i4*95{dn-J@_)R&IlSjxiVY2y!zSCwaALwDWaD%xtGvJsJ;P zD{9WRI{oT&`w2hbw>TBt-Z}u0HT5J+gi}JOG4gGISYTMK!%TkJMv$pQD;VqCY6)a# zrs(xQlAI1J6}=`?CnnlSd+r-lGM{oZRW`deFOr=XYg|1VXI-VH34n zBh#5}=NFZ#B+=3V>n2UAw#Y^`b0ZO3wASg=Nj0avF4+uvbj^RFIA_0mZZfszXDM*LJv&4Jg$gN>Q@N`4Hx6P)c{?>|o@%RQmWEzt-jUFIJ?ab>c z)OTw@$%?9uZ6(%xB!9lb2{tJ3Msxa^^kSIgvgx%kDX>MjymSWSFyn|j5gN=ue76Gx zra0XNjxr{1AegK2i{tUoAzp;}a$k!XkD@UU$T3mk88z0UT-2q_mldoRxE}V<-t#Gl zk{iLAyE%{ElQ$%p_k7R2D9jd!H1sZ;%s;2KVKFuY<2jDrG+Wz9e)$%@lNn+@00h0% zBq;@&E($b_R^MtcT+1j5%+9vhgYQp)sdj>HVme_|&ZF`dF~>IwxA7g4OG+GGbRc#9 zWQOd`>7BpM5$Vnt_MfO!fQ&OF z`>Dp}u5fDR^r8TNzA%|{C{ckVmc09Efm~1rQOdSC-MWCWW;nsbb!CDsxktw*m zN6Fcg^H23(@$HO5nX7LDU_h}^Z7;*0D_W5FJxskd6Zx=JIG!|>`S|#;<^yc|-~fa1 z+Sa@wHYMY(OWnQ}#*2Aw=cv|x=Q{^Vn%J+Wv$zY*6VWytOc$1Rt0}s8>+Ss3(kP zD=%z+-vO{y8~b0~FNJ+2fXH1w7z0_^b6efTZ(T?Lq8ro)_e`=^@xu6J9L_nuk`M z+PmnXyMLqz+k2qNp;T>_IPS~N@G;%}z(|wz&68i|`u!f;$UFh$XMb)f>&(9`915Pd zeu?}5KxAJx+N10#GNpyB!mX)Yt|6E|&iq1jzhN{7e>;@u-SVEcui1S;8jfqYmh!^< zrsDp`%9Lu)5}bB=>K9{R-CR=r7~89}L#?yk#&2yOv<2AAhCa}F&F$J*bdtTc z+TcI(dSr+4<;1SFbGq@dq`h6fGjcn`Y;s+)o{lQVyx2I8LI%c!rSCWJAj-j!7crg5 zMMjhxg~!`Qhs~b%mn+b?;SM8Yao4$HZOGT;oSPfOyg=?EYPTv^-DLAOSJi`+`TBjz z@=kZJMtj4~iG1W_6u_!SE41|7dWgA#`d)R|#0NBXQhhk!zXtfByUp__dQD@Y2c>G3 zS&|K1e^<6?QXYN4kn&=@R&1=oguf%-tHM4|j)#h-1iWxLrj+?@ri?_6sVbo757g92 zV!+2Hc)6F-73_tXGluHs%S0DnGrH2^BL6DpWD%n16O=&7`V2G+-~&OLG+%u=hEVF8 zD4thEK}X7^o8ZxT63p6rM=D+4r7i?sth=~Xj}A1j<#iMz$=GPLjAC=GJ`_$hek-*; zq-~^GEb|b7^xsmeFBcrj!Sjzx#~=Igv&&|2i`3ncEvcz#4!y|J#YIz<)SSSZ3Nv4j zylk|;q-@^ycO)6X4~#>IgA%5NO$bnDu(M1s)^UdA8@Dxzax?AHJii0^GX%;W9PvDJf>w?>K~}7eC*vkPaV&18j98A#IR^QJJJ`BH>{05ga&Bbb zLY|f4iLGs^UYY`nawF+ql1qkX2$) z83~bX#kFID07z*fF=kH{RVRUkDd~BNQ*k-<{hHO~&TdB0l{~xejM=giUulypRdEuf za?TCbbx(>7%HH*i-_`>wtXTvYha4T~ipF%EKbo}1ir4#ki0SB>C&3lYr!+SlBWu?J z97B_Z{+1|<-Q>5WY=|Gqb~TUu`(Lwa;~RIqvLWH|8^nGWf*qX3x%UrSd3i;_ak@W8>0VHFojLfcsOD zU(+m9Z=}7%NzV6+VcRmi*n=1Vq0jkS)cS8$+*q5KYz|7(>bEPi)lu}_x?tAxis|;u zqftxkAmR#~SfrhvaTwoxR2&w<oq*NU^5mn9rHud>HEav=ap~w`K4S z1D)lK#(qqs!~Po4xm`~8Kfuv}ZTTx1+zkS|i5(s<0@>)F?ioQjUApJ&4f_tJb6#@`iOa?cJ3G@FJIq?aWzD<7GE)p`=

Ub+W`S-Xv79<$bQsn(;VkyJhPGK`ZcRia|A?fW7DpZ9sriZoEVl1w`YhAd1JFyhF;4y z8r>i3AS%ia=k1I0Cq)kE+toPZeD6~Da;6J)<@rc=xf!FXFn+yfDz_$CNMdL$mlX%0 z;hKgp=BD4Cy*Yhf7&pYt`;p-a!Ru2_Q^$x=c2H^vNtX*|%FvAzDBLZAu?K^eHK;)ONnMkD z`xo9tHI0EQUGC=y(iK@t>VM|{>D26yKjywyEmznOgtgkPhZDhX?ii|03RfN;s&WDE zt%-MP1CJ`Ib_g@9d1F<8ly_rtpp6;2bSP5dN|nM?-n%VlSYR`}zNFOeyI*!gSUDul zcPOw7VCv_WrWWjq=OlO*e1_2gq0qE=?u<%j1d%LglN+qPGY7r6W9!(oCUBB>xgDS& zKY36aV256Y_9jeWzSw&Y&s`0!;5^XGzxxW#+BbwWvlJNPSMv**Ad43lYUan+>2RMz z`97s*qqYy!AHxxHn{X=Yw05&{KGjmA z_ENI679T&LL84kKHfz=1z~JKSh?F^#3soH&XP1q9l0Ii7I@6`Wkv2MVfXKgQ6;v+Y zh6AHTMApZ;^G)6StN7iQF#;XWX{(^v`n#d|{p9LGD5J&ufUsU{`^7ome*nfISDdjO z{3`7G!MNE);A%++NxD01lgXLz$Iso1Dx&F*LGW%Mz%6aTCh&6;kF~wmewVePdt6(khQIl+r?*;`}|@?ag; zPH4^DxSKK{-VqFy5_k@~lpDdL<`YrP_jI`21{7fd&HbXGgndh9>-IG&2tyvJdO|i! zvjFi>*{qK{>dVltwVKwvfj07G#w52P;OqKKmJKn3DW5)<5<3{_M3%VSfstPS32m|w zhAx&dEn*eH2iJ{;-p$4ipp!!DBA;M`Yt*Q-qE$cYq*#r$UtJeVDynD_8z{4#j{f|L zgJd)8u>vNBrh6n85GCKS+^L$E%=+VI4yTF8yv0G=Kqkm>hEm#|95Z{rV@jvq;%F-_ z%+mK^UERUXAYbAlWg!3&9Kw+*%~G`AnE*^9a=aK;1slTNrlIE2MCLOgN%*!etqp%Q z1Yh*;HBqWV=yh^s>htnX7ndkv)WdG|g09xLP*?NZtGRQt`)#=BOxu%8L(k2A&|JmJi%XT2A6%K)X-+yA9X9&nhJ(l;;%w% zwpO?2<-U&yRLPY#yj26~fN4`lmI+X1ihe*c<@PqS*t;i-OzdMx34V@@`k^{#)7PVW z*(yuL)mz>+`^CA4a$nMshnMYq|!C>Aw8+c|ih zlW^hg^wY>?!@b212dlec4;Jqy~907ESXP+_%f>N z`s<72g0KNTJ|LyT?DkkbYbU0Sg$oso3oVTO zZTQk^Ul}*eklddZ8fPChkkJ(+E#bzt)KdKsyYIBTT0Y|dKg#lgtfrS4=vmN)jJSJN zSLN%~a^47zSIBuyyUYaHUNxxy64b=>7&@bVBeQ`EPJNx`yt8#t(tjuZxywcyPlCR(80Wt;e64g1vU=aUZrhEM#*?%-{4h5|!8%>Jw$= zP*hZ5mhsi`N4m2DrPzk-dJ~k5DPf1a!5Cs@!RKEUv6~iIoNQ&b^Ouw;XEg$W)3M(W z?GNHCGYhxc_*JLANASoC>-UAs=2Bj%vHQq$k?ubQPVJZ_L_2JC&6J7RpX6*Hv6#Sv z6zRIVTFXo;<^zXZwPXLRjIuftX$nxQzXS}}M1O~iY)BC&%N`GHTTz+vl`UzP#&{jn z;A^kVZJA$i5NrQad;qm<%FRF7(ZWej9!>U*4>`H zh-rW`&a1}VD-jkHGp@nE^KcQ4~+NEdSXv&2vG1VX@4Z)Uy8KDX(3>we~o96NmV zFR!Y-DzaR&EC%baF#x-Q=x=2rX0!UInx0lBj2WMV!LBXRZZ~(bs8dRh&w+ks=vbA) zmw;ZQPYK;TeE2N2XfF#R6kSIt$>s+!02?4}kK6P01k`G1vK{P+t5g&5-Zw+Pz%Fc6 zOAbvh++fs|L|`IV;(y)MvOODM(VNSbMwpkiD6Zy90k@|6Yadtw#l8J8*$waCN$T{Z z&_NHeSyZ6vldvYXOaY?50o%xGo^8e5>gSS~4M2WR7Sy;hI-30=NFSGm3ANh(@Ck^U zCqS&F9-jV!8m%+nO05hh6(RkA9GgJny0=twGHCN$Ts(7lI-%vj?N+6kHvxC6^wfzl zi8^cwfLVql*gXI8Eag1F!%Bloqj7POujs9T<3egu&Kpy_jK{!q=|s==XqCM;q4ZDD zlb0_@bc#LsEPb?B6Mfyex@Ud%A(>H}>-(ySU24{tEYD#AnSNB5GRUt>zOKJjJYqst z5Xb(huC7U<BuukXx=#gS;dqmoNm_ zF&%k`+VnTmoIk7qDdu)bB>Gb-W-QXT;=l`QOXBMDO`6);81GUh8+oa7qRFheAZbXD z3^ExpzJ$7PafGfgX47K4Nj`;&ax&ML0* zo;FQjkebhgJ2BAApZ~-I?y;U75B||{ZT{>wrol~MC_j)y*_0ih?{oWVA?LN zty6k~n7@*gF6WmzTJP;jx&WY%4|__E2po$IPK2>rfcTVht8KE5!NIQiNJaaB_tUCL zn^`N^z|F@l_YIA=S&yhDW#QsU7eA(Kx>-NQVhxVi*_qq#K~K2|#asnW+8<-x&~hG= z4MF7r5j7){wiq71lO}fDsJRAf%$(J-Zyho>%4XXi0@mSrZ@Ra?Fj1d?$8zWXb@EVC zVJ-KOgd}xyg%h%!6<2)Y1Cr z3{HWu%h1&Ugx3t*#qKZ*HJ2ydkeRgZ*N!hO6=gJGv1vdtY_tPK3)f(mlN?PJtBFG3`P}PIC{`w~NweJ@iaME38ZwyE7)*7jW-hNT-hI zS|#5QG}e{FdMy9w;gk1&+hz3qwimiN&fCZ5Lrlo~$3{kpjvp(rl|#7@fKmWmDWK%Q zB#0gseb>yxJgyDsW!O$6J{@=wwq;?EEo(0kAS9Omtl?0<&gqlBj{`gh;AzZ0SwfgYB)l4rnF4EJFg~HsVHtXN|KOZa2aRlot^}j9HVO;; z=d+I%9#lp;w%A0^ToMUZno0s24`_)jXGaMO-q=GyeOCU#p&D5idyfI%1OX{OC9AOy0|gQ^Of=Rc}{ zR#&gj7{%2P#^!-G(ulsdjY%3T$H@SLS(uIX#p`7Q1Hg{}YUz)bI-5^v!5OSR{9dcO zQksvsMz&heQYwH_>1!K`f@5;6&32Z0@^_N^&i@sQyCVS_KF1t2RYivn3Aj&sZUY-S z9gVOPdW1Zio!p_U3NGUop8LY6OH9T4zjZGBEj^#o7&^se-Ku7UY zUsrj(OzU3QXRcS)@RQ~9(ZM5MX3c3e_ZPdmD=__=HuFLKDTi7QS7()@$3Moeya(Q`52L)9K3^AC?)xR5*g{6m<_wvA(+x>I#e=Uwq* z*YjrnpF&q(Y41%JF4m?Y@$FHL(1#;Nrys|)MF)%H z-E#QK_AsJj*St=uc(3gSn*?G=H&8#uY&Btp-^41LXlya1us#-83BpVXAgL3PlWy-# z!qSC|nW}@PM~Im0j=Rzu%@69oK4@=?w)_*C5pq_f$2n`n?PP5GQfL6jq)`^FQDYf8 zv{wgz9$278Jg|oS;gc-n-MkL>AWC&l*utnk6IpPX`mk;fhCsO$-5yg0XG1oO1Ex$F zo69kBxAQ(UA(iUyt#nV7n;JALHAsvucqmHjiPm1%d+LnXe+X#1)^Ij)LgzGkvgxuc z#mDI4%%9Ic)Febcp6*??If($1A|TUUrmRP=kdfiqV#Q%s4c2dlS`?cOMukv#B!vSB zbdpYwwGd>u#gnzQUBYVe(TltJr`>2&808D>Q5*Ps9W1-iCE{%Sz;KT86x5RIQvNNG zoe^y_xuS8O0Vt^b;8Wpv6usSB^1vp)2AVZ<&qifhPhoAVf}(70`5^#ZLEY^9ldz>q zd+5uQ>91}6mOX&r?^R+3q{m+RILG{wRb`nSrlgHm^%}XT(bGll!XKGYNO~c#o6ZeC zz)M!%DTXPqHlfU-1+bTRK#laiRd8;_C%qu)x<K6~j4Ynk%ir0(=38f>rzHJ09 zb&zfQtN*5tqwp05Q^jGAIvv*>jFgM+-QZFWotw)Q_n~mSJ9DMamm6o2WsH?9M7HsDD=?vHP=OekVqg<7W=@Yt7 z_0@x?O_SO@MpJ!aYmc=1Hx}fT%I+E}HDrukYeOHSqLih4)OACW!tMS_Kk6-2b3dq3 z9WsiWDmVHP(BkaXXk zIb8G?dAf>!WRx=pQmzRUWt{O* z3!GQ?+KloB?+FC+s}`McVcutU>|NM~iS71z#)O9>%w@jP*4}Hf-Hyw4yz4$0lw+CW z)N?Ov09bcE`(o^GbxGmz@P<<4RH%v}#=pwd`MxjN>ia3ASqw;O^xg7 z)3hW1)Sif1F~$!Wp-htSeHdI=urdMjW}G0Q))UmMbWs1B?FmaRn2l`lnbT(m&0@=i;wHFO8WC**QjI8jl(XQ>F%dQ^^WS-7(ko zjFgj2)`**j6&ZcN%O8%r-zn!TIHJ3wVn%N373YPY6g?YwU@;*Z&_-9bS=$z~KVb5G zZ0RoUMXf~!{+LdwcSSZ!>?xXspXg8hi>EA9AA7PDVA4xKj4FBOHf5LF*R@OFN!G=P zPX4$fuObV&kqLF^IeoTXx4F#VecwXh2T2)O_&1p`a*!|IFNPte>vSb-uQq|NhFRrh>a6POP2#Ksk>uUaOAvv1^B~0! zi`}Bg10I~d*h)(|b-Y?Jt$bfr%l_J!?mHfZDAT#duC!`NEBDosNuo!z%X$^6>2AAB z8lj|ge!F9p3_Re<&M2+rqY;kZUzYzAevNOnz!qykd+{itmi{JSAT@u{9qBn2A45qn z<@<6s`=Pp3ya%bfc3#)0$2h(rduSrn%RjtOyzH;%I@85Nl>ygjd+NySH9x7=1)!NN z81A;Xr(<2QQ5=sJa%C|*423`uk@*K z@D#|ZG0z|B4Rc2OKEd_m_EE*kXHM?^ti^&Kr?~kjVGptKOQK?`M*Bj< zqMql!OV04Ht$u4EuzX$L#=B$<7NKZ6ZPgbCwwL%X=WMx0%DHO?eBZB#Gi*s%63Gno z3fbZ(ZXaBx%RY`hLVA(?n$g7``RtGvUZm7mPR)5mHMc5sLAbM1MLcAufN%1}tD-cd zTbWu`1IRC+$PFBtChs|mOF_4bsSDe{^nAd*>-_A2J!4~tn-Lo_Rysa#zkty1>h`fA zq#GRUI>RCA9;30ffAA@$;U%YbR}L5*dIY=ZuKT)ya)CotQBXMtWYNcwcqpY8$PyNN zqM)!D=)qF2jJ$KSRRw8vpbvCf3`aHB`^H!i(m}wZ1spu6mmg>NAXl)fqbigkZxE|| za-l}})^H~wYVt!`e(Y6|DrfJs_>dd9v3_07esLvvQ{8`4Uk@o0#3zCz#Z1%>>vbeF z;_7jsx#-dJZokF)OWoGwWmn4goUp#{n%|zaz6!t^&by&z8w{kSb;myR-r^fSLfd6$ zJBDgyOn%iPPHBlkyVzCB?>#~mWetAW`@1ir87v{oAg9`Jxh2UsA7}~Q?USPnR6gIv z6!sg;RQc{aHJJ6c)X`3$b~Z_-)jR`#=eaGs!2_{s#Ry$>f!Kz=l^vNQxNP0U={N6% zRJG08ht+9U9TmnGs;g3uo@mbmuBCLv!jmigfsy)gb?f=kVN_#aL|EEq zldL{#3_kLhzvvWT!yH_9Q3TS<5>!gdDyjvTF}CMa0B#^=X$kr`fHP~#KPn_Z=#ZX$ zpWBB}#TT+=N<0|vVL2L{HH-SM+5O_CR2ljoVg-w{8134`lP?AnFm2v)CN003T9EZB z(h9o=5}ObXewzf!UmuEqrpeLB+Ed6+1tR=ee{m-~BhkmehnLQ0S#wb;OI*)ZGeZ-YR{Ev z#~l8i%u;*d&_czM3EwSgG}J2!$d?$&v&);4scuN>N$CHWUe3%8eu+*ILR>~+j_4+>QXP)!Yj_JX(b0IrYz!T2cJDob?=#&oJFy#-dO=Bpjz~?G) zqy_r}{1talGjeZ$!171iUV9C}98 z-y=@fTDbjrx%DCG>0x!@7 zFv=lhlZI?lsithd9De>uYrGbE4l3YHx}8ryxJjlkCZD0=6VrAeXd_z-+ROlYb?BoGZN$PIW`; znOs)YvFlAu1-MFr;qf=Kry?MQ^fzazjrZy>zi4M7_ z)Q}`-=^@bKb~be}eas*xH*37chN-UJ-#H(L;29f|@Vw6;bxCIQj17`s`!N<4>LBv% z`1ihxFl5YA$>aH6na8~HBcJI~ksk5rEDtA0$9O!>zR!1tmCU$$YpXB#O&?h0G= zOKD6$Xxo@Tz33X)Zyq3x1gu5myLcd{o~ry;@Oq5AH$e|*syct@I$q_wc8xCys$- z)NeM=H_CfdH4-C7l4!OTkBanazHBp3QWn0_o>e4BXGr-K^h*IY&pX{fA?Poa~_0W|0ce) z02%4mlmPgyUEu3c=uv-QIpYPviHIM8mcT71fx@mL&U8wF_OWH|-rWWpB7#(9Hkjsexpr1%lWP4mwSQ8@@kA_V)FVU+q1&x@)*4XSlFL zy(E6xc&ZNTPTr|Z+i-nb{*Q$G<%woV z$1v=UvNoy*HMA&ezjBFfB%-da{?CeEZ+v;;&Sv%Wk+A9eI2-)MvyvV0uH923|6#+Q zI-#-4ehBwi@U?wWQNA{<61jBe7oYLeUYS_u6ZVP^J+Lo-7d~6Pp4j#G|9UNqEwxiK znb7>#+tObbPyPQ!>i++1P%B@U>?TFPXo$F0CVE%c zMRc}Hqv`mIxP3l>#Vp4Em3W-4zs@ekTeu=iNiq2lJgMZ@xOD3WDDoB2yl+C&!2x7N zaaPBus~wx4Q&Pp=E>F%Q+Z;rr(%=z&|;(3qGLK!gIqZ8U11!G_Sn>%vvF&m|j?i>-L86ae;K4ye(3 zZ2=f|T_UD*Qg#b~_}~}!R%>HyPZ8{YZ{*I&7GpHzSs;L2Ns)R-+6s#{8cX5|N%}-D z{T9s_B_g>2?672yb8_Dq(pAkz8dTrVG_Bs5!W|xk)tN6S)Mx*+cInBY8SQw9fiAEK zVG=s{vPhf;kLr<7S-RIJjjW^yT$5N%Tpl0sc$fBf|IjGmT#^gZ*qm-yANn;w1VZV)eCa+$Z;D2|*#@vJ1ICFma&B0>8ty;>2j8zdS9uQq-8XryOdtIa z2%Q4g*qN1xj#mglNd+Zo1cz)+zCQWKNk2&{Q+ltJE#8OB$#NV#uc%&F=sBK9w0=Gs zrr(U-3Bnn`mr*x;n>X212gh4$69NiWI&z2Jz8VdJQ3mnyYeMB8-( z7WLJ+v)I6Wr!>ZlQ5tMvlqD3f=#f^sK@P?QXQ%szWKV9X)IMqLz>RE%JB?RXIUg#p z0yLYbJ9SnGlo2z6A9>}VENmpZ4$b}?IGrJ|Gb5e|sop5H(2j{$?@Hgm9mVzh6vr_G34hryxd~O05is z_l!BmC+5-YH8v?D*DyCF=O zLA9~XT{2_H0tEwp$F{!Y1$=gX{}E(3+~9qb2jJ&`9lbwIwGacPyT+2e4~*}lZY{Say+rrjrD*t6mFq%wZ4A ze#fZFep{snX_Gf`mLA34`7q%r?vL_@VVX36?plnE-+;CA`np^&{6^i8=4N)W%>N2|Z#jA62SOvgAWFa0MCX*0NQZ@3fMAz_nO^hq~V>s{gD-OFo5ryP8VN7ZFmDSvxO9>CCloF9Wz?) z^KK^%y}XmIfcogvdn}LuGZfdg$(d`FCd+NyfaU&f8@t!9j|0Y=58qW*AkfZr@8gG&QQDcVFQAvSOw2QHdYdx*}%4lk7=<)ug5M-q+b5&))!j zEw-X5UqYu}vgjY{ZOL$&8f(NBYbb(a8XAYS0~&X3%6r|Lc#6m~9XvL*N@F%vGFGaD z$)`NKBhvGc@Uw%y*Uzdk7gCD5qdk?M=FW?}bq(X%}VlzR+KAc5U6~AUo4CBZ_kh z`^h0++SRKTMdQvJN_)~eBxoTy6=skyw*hFMw*SZj9Us%#>og4>j*LcI>d2Rr_shxl z-79a+i#PC6U2Y1+T?aP|%+1t z)c0I>m9JgMIs1=Dz49_D>;ZG^3oSiwACYLD4tlA!MR$eb2~Q`A!1}X{X=)~*sAK9; zW0Imp(2i4^aZRaw<6e8`!|LN1 z$IYF0qpp?zvpX7g2M>Cg_o7HpC|SGV1ydVOD4nqlfM%07-p}Epw}L z%#_T{bJD~5RgW?#V4OAR!#N5wT#F$h9sC9L=S;wy>>cEiOZ60;A$^EdFSt#&51VO5 zCScFN{}g=6t>0#a``;apRx4Wka44&=Tk{b;)qKs;iU$ef<3@UJAQLt1=bfc?qKJwzMWG*f<{RrDaL(zUGVR0>>F+3TfDP&aYnjt8!$4^%&6$PBBb|9SP@16q#c zG(NlHUL3@=Mb1dQig%rJ#VBWqrZ)ntPwt{dsw?vp=_@6EiPMm!JUGT~db7Ih0omHT zsb{IHRx~f+r%$zep&r!xza$c2RqH;T<_|2gPm_4cHFNTym4Jk+jPD)@*TOt#O8508 z>jN~eT3%r8uSLJDNJp-lY$Q=e!DUYyWNbY$$*4 zK8^$k7mYitdN*qRqug|a`#&rK_5bZ={J*3#^n9phZ_U07Ynj-#w z<3xG5+Phwi)gy9v0Pxn% z17E+^=h4T*PbO}F_2%q6dRv|le}4A!)JzneD8H{>|FYkBkz1SeMN~zFeVYSC7*-(8? zM^GUNLTxxMW6hG&goXyHd2pz-N8L*Qehv-_bf#*%fe%u#afHvSQmIca{+#rmr`Dq` zi|#8VIctRj=1WKifs-Pg>GkFuX1YUrRfou0L8Gh6)tXEvflmjI+yd*N42igL^SG`~ z(Q(<`?~g+Kr(h6kT&yhwZ+NI8PJ!b!0k@jXX$uP>0HiiuU73h}`4mB2ba`M%n%mth zbVolXY*mT2G^|RtgCe{#D=8=Ev?aqdg4<9M$+gZz%h1rsoY`;`jlo4pq$iH zW@m&5^RF@01sQNlV@$w_Q1%7xqq5M63~YSU#4IjQtrKkutUHUPZ31_ZAs6yHX!6kS zU~kxP;5#aNn2zO1CRYuqoI)=;ciSj?J z0XWxBRYS=KlF%$JBnO%bI9%+{Xe7@+>|fr4B1<}}{AUHrIQtFi)koD$j8mBxa~qxPUIVmo>sIjo z1zPK<6c)*~=U&5TKifLiZR6;~TIgzxyLAep^vr;y8MXW8*|=R6)3-iZS9gnr9B%X< zcsAa32zY|ZTR(riu^0);2;x&Mg^TvJzvdoT2)mOMwnbte7S*VMYAlb8Wep7!T-Eb* z?C(X2FJifOgmY{QY9*MQH~kD2-x<+45T6EY$%Gbx-NS5d4sn`1n_z*M^O-EegArqI zYjKHky@bjj200GtD%&+`9(AlAZ@&h~yl;(}s6z{Zxe8>tJDyJ}JEqO9 zO3!7M>nTr;>0u5O^Kq=)WV*M1wU0xpo48Bb zjA{A|*&BEgo04|+&RN*mJD0^8#j}ou zgYS4CZSLv>Go(_`Z69!6YY-&(%NCb^k?qj9_RZFEZoA0-peWfnEW=Ebp*C84pxbPDk)Tl)gE@yg6^slrl00Yye9 z1j-06^@t;-$~pngZAfYbyIE)D$R+Sm;*a}K^oLZjBYBPf4s27dn}Jm%rM)c3_-eDCYixn8<4p-l%JVYCRm8X|!U>N&xLEfJD zI6zdh!W&3%<#QstnrdcUO0PCG${!_3jFscP$3jQGDxjQrWJmgwT-MTDGtH$9bYjQm zdaH?8LGP2*ayX~qcxm|6_W+(TT;27~t_949v-4gzd!hvMJH zW|Wr@%W=3z26fM(hpL^pdz+)nm?uwELS(A5!kJ=vUw7*nHPkdeNH>7%^6~RC+cbQ0 z6o0DGL4|r&S=T9PI5{pzSVv!}c_HsmPBFb~FB_hg7d*G}V!D`W?eE%w)R8{nH_r@` zAumU>I{&C8gOaMAXs%jQhVwJ8&sqjMl`jokX0eDec;HyhoHcU8GbSsT%C62r{9VT| zrh&?vXm0)UlrkJ==Io6p+F|)bqD?fOAAB#O>Tw{$(bvUixra*MH(*cl&VA0xzX@Ns zP>!(0YkNtKd?L6f`rhiYOUwndR|(YrzKF22c%F1MqlaJs_O)+yr#B|1MW%t84xhSWQ5R%IYTnFNuK4&C$;UAFHG$tmHz!U3bz!EU_**%@vil9--M z0$Kh!7U-f88;z-Tk}4e!*_*riJ*p?G6l^tsXUOkgu$jDK-SbAjUN7Z#y; zxizE0z*8gbyEQQrq<;JPOF`8$)6rgg82y83ynw;MRY-YHp{{qI#p;x798y2S!LUTM zfE_crG*T~)j6)aaRrKDs%>N?tLx|hrMXmku$%q2Ib!vWNei$(AxI^GJTqqOfMqaP* zZr83;`Yzvzb?wcffnn3zD!TL(FZAVLqNVcczE;)tC{_lhT4)zk;p-lNUX(Uc1ZBIHT zBzR$mP^1R6!eE`_2+$ZY_JNwpw!j5pmvw7i1$C5XeKYNAa+N^QGt($JAd$&j8oOl$EXPg3yHT43xEDHCb#STK%u=Z7Zs+$PFXEzeJRCM{dmplPHX8ecrELNW?no)!n`0yY=w%1#k z?U06of3ILTaHINkPJF;3b}#@ktpVQURJ(F5AnzP9benjIc04UC0+6$7<)k=J^5 zl^fd2|slJgGY+4|&zE4TR4JCGpt*+=7mR z;^R$d)9Kuhp{x*;F*5IMTw0FN44eXSC}S1jGY*eY*hQP^${nw_nt{@^lt@_q*O8A_ zPaq|P+A0;uP9DqY!^d}%YxuNIP_hGo-@Buj>Min}lnXDPer}WfIqi>dTDsc3Ivybf z?>ltsXwwPw;x|zqq3neL(Mc|Q$=ofit$D(&A6;ipZSH-j*W%u(2KP@0Ayre7Mc6z? ztCv1_=}kg{+=MS3Cq_*Dtx0o^@#$0D!FG?Z;_>lEa|>YnvsQYT`;>Ni)vDoB!|%*Y z7I$c;;?55uQ2OocAc-)dj7Ya(R-?(6#B}6B%Q*5t_~cqGv}n4*$+g`rpZ74qxPp7>%T&VCE-)V z>&Uo8vY(RZH4E#|`RDrw{@KiBwMW}(^z_$y!p{GrGrZSqjxnpF?(kDLUJU6ND4O0b zyYtZJ39jxCnUR?pGsJb&{YKGqwgTFfmH z9&K%e3E2yN{zsc)BW|R`1+B}MAf%o=bkx``ZM%IhARu5df)T|ipPhP_0 zdO*j|r=LK}WMg{s#dZ4zgROXrM;{zGOi&x;=P30}|4AjHn*KOBn~YA+?-uPo4C^HC zrv5c|H`XmYE{d{5TQDhap-3m2z=*dOnZ<%nZLV3+TW($#m5VfU*{)WuIO={>kaybBgXK`(qKM6

}mfARtm{Ur=~k1W?gk1#dp zlsLn=h33R6)!28NMARRJMyC;yDqdMNvxXENhK&|IVjg!Y&ls;|HY1_Z@aqUD@GW`9D`BqdST*0lt1c@ z^YyBf$3ZHMqZq}I?0MZRq}=kZ;E6w0gqgUEZypoOc*kx)xY2!BkN8&UNAgyd6dMRV zN!uC=c5mR*OP4p$sk~!q>`2O}Q!_2~y-B0=8kdH`m7=Nm`7tNj7pm)s9-l?V`0UL) zg#--I`7x2+%X$;DcHnFBBWNT*WDYiiW!ptMu`C*Hq6yi&K#0*3R2XB-ci%s^tE6qjgy^gyqt157Y%S>qV{r~H;`Fz<0#+r zW|>b%aD^uP%jE{txh-3908FrPEf+?vO4k09T@#41^oNrTHKYe>+%=${#Nk{eL z!+ms@%huptYR6JNYbU#%*$ydyeP`wujG~V!%c&P+ za^W(A>upo>he4x^dhExZZV|R~H84MmrZ-gi@3i7#RGx5#SJ(C1Pv( zEpD>Ty5hKHsLPo2{t)uO4jQgseNnhlU6x_V$Vw$iGI?!j9ryiNzU7y@QB-9tMqG4= zpr&XlJ?bwiZq&}NH}J-R`02xH@#n=+!VZB80_>_QkrefqcrmdRP2>tKuSY2`C(dZX zxhO7HC{G=L1gIXWEGA^^Zx1al;K&f0;b54`iogFczoUdt+KU{@}6%6)5Knd?Ru?;|n< z$R&fEH$HTsez*x`a8XvB{1CKq2E4~N|IQINU^`t_{|D556j(z2t5b3RTE5KwCk$q7 zXxI3Vx&~kWvYWI<`B-I`pS)s{He!&-;YY?Ca|j&SJ3Hu2IF2{Fq&bbpT}!BH8-yS^ zE>{4gJrbgdR04mBQzS-KrkC!Swpp7$JFWky$vqdWuF3lEm|m zVGSac5C)ykDf=r4?1tDkT}si!qYD?JNb2t63uVl90DfwaqO5I(<4}m<1pQc{)lyj3 z(4U^s6*66m+gtR2m@~a~1h{l3J{`eq!Uye(vXakmN%C`Mn0Rp-1F;<|eo(JFl*jo_ zyNW3Eds!NRiJ--q*O3f6c|UQLww1CE^8Q^d=_M61iOIe!bw%`=E&b?dkK7Le@p(9( z{!~u&O)Nc*Y+Ypqw4j5>_J0G=`E<;pg)j$;StK%GzylNoCAhMNn&};O*Yi(!V9*$z zFoks`nigknZh8CSTGP9<`>?uciA-i=e5yP9004I3{XvP7%h320_6I@bJ4N#?)0}xJ zjuSAyYzkG+y0~g8g%`)cJ=F6SuE8|B-0iUZ$)Y@t5||Z`r|)Wk!HdDRog+;30#>a= z(X>CU*RO|qk)Gst0Z(!wLt(vj9zFxFc4Kx1vA9~GelNE|T-zF0A9FB;5W@=7`iFT( z?_~4r{t2Q;+Q0Pl$h@WeUj#^6X8TPINRp4AM>{!dJ@czms{VMS9a!z=GWrnqUPEjc zxo63gh#AtySY?RqDLvDh^m(-d*Z^kjmJgTX!#1U2GU}{}@m{mDH;a-ktoMFSd_AR6=9Uhz1!7x*e#2ckTLPBQ6=SU&lq zyAfIGOXvhjDBWF21<835eBbzxp}SSUZ%Bi~mZy!T(edpZ+|b!=4U}X_+tTNumHEP) zoX0a;yoR~ge@JlpYh`1n3X78%08Mqy!&q8%Wbc~S95*{^qhG7^!rapjzR^3dG5Q>JMJZTZ8qvczqx7IiHMQWVo}PbNSK;?AZzKz<=)v0O3Uh z?Wfp#?Hb$TeF%~8b;rQbWo8k#O~c-v@R~9~{YcIaiRPoA<3f|>Y7_?eN(y*}VZ)2M zX+x#;YhfoE0Ro!<Ff)p&p;=0lEvaX37X~9y+ z4QIj9Yc=Wf&|c{a+Z)lZXFrx&*^%xP;@(Ttj^Q$TV;thqP9IQ}OK>jcud@k68xzur z%G9YDV0}m2X5f5gy}?bAHlT6-c-zOuX8&#Kr?UY4WNJn}wo18(?(1rl|*Z65Q0roT|I*a zPk?pG9az?EXB^^&_*^whTvmRi?08PHJJqObP43``Xd_)Ty+uHqIn`|&CUG794j2k~ zvFxDFYj0+lF9VU^*TIZ_KtaET+Z&i8;*>M_7tTb~qWuy-dQ;5wj$EoITZuZj9rW+O z!*>lk8*{N#!jB|6)335Nt(yV#Tb+GvxUgROZc^Yur}_RoXaAQ8Ew8%8Dq^>CeS8vR zxTKM~6cjy)T*hTsg)NqQ)RTu_HcQ_xLM)6DoRUIm%V!+>V$sWvPWJtM|1*}TM5uDz zZ6F|JCCG8Pf4#}sD`p`k){B3pl<-Zu^*n2kS$krzLGhQ7g}S6<&ApkI#EHLb z#3&eqrwx=S?b0dxE^Q&$2i3VTnoF3)FPu43MJV;{$ z-;;!#Nc-+S5;&_$D-uH_DqQE!U=B@}>39bD9#PAPZczeE+g>%oYKxzL(4MUGZo~UsRVzOL72kpD;a*l-*r9Rc?ZfgV47TimzdNkVF z3_m=y4DQnP_N$N$xgeFh9vh(X%x+5%?Wl!aS4t@pdR0mefLT)@Mp<-7v9_5~3`McOLG~ zDcLPlDH7vZW5`Tl8jB}zcQc3GJG`93=zJ0>0_LV@W#-+w+B|$}3$qcYooyC1ZloN4 zIU?Q>OtPhuGTN)j-tPJc8LKTWIwolmJrH^E%JCguWhn+q-mEjvYOG$19o6`+;r}vV zEa$K*Z)C7!pW{`xS;C^EBDHPz0QSYV(J8z9pmd@bk{N`8MLga=xQNtPNJ8bRjRwum z=8cJ6hYXj!6?*I6-maj_kp8VjQc&dzd}y{(SXfxQZk>X11hk=SQ>u!`SY38{*(p=F z*t}rHSyl_15U}RrSrUo6q7eC{<>0p_2WeSE9|n7+T1T8%$B5FtQ&jYK=o_wQ!q=gjQqmrWDXe3 zIk+oM!VbOd?xlt_!zKxBuNYufRp#mkLBhYINCX+i-dEfEVoDWf^41V>Lv6 z= zm|0Ob+3!UC>b6rvEW5o=@MZr%wC-vb#hAP}Y*V_seT*ODA(IRw8!sLTA%bthP|Nuu z>+$%PPk)e0!_avN@cC|aXb3=iG$)bHAW1q1Zsy@$7bpCCz5XE1mG5 znEKS1m+c6T?8oXrkDS1dg?BzaH>mTUu$iq97(XtSvH4(CC?MCZ`Qy1e??qm|{fJBL zqCDza77JBMLGFa-yfG_F{n#=%{NAlt3fu8gBQb2V>;jt64TWRi~?X4p-7uH0k2)F{)3{6L7A!~IT2%r%mtylBYZlUgX{y2I8xvtvnZzbNv1-Dar^E1_#s%C z6J&zwMs<0C6UqveEf)@;39U-}GB~ChEz~k=qthv5(EnaKascl7$*an3z;VHx0po>= zNM*jk;&Z^zJ3B1|jE+-%-F+?lJ{$9jE3swEwcE@w$pS#MfkV-^^q^)%)MsJh~ts+PX=Dsoh) z%wIWX1TYDgsd$5K@A(4ZnEk_#+h)H8+% zzrZEhd5Te^yBL&=8*r(AsM+Nk)m(A1VJ6<8gkN+Jp565k8aKAx(Bnmgl|fHG`O*3& zZ8=giW`oU`QYH|LPUOYi5_h!K5fh(Wz%3uXY$Upz6yRRYdg3lG$J=$usz6CpAGk>D z2#CasThn7%a}vtCtu~Uf->sY4T3GR8M0I7y(6;XFSa-+EtmMh=4ugv*dwRysRvK2T(w%UsB_)%2C1v;`B01b zxXEjWFO?ufu+Bnf|F*$Y&$?dZ;s}Rrw{C(D1UJKhw-3rmqcJL*C|5oawF)&)1Wg2c zY4b5(W~Xrg`^5W)pf+*8ae|2^Vt6_vMCDSpYxP2v>{jaz7^JVES*xBk*{Jc`nZ(($ zn~|BBZ?E(iZ1RC9D{|m!6|P@ls}{YO5di~FXKMqq+C!SOAwhg`&aklWa`^Eo>n+D_ z@`AXiVQ2b!e^1kSLWRyiU2E`SpVaG^Id4SJJf1mw#X}yXD;vvVXU($ z>K`j^x4*8-{X~QaCNX@?N%p+<+IlV$`cwjQq_Jn>X`* zkJIs!2OS9u@C_H`BbN#f2K^>aCPv+mMX_$}9GO`4Xk$2Md-Wb^{x|ivqcL5C8LF6d z@(GFRsn{P}yr~(bhqMP$PA+I~T{A`yE&k!UGg`Ak4TDU^nT?t>8EJ*7^ct^+?dw)7 z&{UZ77fVcs7`zF8bhYW6z#n}!Y@T$VEQ|l}nx6J)xq(7FEAM#qh2AK9hsA@bG4)J# zu_|-TpL(6){WyFond=ixqKlhr4c?)q)kdQ!5bMq|2hC&)tBcAX_Uve%xzcJrhm<+- zQhItNBg(ntbB_04(F>c&B)^P;^zZuC`P$r^6Sc@=SkUt{-RRsUkFpur=zWdCH@=2e zNY#{q28Aapb*We@8)*p{C@sqhMEq(&V>f*$8Q$=*UGyolYvV6GIw@_DVA?|E!?`T6 z=?9!zWo^nm29D*PAu2MQ@+tmBA;aZ~AN=1f?3RrVv7O?w{JcN3-G*^gowfwPyd5UH zb=-s0MX16yHg)U%Pr7ZEk<#9>0;O-Xm2tc@xKps4h!N#A1F6`>2f@M$m1pz5mHj`ND2 zBpwnLWgN!`Jskubgt)09=MQBA$fiR{Tp+p7_@osD)QroO(fc78j`z$Ao9C~`#(*9i z3bu%Y6^1-aY&G8Y>3@Q#mP)QHjczx)c3PFIDa=g6_Ii{s2X1+xaa$%a!{3c3o<`T# zA9=+&@8*VIS1~JeKekF3bhOT!k$&1a1_XBHJvi_^5#!X>GofCe8Q(H<4%&5OAlmdb3IK(P*eg?*EA=A1T?IacysLx7AM2q(=HB=?Pgldl zk#3vwI}b5d9Jm>_=ESU^SLhPQC1-6^{EZpB-yukk;{<8VnVpjodORRjox{=nZzQ!_ zV2hDcO9x1uWIk|d&OZDhr~d1m3%m-fcL$ z*v>*uo~zy<$b|Rw+`8oMO#DI>Lbcrtl_3SRi3JsAUTOZ67W`xk*fkV?%-GQiFjYvd zEfUTx2=e-JXs?_zGQ$E5>ht7`o6fC1}d=O2D>dFe9*o;CvNgFtgdUVNIJmOWQ(1@ z;`zL-n=dN2De=y-t#SaK`k>)v`$r6j&B+o7dRsP!=F6nCll+TAK?EBuOYEF&cOm2VwBK#+nnyn6EpT&@qvggtc?E2|gH&Jg1s=4^3 zxxSBEYp0>>#L-P?dGE;c07edNzDt(SCml4XqaO z2g-_BDon@c-?y~;e<5QVcfG~XN=)N?$)1wZ)YmoItun2W1-0z3IJ2c{6eOGIgKNJS z!?{yL>Z)kLS?bY(bCO5t6o&Wh7=e)_OvUQLk3iRV383u=_A0|y)omtWb zo6Y(HQ`5PhTW;fPx7=wWEB8r0@Y+Jvpou;~Yvs_rJjYb4GqL4V_iF4b5;&x^PM7N8 zlb=pJ4M`wh0Pk#qLof3hu_C8 zGi6&i`gnn7DRVf4HkrKM3no{Vt*0)9hNmr(=-kfy4)3iq0!;(f&Wd9MCS)zbymEaK zk||UE$#36hBaqo=HNo^#W;w{_RgVl++%*TCzb$S?b+;rW_#sfzB$cWv`iF{*#x7kR zjBdzCu1}$v4|TX}sc4B+cX}Z(U}*AQq!l#{`|`%R*8Y~wvWqK}(HVgSFfJzh!69LU zgz%UhpVOSd2A&sKDrhfRu_|^0dWdMRN!+v33+!+WrN3OFcYRX{+l+T z(!JD!w6HcfEnS0BC`s$;P8c^W_beuz+81UhjKfpv_tqASh~-$D!}2B)Exsv0mi*OY z8;D5@+5VQ}a^NyL6lm*@9sg=a-d_uafFIJuYdMTg6(34AEhgh8``$b{^SDkKT_A9h zOBCU;f%6CSmEFW=hX{gxW_x^j~}?llk~cbNzrj_O)}&j4hZ^p$%lTAEZ?mzmZ^l;WrB?`-#HMN7 zEIZjOZgn%zXi^b_3!b1=qn4zV@ETghTNFp2~*$nME9|pTUtV5nqyu|`* z`1N((?9w`QJyK*R|6pdu0G88V&VD1Pj79G!f_W|CXJW(S)5ksWVfG*2hCEbP5Sbe& zAWIYYder4wgYdSSA|YjN^_P_;o`}BggjZELxs&@u&G!ArDnc7&90n0Q-R)YOuC1fB z(iW9Myr=spHeTCqW3RR=srm8KxEn7c>2a!BN%->grW+k%2K>$A{&Y3)_YX`DvS9{L=0u z^Dm#o!4^bXYj*Sw7I$(Q+&VRWEq5JQNF&X^j2)>n#ky-UtW7<=F2>7Z%@)K09sg7a z;`Y-G=$aHVIRr7(~H%@01Gc9CiVa+`_qt9(lpw$=s?@?m;5%L@fK2_|l2S zC7uAPkNun}Lw2QpP=6;qcKk^Q#bI%wcZqV^gn>|M)sz)?Gi8Q|Iv!TQQs-^`A5t#a z5ch%KLLS~T(~oelfTuChk`8M((+Cd$a|eo8y7XBH?QbSCsa5hU)V$O8J(hVkt6KM~ zQfjfN+X6(}Lr!42p+;PFG}hF^|L zA?+mnFZJ0FS^l3?L#K(uO`R>ixf_epL@h(mlPPU!+IZqbA(#ltJ3wNKC;4y z)|kK_OPbr3Qz)Ud;12A~<$1^}e9^(gqo=RImjpfcFCJIix2U|q=n!Lr=vK-`(JF7l zh|gcTQ$`<`_I{y07)dOf28KL@Bos>%7Q2XaC>uAI;}j3t-1H~O=Ca1+-E1ep8snge zNA@oXpSt@9t#(r0^`#Lef3okc?vlzhTKVCZ?xG=)@Q$iO>L z1oXzBiLK&hA%TN{mm_L0x<`oQtk9=bQdGGxDZ@1-y`vTW&PR6;zOvT_d(uH@-J@SZ zHbn`AmJeZBXQ>H%6O+xqk{QK%H$0ccPUU}YCDm>JN~Wx=FfE)-XSU=s zUtnVQG&5%lOC2f{672kyTeYK%(>lNKF!PoIf)HF=*aUztMkYdG1u(jZWWE~`HNpaa zJhtXb$OsN+W@8KW`qbQ7Pbb}*!vR8BekrvLxmCY;v-6$8AL#Hdt&HN)I_FYfblThT z5uMK3DD`V+ZV#IhwGn0_N3M$9C6*&3q+lg-aJgX0xbIs^Mc&kL9j za9NZkQ4l=u^Vy!d5f5+0-rP4!j52!rtw1+b^ui6tJJ5+bst;jvAA4_p z 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

*|=F5uW2zEE(T& z#3yL|Jv#r_PSem2Z9$ISWcQafmHV|&Uv{Yf z_nsphV)SI^CY8CnWF-jfGWQJSoh_O^QP;@KiOEkb&IG$=AL&GENlY!5g+DOMYQfhR>#zDnEyc&dB$o{b%1CJnHun_S%Eh z-NHl7@F+Ntzo0CFp+{H^dJFwBqIcrHv|Z|Er;>}IaLVkzP@q~~^Csz4PN;$4pPIXY z&nnEdmvfw>&696gR2IT*!O^|TL!w!;8D6oCo67&pmOs0)bqDNPn@y!b*6>M{`Me&m zoEsdioMd*#&d)(ZLUwHzUW`^LGu9Jv?8?*_sXnN2Kh%a!guYzJj&A*w0z6pkC7woA zE30HWPRWC+uPBEB?39$WZJX65uM^Y~zvs4$CGYjHh1jLrxQ;WBP}W69oCdmCH{ka` zMlK!5%Zh>l3?9#4bs{)@S z8HVk59i7w~v@-`%m|oPZM)k1X>zNH9$bJw^g_5>XlUA$D#m5UfCnPMe0fSOm72r8g zd2v(|S%9-CJefNc?fRRAEp*v3X%jYCY64S4g44jk0Uj~G7LN{%jS>9B#WD)u&xGhB zE=WaJ{l-S0+7#;+c+F$CXF1ope}vnccdlwrU*TrGRsgXbNo@@eV_$96m4Ex!f9)0C z>kydhV5HAJub6-*O)BFjq$a2}`Xh7Ak-_Koy)eLr9c%>moNnUp?n7y@|F3tT#5Td;KslPIf+C4Sm_M*5T6uPZZ0q5sYY$-MShbqGaIbS zRfkKB0wXJ9A$}o=FU20W)?Se!n^{1LBWDhKC1Eo)xmD-cKo@q<4k zhp5-UCvBg8Tvkx0MT<>nTmE8t+0)8Qoqkccw0oQT!BOe8%)8H8OVb2ch_9vP8Wuxr zTE(r3uzDPBJ-dEjMY@}x@LZ;G5jA9yM=u$h5%|NY$->VcA5Wetd&@k}Vw(LEOK6_K zj6avY-!M4M1lW#d2k#oN5bpsWpJwVtnb&z?x0*NkClt!Bk3evDvJ++fF)gK5pGv)i z850@S-++P6BKer>lu+NShHHF&D3?#w*q};|a!I0r)1m$B9(?k~<1M4X(b|EY znR_I}M65e8BG#VRYJV0kVr}s%LbOyjI$&qf+b!{+?G{FdH~P?x2;jeyA&#~{;_JlU zQFA%O6pAgPbD#ua5l}&#Ral5o7B>kn_*#9dAEe6;-XYazU7&sbwv+Y^s~74D%yqb; zkOR&u3c1A|;sWR3eFxls9RcrJw*2VxODN@}HBrr_G7>sihGkAgMWuL^AO&Mi?`&Yx zE0;!EZgCVzn3_?uQLMC5lRvS%7cJ7voB%@o9cjZ)iN`axq>ElggCo^fqc(Se-4*cQ z6Z-VN=ca4XJrZD*Ja4|U(8WCvljPh;EtbYU=rs*v;v^%mttt2lsH;jK+n*X>G)flQN2Lh$72q`!U z7dYWFkebwoMfEVp{Mh@mXYq~6<_%Ky4_DesPkeDD@QKsh}v+4Ylj zk%OsA=DjxEHV=$lS%a_zweiLs;^h!YtGYkY<6~)N@^M^rphVi8GNRs zxPVH%pC@HV&9MOX>+8UNfxbrA@Dmn~*ek|Ua(IB``~^JEw3S5MsG#=TAK2{>zu+IN z1{N@V$*`bgwdiOKBfS<^uPlo9L4?><(%d<{zI0?#ht9}$5BB*%?Dc_Q2LuOSZFgc` zI+?@!J*q�p)LFg!w5;K^Z1Q_IYL%2ZV&9@H*N0TTA}$`-QzkVf$05WUD?aa}q&! zmP<4>w~zaH7(}*g*ZU`uye!n)&294!t8_xgCrm~mq4XFLD{Qhdd!Ao4C&k^`{He)j ze*xD$(pMR~Csygqv{i=LZH#j!Al( zecVHs0>$Q?lwiOnTqD(Ozgv{nd$)o-`Q9w*es+xmzTjd19wu#`^P`okeq0y#9bXa8 zYY%H`du?)`GIWf9$b5|;5rnRPblDvamywaB$0=jCbB3}AbvCv27k`+RV&8@y=Dqcm zz!2(?o^?G~{c!w8S({;}(7gY_+AIP?a8f2_+Et;xjVObIy6+v(C5HS?l|Le-V=W z>V4n2uD$oQucUeL3XP?nfyV9ZPeI>b#i$M2c@y&UPK+krjDsk;$8Twvu@BlmISF&a zNP27;ebTXq4&O9q)gNOCSgdHVHK@lyYYch$bV6_cf$7GKUT?N6mrGyXQ}kl)@N`H+m={ol z52ov0ZVO(b1WwrkFvv(hk%77UZJbi11Jg*RUjQ;sGDblWu#r@%Xu3GULRUM7|?-nQ!0mt3>93%OQCFhrXu204K%QOITk)wRm(Fc@d<$Ph6Q_|kR@r1A&lqaSkpO@kN1+AldYJL>r6m{|Y z+Lp5Po{4d+B`Hx@(&iOu?6?Mp+ix5LXFv59)87TG`1ZE2CP(+~iXMDz7O|}HlB!=D zffCi-dP+`QsetU8G}_-)G#5vkNnq5YSq4VT%s16v_i8!!dnpJ{i&#OzV(h&;P)|x) zRij>rii$q1s)gR^%dERCx!}ZmJEY4o-E?WM9EaY&xFV-rEcs&WQkudZJ8(DWGG1pk z+gPRWEK76@$l6BeRFP}6Tu6{5X~*kD6K}JQc36nE*lg(l*JMO-*4}yETQ<>ReN$Pq zn~GzzI?0lA)|G|>_tkGWcpLU`BRpJJ-97#4%cb8e`6=>OTNN05H%)A`mzX|uuJ)5M z&l?Rjc42%ERnPuX%#DA}u8@75nqnWi`&zwoFz5cP0DJHPw_=N^kdV`5j-gL{J(2@8 zc`a~|rJB`Oc$%E3s`me zdYj@=@$q%3`RAb8$!Nf3;c&n?uD z6h`LqN!uge(7~S|)90u|hGe>%65e-9TzACCMux!h7ZhWNo4=J}{tt z67;mQ@ERK>J#@X;aQr;_@FQpFFs{A{qH6vr%q5?a>89}U&&Xy-6Zt;EXbjcZu9(ll zO%7V=y4kY%)^>h{78!xF#gr-SHuuDgVk&*1L2i@_Vm^h==*!joF~C#sr6Mw%DF7|O zKIOj&e99h7gOYP0JaH-csyRec{!z(oua07GVspqwgcg;;M9u!SJrVxP?0Hg+U1e3v z7xyiLI`OdeI>kJutDQwrsS@@7GcJCf*tPu&=Z zRwD}ZO2S|!#X;d2w{7;Z%{ojTOM7*c>B2QybEfLms~X*9XyVPno6{z8Uw|(1nf(R1 z0>GtVKGDq9Km89dAKKWHgo($N4o%J8ty@&4GIRpEmy+Q;g>VkCjw#8?+ zCIUWPjhyV?x_+tF^rNc-KCD|ZFbSP=%n53%iLl~eL6Q^}u=9jzv3L*3X+4J?Lf@?K z80wufNe?c|{(69fkw<#Q0ApO2WtPs72h=)ztK6ZxmpooId1~cmr6$h&IvwQO{7&$I zNoy5@GWY4$%-osbRCZ1+9f4HW<%sF1vG#qmeWhivizQ_F1iqB>ddIHKo3Oz|{=WRZ zsCmPsk2jAzI0KyHr5($ugCl{I^DfE8cTPoT4QcPXpOp9^sBHeAK*0sa*z>y=JTc^- z!~TKM5rO*JjwlBOX7He%qMHY-V9(dZ@PV=2rMp_Z^&W<0V(IwB95egA{3H%p5#3C# z{`Ddlw~uXsDHlsDD{~3h zkcSgKHD;WQb{CYQI#$DQG;+&yg&t&Y^;~49KnXDV&?4b)JKu7+$@40Vy zhcWN>&r_tCHvQSf1x98WFxuyHZXg$iTvNV`P~Pm*FUpu#a(38Z*EAet*aAt9Lp6G5tuS>+>Fs!S4EkQ@`2 zP<_Gj3)c9!w9#rNz2aWH$lAIvm!SZ3ArlEyKee{!edx9lub?X*o(UFO-JVF>|EhLE zd>d#o6!l1Oj#c1{S+(FYcYlfT>I_$hSt`!%=9rgBL}4hBDDhMY=UFk(I`^SoAk|2v zj(CeB$hQ94M%t63iJTt4;xS&TaWlBvvW1e#Zdx64Z1Svuxi<;K*l+zSWbxOoEWBAT z+ek{Tb$z9N$Be{Ri#D4NqDzgg$-&HcwgN0St#=7^90PKW)qsYs>1v#~mNzA|(i`N^ z=}#pW7x!8Yl?C=WxU_HGutR|~11&DlU#KZULQ9?UErGaRMFhe3|01#U)U(=qbklO- zs@6)7T7(~8KZiemps3UB$j$y5O@53^*E7Q6c_gk)f1#pR6pmyOeJkUYJdA&@%?+q) zrX+Uc%{6M%n0*5%0YV4@Q0n^l=VgX+L1EDW17DG1pB0?9=9z$p^XlCwpuyp?%P;>o!K5BzR!EaYfM&A?OJ7Vv50iOfVlVL6c3UF@doKL-9cR@oz|t=;(Cl^UA0u6(&I_ z^rs?0_y#_2e|hGG?E}tB`$>!iL-~od7yYrY5g&3>Ch+gW1O&yy)FW+bZ)g;MKW)ZI zYtIY1oArW;O5VN_6O5i5qt>)3F*%fM-fhdjzi=DCw8yx$Wn0T9(Fj$L`<02>wtx1D zg^jrIZdMH#y|B@5@XWt{Y)pjk z5>sTLFEJ z+<%kouFmq(%02U19NJmV0rC4R3I{m(K`j9$rIvK4A%_x*oXkK-mEu0?uaI5}pr&S> z8<-6nx6=_#MqG_$!n1L(NK?!e=t(DFE?LgkRb-bb`kl%hRmzeqJc=TnW!%BC@j7s~6^ z(PlU-ULYhlh_e&3_>{IeB-tioss6Cyzu<8${+B#Xn0{`azvI;21z+Th0YfFPC@qQ2 zXzYE1s3r2X<+6p@{EADXsoQ>W-FlCRm&SUkAvEKN^zJpw`} z#^(=hVw1igxRrckwP^gME!v0ut0zIa!Lt{-Y91vUKV7Cz&dwr8jW1uWj9_f`98gxj zM!E_MVH~z!S5)snHoy|S{nhJ^8^HkDZmTk@a|<7L5mwJv92 z1BHE1uxhkcdO;EknUX6tpSiS4g7+RPP2a|+wM2op6%M|NnD;JlW((eTpI%cbL;CnH zIN#g*_+X{4T8h@UUkQ~9`X(d6z~e$@X~x^x=dMe-ydKHL)@==Z{zB!xy~WnWy^W$* zN|lx*ox=Crr%plCpU<2zw#lw^mJN!C;icq`E8ANO{PlB~yl)}_7CZf!Z6^AS=z^uc64uq{Q2?Tr2%8J5@y~aMS*GOUIvJUzTFOete!VhG6JsFxDhB~^}1pGB5$5-x&3q(;y&M% z2;Yw)nW8(R%|;nkTP5CrTJzvC3P;L%4@ZbeCc9fwyKMsE{n0I3y5qK2{okNpy}1wW_pgGNe)eQsgrF!G&7A~CU|PDy^fx8aJ%Ld5hQ zY+dJ7%(6w9<^{0mwYa;V8L;}jg7Q6k=bgD!NJCh}7OzSPl-V;f!b<8b-ZzlLOB!uZ zg{RmJ=RIcH8jO`)U{SnK0>BixY(5k4wpHMphM>*rNZj(P3Z+V(M#8a+Uwe1cVXaA@ zmCW`NhgQ<$B_OB??c6#~!GDVP_RRrICspWU)-mHH2oXi;(x4@cI~u!wS8>y`vI-6Q z&3Rix*QC%H9If~$K~RH9ZyHNY19lqgZWiaV;Iqk>o0pib#gjVP(qi|Y>(km|p@@~u zn~h{Vo;u)x+6rwNu&S3_h)dA*v$u@&Hs-8JuD1Z5e?R%0+Gs}S zl%WnIj0YXm14rv`)S*XK?ao3y?-_1g8)%O=Um9~Py4f*ifM2I=QaAq)^pp9=bNtXl z$M60 zdO~WS2blvaK6cV_p=MU;h-Up)M5WD)=Z2Pqegs{#XSaWRDq_;|a>^L#G-PM;Z>ido zA`vr(%F64@5^P-alZsraq+`F_k@5PkWG#0)T;z;e&mIKSrU4m|7t-(o8O$O5MEJ9p zK5WFCciWUn$FAZ2Q{|F;&S$68=Oq46@xgMpQ0Of&lO;Hdp^5lo=EQ_2+vsz)c|Ycp z6oN)qwv7I4w6W?dxDds8>d?0vvgZdPNlkH7yN6UV!^DZ-Jx7drw?S=y0k0pyDVs&$ZgT%vkzY}W+qSKhC;}g-z0zT z;)#Q1#R-YE`|rWWK7P zysKjH+MBW$;bNjfTdK0bgdX{_ZoT!jtwby5f0~=bgDZZMSaW#CqvWsCSk!;?aDQGzQ?ew}~`=?uo3mq!oq;Jt9 zdpvj;Z9TC(3=wHrW9E4$7uEL`Y3^pTn(^?!{Q5_GPR3Ln-NkF!!hDstPJZ-|;F7oA zO}Q**dugw%ctVR??&1TJneFh9Nx*A{HV=c))6Dm|e2oG3s(p9L>wh`Ktu4{ma_RSx!fid-Io$|djqUN0wdzAfU3F?QacSL{ixbS@9A?K#l&y#qM`~1%+`sLxD|Ea?W`mP=E z&9IXI@-8^HwQCv;rA6InSMZ0I2HK@47368(4z{ke_dLttvJ>t1nW?4t*S2~l@T5a! z%2aAq6&>h=oRzUN)Y49re6dVg=gp_B74p`J??WYr_MDw+FE|4pS3H}nQYsgtQl#Ag zyyyf&dTfQ5>md(gzmHvl;``8{%zP?SsnMGgh0XH710Q=N{5;GrHDnxDWliGOC-xrb zRJYPF$Xb2Oa05co?e2+NEut2OoQG5D%aWoQm=vRh&rEPVBP)jwPE{q8i7mXG4<`#P zm{8-<<5kJ)NFUJ7d?Us8quChWk8JT@+mjanpSzJQ!r3grEzZ*;v77T{E(+P1>?^$P z1g^~rI)_AQ9;)xlXpmv>xtP8u;eB{A{%NakAP_YG13j11uxs2s5QPcNw`I8W??&k3 zN3zU_h!v#e2^Nuh?L@r{iySN`BgZVa=l8^!53>}vhS9}7iv(rzK;5OuDM%$Q&942g z>S7y6-8ZqbOc$}4#mnH`S-9DK(SDOFMAOV$Dp1udoJ!@{j0SDA`Lv#Ms%-MU4jD$@ zw>X8u5@@sK5}wm&)Q=WC&gT_r=EMu9)xWz%K5lR{eIaCu!D*8krq57onY` z!6Q6SV<5QcwXF{fJX}D(^Td1yRm#lvT$YOJ-*6Z+>@mY|gyJLtXc!Q)IE3g8vsB*F z@1H=*;>D=hXVRC?={JWRgH za_!9RO5m_brHF<1QQzo`WHrjAKP8BZf}|1$RhYzzaOBZ=BBCAK@1HXt z^x}P8Rea|T$F#TJ9B&UxY;7Juxfx7sZ|o187pk3|M_y6GwX;_l$v(4Tzi4n*(IXn6 z%mrGqP*L*tj2mbPK;0t|H|@e4Bp^z6mJW8*BQsoFO#387zikH0)&X|hx>1rum`UM< z$<3{(T)N63?_Rwp|jD+3D_*&@_J6^Z%)DpN3xk+2;a@%7BxQiCPH6M^~*3- zt?>qs(Ro%C^2F=vV}R$hcdh5>hF6$`&ghlr{iydqiG!I?M#WyMa*2j8m6m1YZ00J` zxYJ!v9j7TGL{oq$ri46Y`)M7#0hC1>?^PIwqxnwUzqu8yAUE^wC&t4xYaq)ik_xnmMZdj!7qjnAPTAV zOJKQCt@9IV=_5E36OL`!v|5LvJb(+@=czBHqNKWMFtqztd?ksyxULj~4r?`}Tnt&! zn`BcauU*F7in{ZC{lJ6dzjRXVqN>F0*?bnLrO~gdR;hYcz_oo60$`7)chc41Y8M~3 ze~7MIRMu3T(XBbiQcOd;rHRpPsDFieU;Ca#=EeZg2D+*1ubWgkoo?gwT(C&sH~F)h z_ugMD9fjF=$tBD`3CobX*9`UQ_slQb1%8!MT)&?9cN3DO#9HXqp009Z_zif`v>i1*0;)geS49mBnEeW~`cD)3xG0p3O3aivMS zf@_sjC2|4ZWn#I)wopVDnapet(&=lH0-LmapihKTykd4bDH2?-s;4xD?}J z(|aFd*O+s5vY8YsJK!{q!n~;*vW>bQArGA7@| z@SbHh+kE@XXv9ZIz){gx97NtaXMp_k_;O;$El+A>a@6F7qZt1^j(X_~#QjzDt>U4D zm(E)=6;?@|3l0#QPG9|XhMM2deb|hy$;uFp7 zPN3bWw*kz1cW!k{kg{~~tb*dnK7mSGFR4&&o(n6kt&es{!A0PUAJlUrvKNwy2UAY< zf1i0$CvD9K*Z32&^r7Q!s*Zw+4g3qIkWe4Pp>}~W;0TCozZx6L6PYpTcHLU$(&IO< zqNc2yIvbNK?bfmVL#qw~wqBK4{;g43kH-s-M@V*9{slYsG*b5pyb()oQY?vQsE{jP z1|nK_3&NHL?+L5~7DYyO9PhS)ugb|;z8lif0&fG(uKaP)L!Xn`6;|eUy_M0=)%-oK zTB9S>I>v?6{ztn+bg!aWqOuKNtwsr{W+@mZIdHK=p~&zgaffu8Ol`!#6rpCMZgWk< zXsqK*(UD@JT2!)$1zn|fz|tLcxt4x(1~)wTfz4ikC1 zN_oAEVrI((t@|ZP6*kzbAsraCgng~anbU8(7dpe+ieI#Aq~Z$RGIsQq8iI(585JU6 zKis|8%mnQii}meh+85NK($)cH4UQP~F_@RZB_`oq1)f34&^dc**lQ zuP!iKfl)+>9S(N>9a!{`?83weDTHW`Zgj&k-jAXeF|&zV)Obsjnt1q%Q^S%RC!oxZZnIS`%bd;Ymj}zj zy2I3cK7|4cP0SJg150K%zG)nOeZk5>LJmaKO(+5}Wv0{93E*kK_FRJ8Li9!IrEfqz zDH^&M|GW*Y(Prb^o0H*PRCWFPcPHN8iKQ{4q8(DkN~vYb{cm8xiDKXsd4{}&PxmnY z

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 G-1rB=r+eW5 literal 0 HcmV?d00001 diff --git a/docs/system-admin-guide/integrations/share-point/openproject_system_guide_new_sharepoint_storage_details_new.png b/docs/system-admin-guide/integrations/share-point/openproject_system_guide_new_sharepoint_storage_details_new.png new file mode 100644 index 0000000000000000000000000000000000000000..a40e27c772389f6b70812852f002f11ce34a88ce GIT binary patch literal 95678 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�_Vd)WWDZ-59`U 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 literal 0 HcmV?d00001 diff --git a/docs/system-admin-guide/integrations/share-point/openproject_system_guide_select_sharepoint_storage.png b/docs/system-admin-guide/integrations/share-point/openproject_system_guide_select_sharepoint_storage.png new file mode 100644 index 0000000000000000000000000000000000000000..bd1786ee17acce42bad1554c5dfbeae254210c9b GIT binary patch literal 41869 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 Va#KC1<+z9by^&RZT`6M}_&*7!x4r-X literal 0 HcmV?d00001 diff --git a/docs/system-admin-guide/integrations/share-point/openproject_system_guide_sharepoint_add_multiple_projects.png b/docs/system-admin-guide/integrations/share-point/openproject_system_guide_sharepoint_add_multiple_projects.png new file mode 100644 index 0000000000000000000000000000000000000000..a4ff8872c259f7f7b12512aeb69e5262a4c3d8d6 GIT binary patch literal 66399 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%0AZNoEqN<6euxddNtqv8-h;x6QSi%P-H?n^ z%~|g^5xPFY>e%`GcBFyHa5rIJyb95`xFM<~0nAj#|7o~6HTKC|qm2d+U++%<$UkU( zFRlXlfW^np28M6d+Ov>@S6cs$-(~+7MmMhmMms`=`*3aUMXN zXM;V$w7T+yyF4Fto~d1E!1z*g@38%b*5sE&5YnNjX!3P`+1~l4JD=@!F&?U;0fUr> zQ?#I#9C%wEyxf7g=`F;O_SU)JAPn>zv+t;*s;Xau?{n~5K?AtEEpaD`?s9Y)udRK# zWt5w=IzB(pYC^&5-*KK_NOt_~{liWxfw}{9}H4GpV5Y>T*`3 z^vx&Lw571=g%W7v>uv(KbWL!NS&ww5&bxH878*-4rkh}*Cc&28YE(RgTdw1c(_{RJ z_O;q=i$kmlFUobmRC^&~)r~rp%cVae>E{T^Hpmm#d=DWfi@9Q~cf_mTooGjdDPV`H zKA00HQr}^`e7d>I2d0&yEQn=-p_*P56Tgt4uPj*9Yqh4n&oON#Bk~wlIfTgVVN5eB<*KvYa+<@W_{l)kl>5zQ^?R2n0o_m!;JTQw% zc{S?m^2V-w3yICEbM~#NKi|z!8s3`GPOX+OfA#n|iw9eq+DNlvxVKM${p{{tA8|`2 zQ>5EmeOe*d1R)x{^Yv+HLycu^vhJ-DX%ce}-ZChnK&E%F0mkyJmH<(ZK3@lpz$U{# zaekynC*iel4y2sB4$tRUGq~cxfq+Q^Djjy$JuW`78aWPRRTTtUEUI)q}tPYp_BKAv`) zyMsF)2yf}YQk`5ed3g%rsxza&5x42f7B1VowxC3#dB3T5&|wr*{B#J_NYa8 z^{f)}A0o5ncg1?%s}EfdKt6c7hYv2|j5~PNnld9p*guX|msH&PJwm|5!-nFM#2=+= z`)K0eDSMH7qg1}sg0H(5Epm>dQEl4=r5nmETy(;v=Y9}9Bmz~O{t{S8#&{&R9xM-* zk&Vw8g~|6``6>FKEqT@p%5_9%GbLOxb_wgPrwasWpHWx>36`xvE|H~^q=oH0mIIU@i?7G zx{GiUz_HeG8c}=uL9P?dlW-TxiLH?>_J=xM8!mLY`A6Xud{o3S5!OC$^R6R=Oo7%Q zdVSadyX1(WrS=8P1d6J@LsqZqYU=9aMeL=WDm9OkxWpksFF*XSU$L?#SB<1xr0HV| zo*e{M{3hx&VC*r|wDtBm>ti$ATKP8EkAbWov)?3Ud0kaUpKjq!O`pPb>TJ|5> zo~f+m?S_#Zzn%vl>omE*&?-q69Uty2f;a;886LtOpjTW0BL`Hk(Fts?WOc zV+qyw#CxRXzxFI^*cQ>Dsy;;ak!=q?i$k@evpHs1( zCOy*y{NRrLenzTxy#qU-SG=O^zZXn~^-Y~sgGef#_l@{IIv71F2UCoZEO?O*zFdPQ zysrj~CdC3aa&yejz9Q_XNj}~*nL@9h;>T995_X&ZhQSkT!KHD4RRQK+~4%t>0uJt9+Qo3>tlohEBP{{Ogp%f7m{K3y}x-CY9&cXzj7!QI{6J;=f( z1ShyV3wL+dg*(CB9h&{@U3IFfpE}*Y^RoE>yqR;&F~lWh1dg`d%$ZA zd~mZwIMc;j?x``WI#c=Lvl0G$KeXdzalfxcuvm@3`phXxtz0cKXQ0sqIW9Tbn>lOl zV5G=O<^Fx(WLApunYj^byAi#g$zq8po%@E-D=mF6AsqkmYuQ0;^Fnf2W7YFtWW z1`+dD^pvS;M2aTk3oV;UbtcOf8*f%~ubh`A)t-)8@N2x$YSyJo&Vuq7 zW=$V`vGs1jc4%W`6FFJUTEge~*YK^3RRuOfl0?7f>g_g6iE^GFk&?-|?j7){=bVcB z7YiHmo6NRk-w8LusO_q%f$ttR@@|O&`5rM@(Zy`EzPSCW~OSy*VI5;O0tVY z(e#Q%;k;3qf&;Tv9soI9A24fo$=vB;W{WK)h(gGUEoK8!FRbR^U2UR#?#H2)zrJBR zp~LHUKbdqB8+0LiL{6CxvV<*kCSVz`C>~a|qg6DsPU5?OYQ#~+)}cLxfUOxDgpm2L zt{lSsOJ>kd8c z;yH9MXKs`lA8O}yF6`LQ;w zk!G;Cd}wUNz$4zET(1e&8tWwRdvbt9ihS-e z4A)X}t`LC2;>0XE&=Wxs=%PGV8`-r(=@(uhD-EFMi8&6G#xi4~*TTza1qH`Vw%;&D z3|0}Ywjc?U4T><)YGLWFG>c+=NIM4Vgqw{DsSc(fGOTw8YoRasHERUkiXD80Biy*z zDhnc=p(h3!-{4oq@{B1z?)5VqVT=!;^2IxMB?z1okkztGp4}ClDG}d}+ih)L-e0=X zoFIoH3k1vcdI4oKa-0oUV&Z3=V<#&p3ov%Qql8yj`VGvqz*N25g-myYf_Lmog;lu* zOzwP99SzAiVD{mA&2NH3jbSyoTXOWs;VpdAIz0RY8^~58_5o5P>Mkco0er};EB14n z>&6&bO;`X;VeL75W`c27M#Jao`|xL@qiek0pEjBLrmi-lHyUxOOZ)See7{-BoDH=% zI#2Pg>M=Vx=@q)lA!uAuf2))@B4*WsdNY@nRIZ_1ou<$ zI^cW|yJ@POg~OlcJ53%6o-WLr5%DOPWf3JaQ)q$Z40iL_Dw10o?Zr)j!sEQ-c~_xG zvkATK*2S%75Z|2}HPNpe+kKeG6uG8%kpKy|;r%Z<0r!{vp+fcul|H1Fd10`Ubuo}& zn5aFUx7wNbp)p1hWw3f)e2909x1@ob-=1oI;;i(RD8Mj0!|0D;$|)nfzb!e7VU{59 zzUFVS)0G=Av?eu82q5c|zPzY-BxIy=$;yg-H7bP~$nc23j}Ys`plPuvX-GjMo5SZp zD}ss*l^l1qnCoC|X{`8+-)n;rIEJ7`eiP5YQG6&QNv5_)&`0JkmNc5)rl|jRM4g!j zVYNiz4NR;gF9%3B7aQT`yDzAZjk0R6xML#e_=h0(Osk*~B6MmX4|Q$_S^t?N>Q+|- z1KGrbqGh?5>lS)fL${?8bU8*z%WQexvX+*K1mx8FZPnLGz*Z5Qj|apt=P4y6ov9TDPE z-;3pI_`rZo@WTqLEf8#I5mMvT@Dy%MfH+%gL;GE(=4wFZ>yhV-EORtKuD z(!tPu*%suUMgo|V%H?CfI`GMPc&4xzR{Km`&S=?1!?#<)pMRt^aIoD*WTy-lS$@kd zAfuC!mG!Z2qKg#-)be$h$f29!g8~)LgSc>2h{q8!Hy5kT9c;AF#cM9>vzE9G;Icep z;xtpuUkOtq#*m_quzQYzC@(7Ic>nmjAwc_{O#jJx$o|QvXXd?(JM`E*Xg(kB@lyZI z?L~C~Gp3Unc5ox1M!2i&u;e8+xO@?%_d9V)YE44k49Xg4sWKpvYBh<#hU5LD9fP-&B^a1HBS;>^!Le0 z9?r)JUw0C%+`^<`5$YTjcae?6+9^{1tGKxw`(NFfK&8|pky0=?(4mZ4Sw@Kb6p@qrb$vM8&eS<+a8i>R+|P^GJ+Baw5~-|U+9hcsK}0KQ zw;S$px#IEk+eQLk&&)KgpCd!TcWI3XjUxThd^kxpH|I0rA0pLxO4>uvZ>5rN_Zx>N z0L?i?h>7uoXhqJ_oh$(FrlJmVO|j^KzM0$h!{z92rxB$sk5mshlJUq=viWVF!{$dDQcB)iARi=Gkm)>YLs|Qg7gNuY7B4pcsgHYtk zka)ANjzR&^Y-OX>ZepE|v>{%igniE(-tax%*7KkO*OJ1M$@#vRN~JYBhAk6pYnfYr zv+i-ViyL;i-U9fj`hBR3+D1_~b+X{Bld9gt-eism^SQU<`_K(e0i5Mqi-pb^=PFAj zB4@ja^Q77ud06!LgC_uXR>r;)c~KBn*X$u@r_D5F$Be=z=p5MK%x@zjpv{hGaz3q7 z!}k0`jAA_B+E8tf7&C^EM#0_k$CIb`cGn@Y#UB?i$tN_aAJo1R+!FJq znHi_@P{&WV1|8clG40j>ILVmJI2qQtQQ+=Z=oPoCQ^wGJqAVXhep9y>Ir{5Yol75G ziVbY(t!<+hN6OyX6q|F-2$km!maP}ACAQi01(W+1nn>f{<~@RO=vj_@?{ujP%`6P~ z1v+Hx^(NOZW6tsCOUNKHU9~c>%avXo%4_S47Fe z59QLO>f05y-cbB}b1;Bf#3z%4B};R}m1*Xw?S+vw(6-_%rP`5|VsW+SC}aI_6`vZ@ zO(+MU#uY26-82c4jz-7YAM9LmxTRIHvnRe!de{$_>g6MLsLVQdOz=)lK_uO?(J6md zOM_NyT}-Cd6p>kHwbg^^-x(#(Rlt(Nh7mR{fo-hGY^_o9xLxU9<1Mhu=(s?OAPz`^ z7`I6l$68@?qG?^Rvl~8pD%P@x~ zWE+z`U@gXX1HSkTG9tt(UgS^CWhV5ZsgWJ-h>df!dCJh(TfyH}t&O(s8NP&eaz5^U ztOzPqgJMhcjFyfX*y=s^)x=Tp{_d%%JsR3r3pI+lK!SUIV$YUb+~ zF*Z_5=79>#7~RIJ?O9J9&l-G9Ug%o|+BxQsAATWdt^(rq2jBimX@y;0k=q@a!nu>_ zCgIOI{7y)EMU!0%1s^-NZ|}vKug+Nr#V#>%<5GJD&+&=HkrHZ|Tpl-gNW{JoEYVgy zvT3!J=Jl_pzGra&o4MKjAuGYjmuC^E*=_M0>U2gAz@M2nQvXoN*m!99#4a*M>$H#T}E>4j_2}@!_&EGd>s>A#K_k5rc})<0~n)z{_FbWbn~$L zSt#7}FFy9^`Vt}}Is8cSBI3>66;2PQdo~VRzTa1e?ZedPhNolEO;@YL=f0B$XTApEp4UTZSsf?T*jKQNqr302ZyU@wY}T=OP?m#Jl~YKBk!xLahC5t; z9>MI_1wt1d*EC%JR9`^mg#4mk={kF3iOTXv(_;({Dp-I#X}!>SkPT@AzzNA|REp}o z!T1n|#nRX)r`ZusjbG91y*0ot1S5jpAKA+@+hEjX>cm5xEXe{IyvgQf`2o$WciZbL zLT%Ulk$~$vN?KNSuEw)4rAc*zK4Nc&*J158&%+?vXEo#dc7iv(3>Jum`;$J)$^8rX z*RU?i#;r#vCVGQkZh7&kxj;*tNXO8NX2u|E?B+mezVBZ?TQpz~|vZg#z!87-`F!g##n6k)%` z>`qGOC_DdVQ@^cch%9e7OdmaK_^n;jC{Q~88%$X8y?-N=cr*GPe|4RM@I8G-{B;i# zpgfaMQ%+_nfWa2O1=5v&fQ8S8@%>TZZ{L;C2T%^O-U*@dvgY>N@PMxZ1G~66f_iDb z^xG!4ecVxA^f=%l>Okrl{MmTXau{hqM)Jp^!~s|Kfz)O>4~djxylZ37=Yrva@QgSO zu+b=<(=cUKcy!)b3cF(e21C4h1shA-$hnVY^cJ_7e%tl{Hwf@3T`dc_d$^QkeQ=&pJ;&03So=gBeWQc!4p$ehZR3~p9n(#~ z6ULLKYrMB}B7^rVe`9wQ@w(zv!CqU6m3?(h!W9-iHLBXTiRbhkPoBZ8#hZ0ej^T(L zJ#_Q7)eGz-J-={dVf(G-XGS`K(YKUjQQ;677 z*Qtx-B`!KPTyvaocn;yoE4`HY90nS8qM+9nTc-1@3E)t^skl}X@Z3)OL%TU^Q!;g|G$Hn;YyAdug&dFii^==}S1H+5CLUz0G$OOfJ$_=K zRzs3z8nIl_gm`BlHdAFPGz|w~^x8l>b8eyCL?Pu&Wgv-i+7~BF>jZjzNOovqz;3Z& zags+_BnG5*%;2Aqs>@CaOvOSi)*HQ|7>3R!)5SDecI)7+S6c^rE9a(#gJ=-4>SM!{ zaC4jt(@HO~jGraM{n6>gF*oatJ`X%$gtW5?mZt42cha~m=Yol~uSx|cVw0;ScyvYY zRJN9GUDh)~!60K-aOu-wI-jYcBpNy!5j$35=D67DRpREl2b`TcL8Nfy@Y%AgJn3eT#6rE+0dIriL}t$;dknl| zjdE<3Nn=|+lPw#jwSQUIk6W^-zFu&UHsWAlWB}~_j*MaxNR|%YB!JidJ;p@ck#8wrqR1h40Pwj3fXb0uBGE(#Eo95YUR`a4D*_@d-CDshC z3pk&BQvOZ`q4^hiOK`XpwGoape-73Hw9Hb4cF(r<{4o$zp;IR$vMt(f@V2j`PVdGd zVV0;Ee&23%ssfq_!K;*k@W8S3`n;PTz8*Q^*!g0LTEPtdq9J6a&Bmp0V}2h&1`R*) zk{<6wTAA#*P6Hp<3GQ9QUegM3GfnmmRw)5C>Bc6>(kuFDaSFwD;9O5$+x6PM9wu}0 zs)_$vxINF}*j0}YYfT)ZhOeGQir6F=GQvZqd70W&eO0VykXd6*YTd=0tlSQ!nyJ1= z*^{M%*Y*Fg?hk%-flD*>f+YF<*DqV0l}}9waNah_omu2epjLQKR3jC#O=xbUM~mBl zY!T*^sBJt}vTXrsQm8T3G22k*=8y3w{%ZdMmIwzRJAISfE^Xn=^BFn?7l#IOJ@{ZV`KURx)n`WEbDZZIU6Kger_;g z+!cESKfiG8t8~~T?@#Ic&3o`^|CFo2 z&Z5u@(<4Qn;sUW>hqa|)emv8eTwXjFn0Tt9dUnqnRqrPJ)Sa@)hD688N>Dw6l%G7W ze*5eaaq4fl-@BZhYtse3f}!sEqb}$lW*d-z|0RZ!&PPD*YmMEy=0 z;-g#lheJ^cQ5QEDb#ViL_ ze_V51!S;_LL^yJZe0^J1``bsFXE%PAk94cukqu9c3Q~qvaxTRa;@Ar$R8}B>lC@Cv zzp_?YqW=-o0csgrkxbbAc z_wSYSJ!wFE?25&td%)sY~$gnA{5wlUx)i z!M94Fg_T+PMWtGXK5*(8^MDjC4Y8&XWLUwsc|zr*){5`9avJ#%LRTGWM#z@#jo!Er zD;9J`zBT2FzCI-CXg#h`SFA=f&+(D2n8L|;bI0>LY-pfC@vuddXebN%^}W)8N*~&G zZ%r)WA$$XJ41Wf;o;EqO!WXxR9XAHEv3DChWYM zaO8oPg!Wr}KD9O&SV^oOeZ(OO1pBeNh@yG853UCo#H zABhrj!`5oI(ti>qGj4eZE#ao3+CAe-n0II6Q}-L%Fv{{(sk$+g+M#)Rlk6T?j$pmg z%iX!l2s)8|q4gQkIa?z7`JD+{O`W!I%OID~j1LLC-8Jp}8loJ`N-0SB-{p8lP&<(; z(Hdg492^}0#szy1rW1#Kww&6#1qfYlThYu0lisWPQ(#F+ZotD<?J9|rB z62MsK*Il%~6X1_d&9LsBo(7L+FkRahyl%myB!H@_=*%--lXh^R3jd|5Z9Gzfl4HYK za{q6_P3?hva-1)8BWi#hje%#%kF4vof3G`EE~W>0y3qGFJHVxO%+7K%zXoeHrqyB! z9A%r)Iz{70=_<$`>piJmqw&|GH4PiYY2_}Aa%MBlr z&Nu1l>P$(82VE()65UTT|5HXo_GAX{*@7@c_Fk-H3;x5xgu-@O^M8wHBo}7ac!`ue zoeoA^tKn21ePSTejaYwVFc|5J_8^_~;npvR&tt6+HHAT%zzKZ~;jcdHo(FqB!Dxu2_s=$b@VYr^MMK`Ek^dhe0X}Oq zuhsVp0V%IdY!vpqfvh5n6}Mje^InC?BBo6Cx12}}hg1p1^kc2Zh#Shr3KX*fG|~^m zX<>HG>$!V3wp{*hyk=^C;hMhhU2(|LiN_xVfU$w`Je_N!2>H%1KM&!Ga$BGY?K4q4 z@OIJgaq%H=`a-#LNc+c3U*DBhb^qszA) zu3FQtC+G0b8{5IJ@&I3$=|(2=DUr6SN7{KiogaGNHC@hzYwR#RTFv=dWLpuh*PVgJ zlN59rFYtKF$FTL8Qtj5Q#@hj!7G^2Pr|N6nvy$$>0_z+$Xph7Zj@lg!vwvRsKKCUw zLVSF(bm@_7YYUjXHt|i3W@f8p3lSUk>(w?SPF=t5;G`HT1Cu~B_NScI72cCIXY@;3 z61ZT%vhkE)&{R`8x(=P}7xY4GvhOP<;BT9$jfLSrYVN&q62d!R5typFs_qQ zl*+n%Zw(et>+Q%^&WE?4Ft`+ijq+rFau5!4F;!}=S=7A!@urVenTsrwo8WVbb!09QXM zC>D^Yj@qH0i3-nk=w63MUKMXa2?=Qp zk!a>ze@u)uOhkcH2X*PdoSdS7U$4oxC^G*?x!c56oT4erxenJffR z(SIk0L<0~2N_Zpx3DA{ zDgfh86e(;8Nx;cjpNivR_u%8R zsuaz;%b0GrMO?&zyPhxp@fqDJ=RM!7xUGU>+5If)J7W4z&RezgCAN;Zxm`-u#-NNn zI6hzMeCFdnqHy$a9kG|y4&;mYUu}EQjJ>%q;kr$U1*vG#NG^`N#`M~-v3*`p>22Jr zbNs^SaU(SxTRm?vCKbWzZQ^aWT9SZR97mBukXMvV?^JM^>$VDBirc@#V4?$^g|t(-VtOj<*e~N-8n&urd4KBN0?@pdhVF0;r7UftXCPeFAieFgcuACh zpi)a?jF+KbR`;SQD{Q1YTVRC)DY3I7Tq(jgzq}#{tD_}arSLQ@io`EL_UBt$B4ul^JzAvK4`i@F~SQ&;2iV7}389<*G{~PeZjhdv2lBT2JQ>JIg zu(8iJ|NJ@aWF^EOI-2UWSbn5nw1Vf1JU8%)&I`0!I=5)CVjU>g3}a9`qFOdUb5lQ! zaBiJ9K0IO2Xs?7$syd6EDRKJc7Bc$)NBP_{kY4DkSt9F7BK{e`5;V_iN)i5zG+_Ht z0^y_{fhTC+@L0tB4@jZQ+YY|2DZ@zUo3gAP9DDt$6+Om+IQZWHEsc7w#F9#2T)WVT zzd+E{? zu~_5f)RU~gP6+Ri`t^@OTE#dKnBZ^_HZ-kHO_y$wua*J~d zFp>*I1MmPOX^j-pzI|NM>(rbdnlqzg-{3XHA^tlg`Bqvh6^;~v#n}zbc+MtxnSaq4 zO)EdHQ046N18Y*OccW8sDA~)VTIj!^t>O9lA0@CieaTIRfVb{>|TRm~{Fl95J zK-*fI1x)o!p%cF)J#vx+O}Td$B+d3;(3m}`F@`3pM$DSisf#s2S;!XWk797~IgJCy z>C4v-Gdze(RjP1GT?j(iTg|eMA`ur|$b&-hOqrt7%Z(+z;vI>=L`tZ*%!Hske=x25 zv?i7tSf6zYTa{{o`%O$;oIP9wB&zlXp6HAIy)@Gl}o8Ck?5*93J*LTRr0WkgV-|J5CFB@lSSJp8_K~5}lK$n-$;wvx3>|n3JX{ z;2%;{@W@?xKzF2@-XTV6vw*AS>^91Q{?8*7Y^}o2y5FRfH66jaAZE>qYN-bCP^QFcKX5TtEW}2wK6|J8V8olcfqdFM*E9D zXO=e09$5Amm!rpX*+^Hqnn6p0c?x-okO$;ZWx6?pJXoy(nmyt{qM3{rd#BDG85#ylpc{Sq zcnys&_Ets41kutLyQr8;Ld+6#fyY(NTu(#D0ruxRn&$#nb zTT457{JT2>)cA5<$mbeey`L6&Lc-u}%^m~`8&KVXUsMXZl52gboHZHB#t8mB-O!xp zH7TUB!3(h-oY;O06?%X!65tuG(QU9aX|WgIo~iq|z_hLJu{VH8^RWWtp3g0`$I1PI zuBTue+(7)w#aF?YHfJA&1&+PlqKQqX&x}GYxR#0UhJ5UQ8nb+6=THG6KHjCjm<(Qa zMDF;N`tPUXtk$7OU5Vs*Q>AL;T&?WgQ^phr_mf{#z7;Xn{@Z~)f%GX24od+nX>x6%hHE1ItgQ748oo(%AO;rmA!4>Y2GYIJWEM)E+ zzF8#nZXW6yIsu7klFE=`8*d8kf1wJDh7iP`>~hV80gX zFU+f6Y2uWan-f1n(Xzys>tEiWAvJh~VY|E#x>f6~-Zc8MO{)X)LMt?xhv|J@*<7F7 zbEuleFC(V;Lca>;oOCZ9FdIMJ=H)tfRErkCZe{>Vx%%dgSVP5FtuFJQ1Mx#pmXlUJ z(O2%(P?p5q8tH#GXeZZ6AF5e5{cpVEH=Cj0is^5Oz2_tm)JTm-?2}Bw47)U}dF+!L`{Y{5API2;KUZ z6SAgh-)uNvq&DDUJJuWRpKG)Kla~Lfht290+1)zeum2F{2lkJkPVE18H30u7_K;~# z#OVc}SK#f8ak}>fmi$KOK)X6$rvS}TN=~9SY(n)A^j{mqzdjKCobc0m3;F{swE~vw z*u8ZRXoANYOK_~b3DAE(f$4jp2>a~U)ty7AgSkG#K0|6f8xI(PfqxnXI^wE`a{I9k zX7%i6+8E>dI+f5vF$W*3B5(DA&30E6YP#uGUoi4}+p7&#cva|j!DODD9PArWc-3yi zaEqiZ8hfCfOyXH!)Ul9-gCa}~On2atkHCR%mTJmz|B{PnE%!P;z={>|%F@}56@$ae zNH)E@LAD|Ntz8r>{g@i}duJ;*3bkUfcGs*YUO1?YHYGnaKIl1Zb8RI%;BVNjCq1l9VeQOKsOQ&_%$oRe;Jfh^?}=#!6r36NnQe!GgX+R+#pR{p8cT0* zFI3sm8p9D7V!5deAr7^5+p0hn$Nw?$Fz6}oy|{|c`8NCu$Y6%tD)LVUhGJWlm;6T| zY4x8zV4H6W^c-mJOML(S<1&M|;#$rZtudY$?MX1DsIsS^0gMl5@X0@`7|>~jCmcwe zHI_>@uXmPmLP#Pe=nc^LXmVVBMb;i{8Bj0G1!Jgtg;@)HtkG?bz@EHRYP$I1d=|ZX z?A^tOeO)Vd#X1M}uZQ*F(gP(~TvD$NBbHku)5}GF^hKh*V{M=dj@qn7Nf{bg!RhXL zpS*3L>BJ71OnuCu`70QY)ac-?Lu(wY=b$^!n__`3za20={0*6*8j2yYq5rE(kt*Ty z;uHw7|8&`KYsvSaUX^`uB~fgNf~@+uhB;8rQrh^2$(uQh>TOI>3RiK0rCPY{Wb^f`94~NsWgSk2d~kO6 z)WA{|Dk#>k4|Ev4rC0GW$MvMmS#cSdmCY5KDu6r?xaH~r0HWLfs?*}iotZm!oDK8y zM5~3aljv8f1iDp1#D0$lJ`F%qvCwI7uV?)ZJ#$?(JU$4)kyabl z6gtNtgklQHtb3&Ttd2=#>(_F6aa)SKd5{%W+{(QZ>GXS_;DQiE)zb&iEn!tkEx@DA z&4E6$?g-0wG`2!79%!@Bll=mWUCpN0F6HN7L5=b#rM5p+!m8abp1=J79!;$qP)m;b|8o|z$^!08PE8l1uh)sD0HgAUd>CT z#at;jUh^KL$b_-e1M4f<2uU+JeMx%wO)9i^1XoKlOj-vfz}Smd0wn&dSn1& zev)8%qloSKmphv@;$F`GqtO`N#Z6!|9SwCFFzxDMeR5WZ)tK}Woe{mCXIYx_NB-X6 zvHBBL{ixyU0Oo;`226V^bdT{L$8^mG$jtH39&XJEl@REz_dJvekeq>jJ0g@iJs6>( zo;35Jzm=65jiH7;57J8&)Qtc^PZv*b_4zI8Njo#%*)D&zM+g4 z-J+fjjH<|Z4ZfN^F`#DIZ*jipvqUD0JPrk#`GRdv5EZTsPwZe{1Aru)9&xwVaM8h5 zFs8#M_6*h)_mu~wkbmFMbHRx!w+d4CZ?};z?}vc6%ERxquM^M~ZtSjS##R21s+9WH zl&Vb1LW;*@>fb#CB_d-rg*%q!jMZ(0H}#Dp;Uyf|$2jpPCN-c2vd`#eSCfmT27EX7 zT|YPFtYtl!}E(ybdRFri0xI{_{DGsAP zKnV2-2YCZduKa3Ykq<~x>NzKT`(4IS-hx8i=R#8G#`=K|4j@8WH#T32h3zJOq?N{9 z_4RT8yK>ARGBKGJHNbJ01*n9*F)MoLgd}31zS$cT>Jh)UwFcMb^M(g!nBKNq)}=~^ zPy)NUS`lBl7&f|#Pl13N`7Gm|-J*a6Izku-N$%-O2)IC&Z87=6ek1fQOa#O{(pT3e z{OimuCblv2(Fs>+Vw{w#eJA*Qo?Ga=#fJQ*MB$U`&uKnw7zu|utOWyH>2MrsegJmm`Knyus+bXYG~qRfCZ=NS};z*7_Qd zS@27LeM%ViGTaOn*)jP5ujk_TUGm>wDCsLz?Og5V#BZ1Omxn8eMZ|rI)gauta7~2EZ#fSABC#Rnwrw z;g3bFOgH4HJ%Z#6^u>d|8xx)uwgDpg?jM!7s956M-{Ap%$N^fKZ5-qe@_CwAP#{`%2FP+2I))f zX(NrZmJ1c5(JGbPy~B7UIrF*-pJQ;g`FRT`nK-O;XEEOalvUy{V9&wg`{ok4=vlGn-sK>14LRZSIxxD>hmqGl< z`0ef<7hfOG)sA6IS7Bp9_je{HP%Un9X-2RWC5Iw;n_}D+>pN)S{@&FcJYR#dT={B6 zJyq%%fA0A*^A%xd_kW15on$8ogF?OXeM@WmAY6+o``QH94as~1ug%Z5j6b`(yclz1 z)zSYdH2C^I$s?uINx!BQ&$T0u(CBYUWkZ-%jx*c7eM$J}BBK|xy}o-lc&%f&0RGw@ zUV2@0Js{1rf~%M@mD|}XIu<}H+q)I^HD}#i6ZPnf63>YMZCWKjmBA`E$&I`qK(*rP2lvl^om376 z_x?KUY+q;eWq~EZA;$F_|K_ieLKxikozQ0FA83ZQMH`Ug4o0}P<#$dfdyim(Gx27|JNoZ*sR05(14dmh zGB9KL#kf7554oe-#36K zV^U)euB>+AJA;BqA6}!^KEKkWgW@vUDeqyzA#${D`A1Xi)Cdb!h||?(um@5Xrqt^@ zb7y5tR@_9LN%JCfCJ#Q+5MCPt&pix4(EAMS1^P5q2wp{PVn+&v z6KTNzkpU@HjCzrJvp!p@Heo+#(y~1k6nuu z+_w?yM;8@Gc?pzN$Ze`b*#u>0;**!bbQSngZW8t+h1tX%^v;0L9tED!;t1p?P6tbh z6o)hs|G2!24J!M!h5CB8Z6@!`SIL_US)W4CiiTv3eRRO0KuG1}QspxQq-ojde0i37 z*^gDsYCiw^zK&8MNxi!QcvqCN|ovb)~=>S=pRy zz(QgCxZL|W>AeNK&|y^X*(`w#!i&jru#H!Dvuwpy}2k=<<5Z zo|>^Pr(1@UpGF-ms=i?LeWT%nnJ&U_ z1?2vGxVF`M&Vekth%MITE=}F=Y}R+9sAPPz`vk+si(24o1+mqUFl0|tCN$7w)bs&r zP$<_p0?xK2S8b7jj_(%gb4@4nL-uEyJDkAzLV?3%auG+PvrZ5FCGfaVx9z$tLLSb@ zfew|O#%gJruAAe2sJQ)w!c_Zhk2rxv7I#j&_UMqwrq(GsMQrp|YjZvQ2$a>OR@mbS zK5^h2$~;Ib+uc{@Aae9&QpH2<5j;p*hL!%AE5cxPy%rLGLO>#02fYvpG*#fMn$o#g z>C|41;}73|RI)Xanfs*Pe@|Z zw|xp~*Qh?`$qc5+Q6IvU<6#r6@4>s&z1wH#L-$sP$l!%O7y9Bq40WJ)Np@$;13q~_ z%~V$b=xDddOGa$R>l5Hd8Agv|#$gnulw zv>iIvv!iIS(+?WS`j0)c_HT=|T2 z64`WxwLdbs>DXeRjVj>Az(*Et7w;;_mS=DpW@-}HCy1m*w+8go7c@Ej5m*|-+HEz&z=vSV`OTMg9q-@+?-J=H#&N*lm%P(8c#tVEU`tq@m>cK?0*Aa_ znK#x@J{PGQ9UVDSG1u^<-Pj{_R!b^a+z8E~KQGecDF99A5vq+$5K0xDc5YK$_=pw}f_1zLHfOpkE{ zsLl1*roHO47p^@~zvw!N={swq4)?He2{^mR(NIu9w3nwFv|nNDv5kVh>g0*>)Lzfs z&emsc03w_-*md3b-*>x+I4_3BD?V(!xEj11P~*_t_gq=hGM~DdM&WS427&YpM)f0s z*Akvl4#}GXd+b~#vuMh14WScdc`4lX_zW250VClR*Gef#_CWzT=a(yG%PF9KEUS^& zrZyM$iGzj#dw=dOrYmN*F>OG9h$vG_sbfTan6D26{JmuEd>D1HEyZAbkPI`s2CjcK zUHp#J=juLDd*kC_=>vf)P7Qnuq2pOnsT)IU+u&CLMpW&2w1^L{y-^DG#hq}mq~}4q zKLT+9_i`%itvm0I6PxevB|oar^HgmrZXcLEY#AK;L2(rvWpqdZTdYH(JdB=cGU#g? z6|4e|vz`KV_UYU(6_}{?rW0eRMh=Q4t7BEawn%utb|yD3^MlaU{)kQv1G%kg9F_0d z^|sBSkq(Yhj6ueY0_!GsuRjAZLc~XM*QVxyV`PK9w$7LLpBYsSP6PXXQ?k*|_}Eju z%9{d>wrFh1KDGq^7i(`77f1B$`^Ip0hu{QvmjHtVceg=;yL*tqU4y&3`{3^G9wfLk z_#ywj@7?F=-1Bhzu^+lWv!+&ct*T$u_om_5X}!gW=kJHZD2SQ0gdX{{*pZ`OND-Dl1V?&t;{}sup$g0)_XEsgs+O)$Z^$$FdLXDL zR2H8n;T)km|87YJ?a?u(^zdB7i-Q*pwg zLPA%^)R-Y-m}fn$1PIBR`5s9$CZwQFU$@3q%CfXSpl(n3baXAJ9tvI>g(2M3IQk^j z-vRGXP^V%QT7o_OwVXAM;Z}1ip-L0x20HkdW?J@G<7;t>9Cvx>EmVRdnTcR=@N|w_$pHQ<=8?#njQBO3G8p6zk$MF|2yifLS7Ul+#*ruky){a0k&<^TXjE2+8haWUrWp}&=ybn81%1am4G4EdRA`7& zun{3L!}a(fAYF(Ft0IqF%PnNw`0=F=EhBlG+CyTbDjZ+arm(yAI8Vg{=LF*cn|?|AOPNhS)Sv)XoD3_r>+mbT7XU>VB1|J z`7MECVt<1k!{1fa5*MzYa&-5X2Uf(^>BEtjRa)0$+)k+u)nypUo}8bW)$Bj$X2V%oPv?5&1>*wWkh zqFf32IwKWCmkDi0@H6#_*59r{h+YT79gzbg;J1pt&?UtWG<<(lU)yJn9jTrJ_`WVo zO0qz-SpMWE)&x7B9|VM)_X9u=4fvZVIoCgYCMk6Bu_1}9n(syr{(#~#7*$z!`dIN zi@i)}ugy(diCBx7fN8I&_>rDzg?XEekjVrGQl)0`LPufh_*(TKQVN;R;?O^yg8I5p z#lxauL+1iIN^f(oTqymbz{GR$(19wra-((uzBkGycB z-*mpm|H#S9OKe_aO<5umffEDJ_>=1c7jNK}-u{ZD#QZ2H@AI7IU~R|E!yG_JM0k>| zB~a%;Ld|6#N;^G;!Kgq%C{W9rDH#d0hP6tA^zMMgVM0*dg!d4P~{lwn;J@51T)va`BnBSz@&K2Y|EX!|W<$uqW znd`Q!X5I!YBJV$A)G42xm0J@5nq>$79z>Hw<6v7&0wt=`>gW5OOzb?7LW#k)M-g>_ zkE>8~Q9ro?z6#=Fk6qg9rSw`Sz8|u|5m^w|T$3r5_gNc7-jM58x;}UYbSjgP?4jwj zW@q`&nN*b1L+tZ#7He=C?3tj@iuud+w*<7<5S4*9hIuTxUkIv$A(zg|jRxUL?9M~> zzV}im@RlKPdD7%rt*8`@6MeOi6j%lfLpw>{45c7nOf4E#eiMm>zzg#9`u&nAL|@lx z8O@Tg#ibT6YCRR)UzZ)@*#$Sf;FRl2H9~1^b?%Rd{V+9qbQ00-6BfG0Lq@t#>k=v= z2wA+IN~aL!?#B9b^N>593RBa+0-{OVYP4HwCE;60HLlF_HWUhsbMROs+B zBpvoB$RiXG$aQtilw{s8)DIO92?jibZL2fkM+fx9-$8zrA|i{&sJQ7%+?gCvuA9Vu z-&DZKc_p=H_-lV!CxQU{9>N)MWAZI%)ZuEyV``CAV)e(1!mQ-&Rg&4Us6ICOrsY@t zXE#L=O~7GFfydW`FRiUwun2JB2wCqWG=k8JL&%HR?d}g=_V8ZtMN~5}$GLIiVWvC^ zFEZ7V<2}Ap7G8H_l%5itu|kvw&jyOJbQQIn%fUAq75uZ6QTyexub(n813Zi7I;2#% zUEn|R(8xge8NKN)w?$#+oSm~X4OvsHN8#5tQ@U&T!q0>M^w^&DtvR+Ha(Tg~BbkJ> z)DZ_DlMgzyR=n4lr;{(=;m!5vu|D^9k1nWV@cZF>eu=o;IdKncC+qj94ER9Gd0G1ESmfT-Cdiv`O-MKdeeWR<{4`LhwLE^%l z-$`-H!tehI^kY?_z*TUg;~sDTrs7RuF*g-_`qsnm-+@I8XZZ}cOnTw#x{3BhrC}ik z?I=>~VKibnN|ns*-k8C}!TlfvF~En+c4RC$ZgN!G`pn1D!HhMpOqUci;=eO7AAdr{$}9V6!4eE5RB)vr}gV{ZI1p8C?MiKyXcWvonP3nNYf0_!?ney0y=`gW_tP4@5pm z7C0Z>-8M>XPr87&CvAL>zVz{ug2=E6k?u1jvn5pW zU6_oiC3C%`Df+bGt`p4}oMEmO?DE(2H2BA8>>Y06uDjHAZ$~@n*_j|{5W7G@iRl!o zgg!dss;Sv&2Ek9HqYrwc-!Gih&WFdO{zlf?eLqj)4_ms}F)zE#F zGNTzr2!14DDK@a5voQ7pS-u9_udGZl=^+;oI$sFdC?YE47*RtiRzabn>f|~Wfvl&G zIlh|3G}q3t2-G!}>hyirlHb_t5rNuySQdZcMW}|&G@a`*3xZHl;lJ#_m-et!Zr1Qx zognP=CK{;JER1SCRiK)AM^|*c3Cgh{M^**#IR5>^;@w6f-Q0l&lQU^ z6g3O!ZXrg~{eq;2!>lF$OjLTk3-6XrzxS$Sx2Da_Tjt30_wdM%m?j6$o0n#y<0AR4 zlV~Y3JRGr#2?51E*yXQ&KR}I#1oc>DMG?XJ_0Te>Wk3T7)4tn@SM=MskLKMLhnu8? zbV;(knFc)d2;4d5SaZY%)R=sixx~lr&evl|v-h#Ik+?#8SsisvfAUv4L6P z;l}l?PJ03$f*N8p*3V1t3Hi1#`_x;Nrs4pwGbiwG7Dlz=(q=iWx^N;H*RGJtgIk=< zx4v~8qK11$!d09w+r0@}B$(lkgiOHD9ajs%` zxaVsK>yIvfo#NHDmrB$=F;a0|+&AC45fpqbvmlx(s$b&KjWy)OvmK3-iTW4KQKW%^ zC0fP4MtnYRr|3=%k=rNx5j!7;T4WmM+hP0iJW*l>WkW}PzSo*^tG@qtUL3t`Xc$9l zYi9*B@O}?oY%SFMzZ*u4l*w*pq#|0ZqDunSE_QFj!n+C-7Zr4bAK?(-Ur{)B)dHc1{bE%pVp zAG@Q2qGdOK|`H7(%uR?e0d*=-$q%0{mOR1z5)| z)K|QJ1Zb*=*#dlNe3@FD6+N}Ei5WKTk%li(!M{&wrgvx|v*C$KZw;KPW_B`L{-7UB zxJ`GNT2-Lt9kKp-i*8UgeQE2?7q8t;JJ+rPCON&hcGS6>KX z%5P0jGNyjY(kBM!Ll0uC?1BO~XXl3hR{(<%jP_5LbcN~G@W1g@9jF#O(NYr~MTeo^ z121g-7(!e5aq%XPL<8I7FKrG;%vaw(Bxpupc{=0Mt}OkhXHVMo;lD7Y8oWI(O>~gl zvY5m}I!H$npU!%#K}r?>?)HDnWEga(Oe_tOOfDQ_{&yvlXku%@T!Jv)^!NsH|7jcW z<%z^-bhyDNqVx&p-e5$>bK3 zcS_$7OaJ1F$ScDHL2J=sMLa+Jpik+V<}No ze{e|X{r58TY@vV4h&HHtD{O>5?p0mO@FAnwcUWOgMjK@J4P?ICX1&ggLC zAVKJ))X9cBC*;*!7NDO|yyi!$v=2uabcYgDR>wkGUSkbLGN~`&|14JJQWYZ@f@xER zzT8=*MJPe2t~&E6lEv}*=gA5qnA5<9&k>-P5{2J*$Nb*(fhFHp8P0N%x`@uHc2{lA zO5&RL$F03tR_9*hiBw{@b#S1aJ4)z@J=pUHjs{Olo=AWVF8ByrWbfSmrK)9N+q|3JX)s~lvRMA>daZrJ*xfL`#9MDZu5 zo0{(?PKw0d@hQzr3Tqm?^z3wR#w3?}LljSXudlb_M)z%#5d-h*!NuA&^yNe&Jr#;1 z&){9b9@di*+QBEs>#2??J}aVig}j4LIw*@W81%WBB!h2{@Fv@|Nn(_4POnG=0vJg` zKqBi_>+bl~W0qn?%B5udh;`Cos%*rr{WD6SjVkub-Mcst%iD)_L~}K#`8}&AfJ1bz zx0D04LqF;R-!py@&*-a;yQ8sLCA=mU-(B|GoHp4J_EG@st_6-TH#q?s@S5U0@L)e` zjlWS8Iu#?C!r*YLpGUy8Wx*!%&0Ln~t}#>o!Rm0F_S-Gek)4T^p+s}P67k$IOR3$ zAB9}TwPM}(6b5D@T^$Tw9Bj!It14=6YEv(@afwHF%I!433)m)}H|3>;S9h#7cIOUe ziHGzp>zCyQD%hwN>PfIG*}&MZ_kvn+8?F)e@601unsa( z71mg9pY6a0hgmawoYP4f;|(4{HW-j;I6P1$7>GZh*r(B`!VsCJORAy#xBhIwKRkfV zYIIJxESAoma-K8x=NoKPCsOyC`-g>0-Eh+JQn+J1^n$>vm!})Hwbd&+EfuUgqbG;r znOBq(Phx!y^C*@P)HSUqI<3Xh4}9;3%hpBVS@2tLH_p|VP`Dh}m$E#9`S}znemY04 zpxMN}as}Vpl&CviGG8NErs;fa|Gnr3xWRywl4?EUm3dLQ$LQ{GXZd`hD{>mW8_Z7v zeT{66dhjLcN-NT4ac;rMou{Anc97>bFT@xA8+;lsZa95eG{vxqzrO0xrT4<42RK4t zSOdaFCQ)NC`YjFra_~QwsQ{V0DI1w}uR9$Oi|Mp?u@H`u=M+>)?;IB#$ z>Z#2!syVu%0~}%ofwmFK2?Yrba%bhiBZp>Y*x%rd>|bj|>})qgxPc7;epdo_5l2Be zbaK0)^-`4m*fazS`Jk;mp~QG+mD)G_VgsY7|= zJ}hlOB^9L*=_cS}Js>x^%Juh+GwqJb>wf;2*@PN1h{r*|_5Go}`-1-hy%1q)M$irG6IfgB`vJ~Cq7qqyi>7n3 zguH)IKx2fFX{{pU9cWk|mso7RCh<>+U-mqP+_go&uzBX{HMuu4G9Wq{!TEbl8f^c5 z;3i3l+*5%V4VsY>>cNC*><4HKv88KsAa|brXpR;tb5I46414fJ_9bctTpl;Bx)D@F zK0oBzzn=GV6D6w3(p&(~0nfEpco7WnqUXB^>Dq$ud7S;W7>Z2?d6renOS^e~O0ugt zV&9zIP9I5HQ8s>24qs0O0qMR3p`}L9#=eGdfgsKQ2U0wyGw~zC!W-0MtNKwrj;sg zKl4OH1(PK+c0ryme9D73;I4l=^STk-?K8$ zDu|RMga~|}c2Y6b+3-Y;4j5DLoU+9=Bl7jf^(22WQ5wOjCTK<0_O1EQzMl)M6Kj6E zB0ht!h(i7dQ?sfpNs&s)VmNDYQxmhZw?bUZvBzpSlaf?!CJ=#76u}2$yOq&LeCqr3 zIWiE#;bGTA!$$^|a%GR%W*6S+8@=D#ncoGjJE3WkwV&yAPPKeXoSUZ=6XSak_UAHE zSyQx#rnQjO@$3h3d9T(3jnFRgKwq6|e}Q= zIEHjq0u_fzrU-kXWr&5HjS#Z+)c}lHP9mR=V&aq&Nw9#lcJB8- znh_QAI0T!X+l5V2`&u$|FCL1LTdc+cocA>TD65aTM;fHfeVD>;k*mxzKm6)2j&hC% zT;1%>V^OaVL`BsI1s1ZzZBr1hmdpS;QzGM;+FQO78cZ!PIx5AsINrs8xGI)cfz@|3 zA$rZUVzcQ2Gz0eI&e=FjOw&YK|I%aeN+~h?+3GJ(iKt!8$xIrjT^czEU5?ErtgJN~ zJi8Q41OaekLr6h)7rT(-FoaS*H(Spg`i{XYg1>4Je%p(;^2^3x2bY5iXL3n%x)k7e zv3tjRR&n$zt|!bw_m(KI+4TVJ&$w)Ml2{8b|Cj}dB9PD8iKOkm^LsgfWZrkx&!hqY zw)>8W-J*_AP&0ulffKjd=kuc$jh(NaHhcPUy@d=kb~Sp`R7Uu6y%Im=svP;qm*=VX6xGNWKls^{r;q%^nM zQo10QM-juh&KWm)uNrg8zwfBrtgd&3B_}8AJ7OHQR{B4o+Rl4ZI^%?0q~~&8h|jZy zRD`9$STR1c8hp+WHEf&+1GBpU-eDmZT24cy@GATe^~0|^UuW?|+6rc~*B|`hfC<1}eP`pXMbPhef(2oB`^mb5Xi6Fs)o{mQoJA=ejSi2@3R*<+e(oW=Dw9$OfTJv# zY<8{$c*b;&^Yp%93<*^2E?gfsUjazjE8E~^hkleL;#<+RbgSq%SD;tZ(qbvI=H{}R zzb0afEVF_F(UZH1-D;W_yv>Q#o0r2*>+xyyat+qx&@nJb<_$N~yW6|16}#u*l3W<= zPQXyM{rZ04QNl7;JLCCa)x7Up?}GbzFr&^%hJlGbye#%3tgs$z-gFJEfS*p8l{9-( z0@>XL8lexqA3?DEc87=+gY_@;6wIntQJ#baj5nGvbWs0CkOPA{zIz}l#kfA<{$pIT zb0`zKYO?Yt=L2{+tweHmdTxn-tlcR$T6H&{Ds{Tq{|R4(&718gF4P1=t!P=oMc!(& zRQov39r9uk*!YI5GO<0;bC`rM5reUkw0}lA6d>)gR+TH5Cw!v^u@1oK2@Vra{vN)| z$Z-Fc9(W1)N8om^@prp8{C1V(IKJTauY064tdrW~i&UW|ACLdWBPr|lm>%98@_Anx z2x-QWEH($w2I4+(`cS4`-a8=bT62))*Sy7tAn|kFkEQlU?&lYIbKRtF+i=RKahA|j zeB)*77DcM#mDH1HNawEh)GXe&S2o~AmS9pzfs6)xf!iY;NU=Z=(ow+?Cy2FChpin! zLP=jwdUa@8J9QLQtRhEZc@NoI$l<#{UJQ~pmuLp?h#1A=RGuaG@`-=KxQDOCIcCIP zrtquWC<>1Jp=t?Mz1o4=XD^3|PV>>Z|ys8=v zE~-3Z_Lnb9=b9jvCs~dCA$EX1b+PuTc!+n`TlIAS8tqM{A6ONE^k&Nzx1MU0bCyB` z*J64GE4*lZU|aO*a(~W~rk*a>y~966M*yRzvU*Dk&UeuDQ|xzbb-o%MWhcbp0f*A# zqn%k@jBg&v#zi`8%l`~UD3YdJ-LNC9Q#rc)+n-Qx)dZ1(Z|Eb`m3w;6!GLD&=~I*& z`o#A5c4R4vPTYj;S5m8{9`WBA;2n~lyS$o!H}Q44zQCIZvRs$NJL z*H)7(jcA*UV4WlfDX?RQOM)_v6*T$Xrp%5jAKRsyLMh<8g;|DnmtaLrtp|o1bV1m8DW%uWj;9Y1xreJCUQcu%3#chbV^Gnh(7)bn z2$#arX0z8A!C+y2MC<-Udq_v?gROv>AL4`>L*?&8@f{uZiwGQL$9>z&Po~qjHC;x` z0{+hXND6fq*Po`Q2SRLZX;I32D7$f`q^Vrkk(UF&Vrt!0R^R=~7!fX#fXk6+wQBH38YTOEto((_o(kJIEd&KOLJt339r^_A8^XH1X7bfz zv6!|$>3sUgx+ru{E2c`7g#6tdB}!XEzU57TimE;J;{;I|LwNl2hE=0ukK&@Yx6Dll zxlv+0kx740hx(cL&NWtsLf;bR#5FX>9sRoVmReXPSm$FGjRCoicg7OzjB1)o*4>F7 z3~mne$R0D-wZ$)uv2oi0@~6iC4D3OqkcoWr6FZnWyy@Bs`ND13%?y8(o{g3hP zq*56-9XJ;Lou-_qAJrvt6D3rjpyzrX8QPe$U2(#}d0uJ{Q3cUWN{5x@-GSXtTiLdI zC5onp^j?Bv_@kRo@Gy0%u($$vS)B<{B`ED-iN0e4DHf*yY)A36%hP<)M6?#dgYBI$l43#=v@VWYJgJ;%JJ{IU%Ic+i0nU* z@IS)77FP`{=fxJE#mCG$LvOdd3hfp&1T$MM**#-fM6x|aebtTlk%FcY2Shn1COTjIFsAq6$OybLcgAu#S=wR(o-PE!(Ab9~FW3wsfeXic^ zBmL`x17eW1E2!~OgWkJN@DMD`wwdd7H&Wu+Z2+osgp#uJ+mmw{w%Ba$er(Op1xs70*BS}^c_ygO<> z*-mWFuN%dAR(=$$X*1&TUj~Gopj@<%yHv%Q^yc(2jY=Q{EVL-%W5v#>U0buF{QG|C z!^sVdAvsg7!d@V8fJc}1-iLc?V$t1k{hg&!IJYfB_4?a7@yC86?uc!T4hWpeoBNmf z__k{zr*wN{AcN?ZWmeE`aNXB3Z-uH%gew=Y`BjHhNuz~-?4(oQm8%PIc9s0%@Ue9$ zd@0xnYGn6~crZYUNxVDK8igtRUFDtI*4_E4u>R!fEUe`bB*YYk0}WvsOq(Ht%1d9M`KNW5(}hGX8(-7b>fxbjeZp5_F8w(Qk#fU zu4IUss6rsmzevFNXr3_-J4JzV^Rflwb@}XVR?HhL;4AjE?5Aghhp!+Qf8W%}w9Epf ze=tiRVB!@YlR^(rdT!_S(h0m^O9vgzA=@&g2Xhfy`Qe*yFV+A2+!$=yRb{IFMVs(D zPSs=^1Mj@DXxV%>X*rMoEsiQDK%<(&NsFOegfF{em_|O5N?xYNk?19R82sy^7_ijJ z{pyM2m?#t^n-&<{!yn`9#5PU|W3 z8Mwtu8H-%Zo*qrzTn)(Q6imLJmBJGhdIfwVIw_?WRrC9Nc@?lB8P*b^Q`CC+aAgWH zvzvBaZ;Z?uj24m`fK_C?&T}!iO|9T|n{H#{F8SR$* z6PN!%xqV|`;lwksWb5sakp9t*z4dYLtKt17H+guy;58g}=O#fWc42|X@xQ}r>$Rjh zdYnmyTv6wQe9k=WHF-fU-FDxx)}Fu6rKMgDHmNX|t&B-8Nt+!fCo)4CC|6j4$gQ>Q zz5U6C44cUDy}nEn&-zJs{lnu#LU=tp+yo=#q$%U~F|NF6TNmyrAim2Rgr=Q4P;^l= z`PXd~(!f&WFsz3S9H*SwC(E_a*EA!5yPVUaqR?*X`L4#@ptjj-IpE(B*@8(wwX>dzHNZ*tlc$O${5?^{1-Bpp zgr9S1UNk$Jd@cpY?!=AoDpBHcZL@y|?Q5=*0~zO-+h?H@zQ_x0+VG3{Ira?PptYeMW)*o@9gZw(Ml{zRK@c?&`8NM@HJe+wV>5 za=l;wd&1_B2x9JkL7GG8`~I(Q=6_mGsy|rRi8Md9R|`JQ7G2wCVzyt#GZPl8q?Wf) z6&#U_)(F0*lIvlsn&@FF8mI5Lzy%ZDV>K3zh$lN*j~=+0Z~wsD;UqIPcrvvGo^7vM zl#S7~hn;Rt^jsTJZ|^bPlWKClC|ci0wcl+}>9D(4VTQR=B7YtNG3y2_B-E@ zGl`x!e_FNrAD6<*FsDKDAhm%XKj@PTcXyt<6u0$pTKx{N?_A5dJwQ4UI!$T#&3=rM z-kAbA)i-X`nO)z8J}z=F={tG2J#+E49`o(AX+LYU;}{vv&^uqp=YbrDzfWA#CmyPA z`$@rj{s&&>5zftH1(m&)!9&*7neXRVlyG!YmN1Sw+&wZDf7Ta!H~`G5{EGit2m5YDk~r=~12M8fH=|sOD!Ws{7=(vEX6UCx`85ZucfBeuhl$gAl-}L)3sX4 zB{m|R_kO4{(rDwt6Y~z^;chhNy5hYPe&S>O1+KAfytN70e?@LK`L;+2+efD;XGA9Mmqo5?<2k>EuF^ZmLeo8`Rw1X*F@9kK(0R$fH8i^E^w!ks_JSOFElRB3U0WCxiBP!*qFZ6=fx z@a@x*^bQoaw;DaZ5BfT=73xnXb>5!Y)_lIGfIOw4TzJLvb=W>U-e>($Ko}=*-`z0( zw4O1x=(;#sYjj*#=H&BWdtB5OO!;t6a(eAh=_;hHCr4j$U+Rinap*EMsC}v@X=LI$ z$uS*A$1602-uYIILCwb>5%le;nsbIEpzyI2>>8p%KlB3@KO53|`H(L=RW z@pP-Z-S{T5Dfc^NvnnBfc>9ahk|pBzzu(1$-WPH-g9<)Vr(ed3EOT$Xuz7;rAfErS zVA`~sX5zc+~9iWnWLbLaJmwH-rI6>+AjT6eQ_|(?N#yNPEeNRCKP6RdJuml(6{<<@OB9& z8L46g&AC-D?DF&H*!pcYuXIk>tf*q@M)HrIN%ZJgT^yJpCa#A#fpmOMxV+9EJ~{6< zv2YDYu4rlQ4l!NVJj(DpWpxA-HIlj+u8^An6QhidlMJUTHS$Yzrm|NJBL3>5V8KvF zGS;;|6tFc`e#In)pv^YA?antnl22)cBM|Hx-aSmX-Gi`)mNnw2g@?Fn&^8%2qkq?b zQuGV6cDsSQ8PSP!=d1eqLjY#i$5ni=XfRj#W^Kj`@a`B|hChC`Nbhb9NRFXuBeUv~ zsfKO1SmSE@lj1ZFgK8hjN9yX>YfmDiU)IZ1glE^)-_<3hOYZj1|2zca)R44*WaMVbG!pdId*OkL-B`J5$(z?u8qthd>-ioq<#oVo2^W||epmbH*1*5l6U z?vF?nJi5^gd?75cL+lKbI3_s8j0M0XQ6w>m7Ep-A^>vo+@Q{kd2CK>;s(FD4eFySI zk9BaoNjwozIO*ZfWakI>qErjOkacA5^}L$bAys4TML;kq`K1PdytlVPMeSuf12)(j z^Rn+c%%Z0>e#qE>5rVH!|3!)K;6^&F5)YIf`*!1qo`H7T_#{RFx zq8m`w$c;P3&tnU`lEkCMq6-bS1BU};o)-$W=VoNj32O4XDPrd~#C~a%;4W3mlO;31 z@?O<>Jj%8OK#ST!iunny#jl84M`k|JgqBz&1Ii*`TJb3MD$*bhQ+=TLNN@M~MsJb_ z26Iap{2<*zjW@^AF0$picL(TEU!rR_<=zY*v_BY<64`QkZy~m~JVZTey zRjF1*OLKmC=)9Cu)}9TO--~{K!z(0c&ghz5hEvSyugb3ClRld&TPF8h3RV zEBRH+pQJH;V6UFPm|ukD&)@As#Z`RqzdJQ&y-fBw=f>@GJ>cezwUA-`LLlU6N5|Y! zV{yE(>0U5C1$1!g2ChPbkEz`OAF|!sOj|0X{YpLb1_M>os^hPZv@$ zQW6&*>kCL7N^ZfDB2_1~>ih(=vcB5%0DIiG=GLc!5$oJE1uhY6B68^@pen>9|Id(J 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 literal 0 HcmV?d00001 diff --git a/docs/system-admin-guide/integrations/share-point/site-guide/README.md b/docs/system-admin-guide/integrations/share-point/site-guide/README.md new file mode 100644 index 00000000000..c93f990382a --- /dev/null +++ b/docs/system-admin-guide/integrations/share-point/site-guide/README.md @@ -0,0 +1,49 @@ +--- +sidebar_navigation: + title: SharePoint Site setup guide + priority: 600 +description: Site permission guide for SharePoint integration setup in OpenProject +keywords: SharePoint file storage integration, SharePoint, Sites.Selected, Sites Permission +--- + +# SharePoint Site setup guide + +## Configure the Integration permissions on the SharePoint Site + +You will need to grant the `manage` permission to the Azure Application so that the integration can work. + +> [!IMPORTANT] +> Some of the following descriptions are very tightly connected to the current (2025-10-29) state of SharePoint configuration. This may easily change in future, as we do not control nor foresee changes to the configuration UI developed by Microsoft. + +### Authentication and permission + +To communicate with the GRAPH API you need to authenticate against it. This is done through an Azure application defined in the [Azure portal](https://portal.azure.com/) for your Microsoft Entra ID. + +### API Endpoints + +Once you have an access token, as a Site Admin, you will be able to check the site permissions using the following endpoints: + +> [!IMPORTANT] +> The current documentation for setting permissions on a SharePoint site can also be found at the [Microsoft Graph API documentation](https://learn.microsoft.com/en-us/graph/api/site-post-permissions?view=graph-rest-1.0&tabs=http) + +```shell +GET https://graph.microsoft.com/v1.0/sites/:/sites/:/permissions +``` + +Then you will need to grant access to the Azure Application by sending the following JSON: + +```json +{ + "roles" : ["manage"], + "grantedToIdentities" : [{ + "application": "", + "displayName": "" + }] +} +``` +To the same URL above but as a POST request + +```shell +POST https://graph.microsoft.com/v1.0/sites/:/sites/:/permissions + +``` \ No newline at end of file diff --git a/docs/user-guide/file-management/one-drive-integration/README.md b/docs/user-guide/file-management/one-drive-integration/README.md index 83f475c6a55..638150b8c23 100644 --- a/docs/user-guide/file-management/one-drive-integration/README.md +++ b/docs/user-guide/file-management/one-drive-integration/README.md @@ -1,38 +1,38 @@ --- sidebar_navigation: - title: OneDrive/SharePoint integration + title: OneDrive integration priority: 800 -description: Using the OneDrive/SharePoint integration to link/unlink files and folders to work packages, viewing and downloading files +description: Using the OneDrive integration to link/unlink files and folders to work packages, viewing and downloading files keywords: integration, apps, OneDrive, SharePoint, user --- -# OneDrive/SharePoint integration (Enterprise add-on) +# OneDrive integration (Enterprise add-on) -You can use **OneDrive/SharePoint** as an integrated file storage in OpenProject. +You can use **OneDrive** as an integrated file storage in OpenProject. > [!NOTE] -> OneDrive/SharePoint integration is an Enterprise add-on and can only be used with [Enterprise cloud](../../../enterprise-guide/enterprise-cloud-guide/) or [Enterprise on-premises](../../../enterprise-guide/enterprise-on-premises-guide/). An upgrade from the free Community edition is easy and helps support OpenProject. +> OneDrive integration is an Enterprise add-on and can only be used with [Enterprise cloud](../../../enterprise-guide/enterprise-cloud-guide/) or [Enterprise on-premises](../../../enterprise-guide/enterprise-on-premises-guide/). An upgrade from the free Community edition is easy and helps support OpenProject. This integration makes it possible for you to: -- Link files and folders stored in OneDrive/SharePoint with work packages in OpenProject +- Link files and folders stored in OneDrive with work packages in OpenProject - View, open and download files and folders linked to a work package via the **Files** tab > [!IMPORTANT] -> To be able to use OneDrive/SharePoint as a file storage in your project, the administrator of your instance should first have completed the [OneDrive/SharePoint integration setup](../../../system-admin-guide/integrations/one-drive). Then a project administrator can activate the integrated storage in the [File storages](../../projects/project-settings/files/) for a project. +> To be able to use OneDrive as a file storage in your project, the administrator of your instance should first have completed the [OneDrive integration setup](../../../system-admin-guide/integrations/one-drive). Then a project administrator can activate the integrated storage in the [File storages](../../projects/project-settings/files/) for a project. | Topic | Description | | ------------------------------------------------------------ | :----------------------------------------------------------- | -| [Connect OpenProject to OneDrive/SharePoint](#connect-your-openproject-and-onedrivesharepoint-accounts) | How to connect your OpenProject project and OneDrive/SharePoint | +| [Connect OpenProject to OneDrive](#connect-your-openproject-and-onedrive-accounts) | How to connect your OpenProject project and OneDrive | | [Link files and folders to work packages](#link-files-and-folders-to-work-packages) | How to link your files and folders to work packages in OpenProject | -| [Upload files from OpenProject](#upload-files-from-openproject) | How to upload files to OneDrive/SharePoint from OpenProject | +| [Upload files from OpenProject](#upload-files-from-openproject) | How to upload files to OneDrive from OpenProject | | [Download, open folders and remove links](#download-open-folders-and-remove-links) | How to download and open files and folders and remove links | -| [Permissions and access control](#permissions-and-access-control) | Permissions and access control in OneDrive/SharePoint file storage | -| [Possible errors and troubleshooting](#possible-errors-and-troubleshooting) | Common errors in OneDrive/SharePoint integration and how to troubleshoot them | +| [Permissions and access control](#permissions-and-access-control) | Permissions and access control in OneDrive file storage | +| [Possible errors and troubleshooting](#possible-errors-and-troubleshooting) | Common errors in OneDrive integration and how to troubleshoot them | -## Connect your OpenProject and OneDrive/SharePoint accounts +## Connect your OpenProject and OneDrive accounts -To begin using this integration, you will need to first connect your OpenProject and Microsoft accounts. To do this, open any work package in a project where a OneDrive/SharePoint file storage has been added and enabled by an administrator and follow these steps: +To begin using this integration, you will need to first connect your OpenProject and Microsoft accounts. To do this, open any work package in a project where a OneDrive file storage has been added and enabled by an administrator and follow these steps: 1. Select any work package. Go to the **Files tab** and, within the correct file storage section, click on **Storage login** button. @@ -45,17 +45,17 @@ To begin using this integration, you will need to first connect your OpenProject ## Link files and folders to work packages -In addition to listing files directly attached to a work package, the **Files** tab shows the OneDrive/SharePoint files that are linked to the current work package. Hovering on any linked file with your mouse will give you options to open or download the file, show the containing folder in SharePoint or remove the link. +In addition to listing files directly attached to a work package, the **Files** tab shows the OneDrive files that are linked to the current work package. Hovering on any linked file with your mouse will give you options to open or download the file, show the containing folder in SharePoint or remove the link. To link a SharePoint file to the current work package, you can either: -- select a local file, which will be uploaded to OneDrive/SharePoint storage and linked to this work package -- select an existing file in OneDrive/SharePoint to link to +- select a local file, which will be uploaded to OneDrive storage and linked to this work package +- select an existing file in OneDrive to link to -![Link existing files to OneDrive/SharePoint from an OpenProject work package](openproject_onedrive_link_existing_files_link.png) +![Link existing files to OneDrive from an OpenProject work package](openproject_onedrive_link_existing_files_link.png) > [!NOTE] -> The default location that opens in the file picker is the file root of the configured OneDrive/SharePoint drive. +> The default location that opens in the file picker is the file root of the configured OneDrive drive. ![Select a SharePoint file or folder to link to an OpenProject work package](openproject_onedrive_link_files.png) @@ -65,16 +65,16 @@ If the file you want to link has not yet been uploaded to SharePoint, you can do ![Upload file link in an OpenProject work package](openproject_onedrive_upload_file_link.png) -You will then be prompted to select a file (or multiple files) on your computer that you want to upload to OneDrive/SharePoint. +You will then be prompted to select a file (or multiple files) on your computer that you want to upload to OneDrive. ![Choosing a file to upload to SharePoint in an OpenProject work package](openproject_onedrive_select_file.png) -Alternatively, you can also simply drag a file or folder from your computer to the drag zone that will appear under the name of your OneDrive/SharePoint file storage. +Alternatively, you can also simply drag a file or folder from your computer to the drag zone that will appear under the name of your OneDrive file storage. -Once you have selected or dropped the files you would like to upload, you will need to select the location on OneDrive/SharePoint to which they should be stored. +Once you have selected or dropped the files you would like to upload, you will need to select the location on OneDrive to which they should be stored. > [!NOTE] -> The default location that opens in the file picker is the file root of the configured OneDrive/SharePoint drive. +> The default location that opens in the file picker is the file root of the configured OneDrive drive. ![Selection a Sharepoint location to upload a file from OpenProject](openproject_onedrive_select_location.png) @@ -89,13 +89,13 @@ You can also directly create a new folder within your Sharepoint folder structur To save the files you uploaded to the currently open folder, click on the **Choose location** button. -The selected file is uploaded to your OneDrive/SharePoint instance and linked to the current work package. It appears under the name of the file storage. +The selected file is uploaded to your OneDrive instance and linked to the current work package. It appears under the name of the file storage. ![File successfully uploaded to Sharepoint storage](openproject_onedrive_file_uploaded.png) -If a file has been deleted on the OneDrive/SharePoint file storage it will still be displayed under the **Files** tab. However it will not be selectable. If you hover over a deleted file you will see the message indicating that the file could not be found. +If a file has been deleted on the OneDrive file storage it will still be displayed under the **Files** tab. However it will not be selectable. If you hover over a deleted file you will see the message indicating that the file could not be found. -![A file has been deleted from the OneDrive/SharePoint file storage](oneproject_onedrive_deleted_file.png) +![A file has been deleted from the OneDrive file storage](oneproject_onedrive_deleted_file.png) ## Download, open folders and remove links @@ -105,17 +105,17 @@ If you wish to unlink any linked file or folder, hover it in the list of linked Respectively in order to download a file, click on the **Download icon** in the context menu of the file link in the list of the linked files. -If you click the **Folder icon**, the OneDrive/SharePoint folder containing this file will open in a separate tab. +If you click the **Folder icon**, the OneDrive folder containing this file will open in a separate tab. ## Permissions and access control -When a file or folder from OneDrive/SharePoint is linked to a work package, an OpenProject user who has access to that work package will be able to: +When a file or folder from OneDrive is linked to a work package, an OpenProject user who has access to that work package will be able to: - See the name of the linked file or folder - See when it was last modified (or created, if it has not yet been modified) - See who last modified it (or who created it, if it has not yet been modified) -However, all available actions depend on permissions the OpenProject user (or more precisely, the OneDrive/SharePoint account tied to that user) has in OneDrive/SharePoint. In other words, a user who does not have the permission to access the file in OneDrive/SharePoint will also *not* be able to open, download, or modify the file in OpenProject. +However, all available actions depend on permissions the OpenProject user (or more precisely, the OneDrive account tied to that user) has in OneDrive. In other words, a user who does not have the permission to access the file in OneDrive will also *not* be able to open, download, or modify the file in OpenProject. Please note, that with automatically managed project folders these permissions are set by OpenProject based on user permissions in OpenProject. @@ -123,6 +123,6 @@ Please note, that with automatically managed project folders these permissions a ### No permission to see this file -If you are unable to see the details of a file or are unable to open some of the files linked to a work package, it could be related to your OneDrive/SharePoint account not having the necessary permissions. In such a case, you will be able to see the name of file, time of last modification and the name of the modifier but you will not be able to perform any further actions. To open or access these files, please contact your OneDrive/SharePoint administrator or the creator of the file so that they can grant you the necessary permissions. +If you are unable to see the details of a file or are unable to open some of the files linked to a work package, it could be related to your OneDrive account not having the necessary permissions. In such a case, you will be able to see the name of file, time of last modification and the name of the modifier but you will not be able to perform any further actions. To open or access these files, please contact your OneDrive administrator or the creator of the file so that they can grant you the necessary permissions. ![Error message based on missing permissions to see a file in OpenProject](openproject_onedrive_no_permission_to_view.png) From 2a988ff61bea6b316f2e92c4f7c3c7a973094042 Mon Sep 17 00:00:00 2001 From: Dombi Attila <83396+dombesz@users.noreply.github.com> Date: Tue, 25 Nov 2025 12:10:21 +0200 Subject: [PATCH 33/33] Fix non existing method call of project creation wizard name --- app/models/project/pdf_export/project_initiation.rb | 2 +- .../app/components/overviews/page_header_component.html.erb | 2 +- spec/models/project/pdf_export/project_initiation_spec.rb | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/project/pdf_export/project_initiation.rb b/app/models/project/pdf_export/project_initiation.rb index 5cccaa14b9c..ea5386472b0 100644 --- a/app/models/project/pdf_export/project_initiation.rb +++ b/app/models/project/pdf_export/project_initiation.rb @@ -121,7 +121,7 @@ class Project::PDFExport::ProjectInitiation < Exports::Exporter end def heading - project.project_creation_wizard_name + project.project_creation_wizard_artifact_name end def footer_title diff --git a/modules/overviews/app/components/overviews/page_header_component.html.erb b/modules/overviews/app/components/overviews/page_header_component.html.erb index d6db8d66938..b8ba93e76ce 100644 --- a/modules/overviews/app/components/overviews/page_header_component.html.erb +++ b/modules/overviews/app/components/overviews/page_header_component.html.erb @@ -32,7 +32,7 @@ if OpenProject::FeatureDecisions.project_initiation_active? && project.project_creation_wizard_enabled menu.with_item( - label: t(:label_project_initiation_export_pdf, project_creation_name: project.project_creation_wizard_name), + label: t(:label_project_initiation_export_pdf, project_creation_name: project.project_creation_wizard_artifact_name), href: helpers.export_project_initiation_project_path(project, format: :pdf), data: { turbo: false } ) do |item| diff --git a/spec/models/project/pdf_export/project_initiation_spec.rb b/spec/models/project/pdf_export/project_initiation_spec.rb index 54596999192..9765c2958b1 100644 --- a/spec/models/project/pdf_export/project_initiation_spec.rb +++ b/spec/models/project/pdf_export/project_initiation_spec.rb @@ -73,7 +73,7 @@ RSpec.describe Project::PDFExport::ProjectInitiation, with_flag: { project_initi let(:current_user) { create(:admin) } it "exports a PDF containing project initiation using the custom defined name" do - custom_artefact_name = project.project_creation_wizard_name + custom_artefact_name = project.project_creation_wizard_artifact_name expected_document = [ project.name, custom_artefact_name, export_time_formatted, # cover page custom_artefact_name, @@ -105,7 +105,7 @@ RSpec.describe Project::PDFExport::ProjectInitiation, with_flag: { project_initi end it "exports a PDF containing project initiation with custom attributes grouped by sections" do - heading = project.project_creation_wizard_name + heading = project.project_creation_wizard_artifact_name expected_document = [ project.name, heading, export_time_formatted, # cover page