From 34bd0a2c671341cb8634572c00e0e885579ef726 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20G=C3=BCnther?= Date: Wed, 14 Aug 2024 07:33:01 +0200 Subject: [PATCH 01/26] Bumped version to 14.4.1 [ci skip] --- lib/open_project/version.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/open_project/version.rb b/lib/open_project/version.rb index 4445dca8a468..915cc3386ec8 100644 --- a/lib/open_project/version.rb +++ b/lib/open_project/version.rb @@ -33,7 +33,7 @@ module OpenProject module VERSION # :nodoc: MAJOR = 14 MINOR = 4 - PATCH = 0 + PATCH = 1 class << self # Used by semver to define the special version (if any). From 4ed284cc832f7a7b85377426ec488f48601f9139 Mon Sep 17 00:00:00 2001 From: Marcello Rocha Date: Wed, 14 Aug 2024 15:30:18 +0200 Subject: [PATCH 02/26] Filter the project storage members to show only users --- .../project_storage_members_controller.rb | 6 ++++-- .../project_storage_members/index.html.erb | 2 +- .../features/view_project_storage_members_spec.rb | 14 ++++++++++++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/modules/storages/app/controllers/storages/project_settings/project_storage_members_controller.rb b/modules/storages/app/controllers/storages/project_settings/project_storage_members_controller.rb index abb0558754cd..cfb95c4add34 100644 --- a/modules/storages/app/controllers/storages/project_settings/project_storage_members_controller.rb +++ b/modules/storages/app/controllers/storages/project_settings/project_storage_members_controller.rb @@ -41,9 +41,11 @@ class Storages::ProjectSettings::ProjectStorageMembersController < Projects::Set model_object Storages::ProjectStorage def index - @memberships = Member + @project_users = Member .of_project(@project) - .includes(principal: :remote_identities, roles: :role_permissions) + .joins(:principal) + .preload(roles: :role_permissions, principal: :remote_identities) + .where(principal: { type: "User" }) .paginate(page: page_param, per_page: per_page_param) render "/storages/project_settings/project_storage_members/index" diff --git a/modules/storages/app/views/storages/project_settings/project_storage_members/index.html.erb b/modules/storages/app/views/storages/project_settings/project_storage_members/index.html.erb index 84ff6c317a05..10e67da38ef5 100644 --- a/modules/storages/app/views/storages/project_settings/project_storage_members/index.html.erb +++ b/modules/storages/app/views/storages/project_settings/project_storage_members/index.html.erb @@ -43,4 +43,4 @@ See COPYRIGHT and LICENSE files for more details. storage_name_link: link_to(@storage.name, edit_admin_settings_storage_path(@storage))).html_safe ) %> -<%= render(::Storages::ProjectStorages::Members::TableComponent.new(rows: @memberships, storage: @storage)) %> +<%= render(::Storages::ProjectStorages::Members::TableComponent.new(rows: @project_users, storage: @storage)) %> diff --git a/modules/storages/spec/features/view_project_storage_members_spec.rb b/modules/storages/spec/features/view_project_storage_members_spec.rb index 055d51126603..08d14ec8cad2 100644 --- a/modules/storages/spec/features/view_project_storage_members_spec.rb +++ b/modules/storages/spec/features/view_project_storage_members_spec.rb @@ -33,10 +33,13 @@ RSpec.describe "Project storage members connection status view" do let(:user) { create(:user) } + let(:group) { create(:group, members: [group_user]) } + let(:placeholder_user) { create(:placeholder_user) } let(:admin_user) { create(:admin) } let(:connected_user) { create(:user) } let(:connected_no_permissions_user) { create(:user) } let(:disconnected_user) { create(:user) } + let(:group_user) { create(:user) } let!(:storage) { create_nextcloud_storage_with_oauth_application } let!(:project) { create_project_with_storage_and_members } @@ -76,11 +79,16 @@ [admin_user, "Connected"], [connected_user, "Connected"], [connected_no_permissions_user, "User role has no storages permissions"], - [disconnected_user, "Not connected. The user should login to the storage via the following link."] + [disconnected_user, "Not connected. The user should login to the storage via the following link."], + [group_user, "Not connected. The user should login to the storage via the following link."] ].each do |(principal, status)| expect(page).to have_css("#member-#{principal.id} .name", text: principal.name) expect(page).to have_css("#member-#{principal.id} .status", text: status) end + + [placeholder_user, group].each do |principal| + expect(page).to have_no_css("#member-#{principal.id} .name", text: principal.name) + end end end @@ -113,7 +121,9 @@ def create_project_with_storage_and_members admin_user => role_cannot_read_files, connected_user => role_can_read_files, connected_no_permissions_user => role_cannot_read_files, - disconnected_user => role_can_read_files }, + disconnected_user => role_can_read_files, + placeholder_user => role_can_read_files, + group => role_can_read_files }, enabled_module_names: %i[storages]) end From fd033aa5cdf6268ac4634a60671d7b3e259eb161 Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Thu, 15 Aug 2024 03:18:18 +0000 Subject: [PATCH 03/26] update locales from crowdin [ci skip] --- config/locales/crowdin/de.yml | 2 +- config/locales/crowdin/js-zh-TW.yml | 66 +++++++++---------- config/locales/crowdin/zh-TW.seeders.yml | 6 +- config/locales/crowdin/zh-TW.yml | 12 ++-- .../avatars/config/locales/crowdin/zh-TW.yml | 2 +- .../config/locales/crowdin/js-zh-TW.yml | 2 +- .../config/locales/crowdin/zh-TW.yml | 2 +- .../config/locales/crowdin/js-ru.yml | 2 +- .../config/locales/crowdin/zh-TW.yml | 2 +- .../config/locales/crowdin/zh-TW.yml | 2 +- 10 files changed, 49 insertions(+), 49 deletions(-) diff --git a/config/locales/crowdin/de.yml b/config/locales/crowdin/de.yml index 343e46f26a5c..7fb338b4eac4 100644 --- a/config/locales/crowdin/de.yml +++ b/config/locales/crowdin/de.yml @@ -1814,7 +1814,7 @@ de: label_add_another_file: "Eine weitere Datei hinzufügen" label_add_columns: "Ausgewählte Spalten hinzufügen" label_add_note: "Kommentar hinzufügen" - label_add_projects: "Projekte erstellen" + label_add_projects: "Projekte hinzufügen" label_add_related_work_packages: "Zugehöriges Arbeitspaket hinzufügen" label_add_subtask: "Unteraufgabe hinzufügen" label_added: "hinzugefügt" diff --git a/config/locales/crowdin/js-zh-TW.yml b/config/locales/crowdin/js-zh-TW.yml index 8944ae4aab4d..00e92408daa1 100644 --- a/config/locales/crowdin/js-zh-TW.yml +++ b/config/locales/crowdin/js-zh-TW.yml @@ -68,7 +68,7 @@ zh-TW: button_close: "關閉" button_change_project: "切換專案" button_check_all: "勾選全部" - button_configure-form: "配置表單" + button_configure-form: "表單設定" button_confirm: "確認" button_continue: "繼續" button_copy: "複製" @@ -79,10 +79,10 @@ zh-TW: button_delete: "删除" button_delete_watcher: "刪除監看者" button_details_view: "詳細檢視" - button_duplicate: "複本" + button_duplicate: "複製" button_edit: "編輯" button_filter: "篩選條件" - button_collapse_all: "全部摺疊" + button_collapse_all: "全部收合" button_expand_all: "全部展開" button_advanced_filter: "進階篩選" button_list_view: "清單檢視" @@ -139,11 +139,11 @@ zh-TW: description_subwork_package: "子工作項目 #%{id}" editor: preview: "切換預覽模式" - source_code: "切換標記源模式" - error_saving_failed: "保存文檔失敗, 出現以下錯誤: %{error}" + source_code: "切換Markdown模式" + error_saving_failed: "保存文件失敗, 出現以下錯誤: %{error}" ckeditor_error: "CKEditor 出現錯誤" mode: - manual: "切換到標記源模式" + manual: "切換到Markdown模式" wysiwyg: "切換到所見即所得編輯器" macro: error: "無法展開巨集(macro):%{message}" @@ -153,18 +153,18 @@ zh-TW: nested_macro: "該macro遞歸引用 %{model} %{id}。" invalid_attribute: "所選屬性 '%{name}' 不存在。" child_pages: - button: "指向子頁面的連結" + button: "導到子頁面" include_parent: "包括主項目" text: "[Placeholder] 連結到子頁面" page: "維基頁面" this_page: " 本頁" hint: | - 將此欄位留空, 以列出當前頁的所有子頁面。如果要引用其他頁面, 請提供其標題或 slug。 + 將此欄位留空, 以列出當前頁的所有子頁面。如果要引用其他頁面, 請提供其標題或名稱。 code_block: button: "插入程式碼片段" title: "插入/編輯程式碼片段" - language: "設定語言" - language_hint: "輸入將用於突出顯示的格式語言 (如果支援)。" + language: "格式化語言" + language_hint: "輸入可用來突顯之格式化語言 (如果支援)。" dropdown: macros: "巨集" chose_macro: "選擇macro" @@ -176,12 +176,12 @@ zh-TW: page: "維基頁面" not_set: "(頁面尚未設置)" hint: | - 通過指定其標題或Slug, 包括另一個 Wiki 頁面的內容。您可以通過將另一個專案的 Wiki 頁與下面的示例類似的冒號進行分隔, 從而包括該頁面。 + 通過指定其標題或名稱(slug), 包括另一個 Wiki 頁面的內容。您可以通過將另一個專案的 Wiki 頁與下面的示例類似的冒號進行分隔, 從而包括該頁面。 work_package_button: button: "插入「新增工作項目按鈕」" type: "工作項目類型" button_style: "使用按鈕樣式" - button_style_hint: "可選: 檢查以使宏顯示為按鈕, 而不是連結。" + button_style_hint: "可選: 檢查以使巨集顯示為按鈕, 而不是連結。" without_type: "建立工作項目" with_type: "新增工作項目 (類型: %{typename})" embedded_table: @@ -242,7 +242,7 @@ zh-TW: description: "本地部署的 Enterprise edition 具有哪些優勢?" high_security: "安全功能" high_security_text: "單點登錄(SAML,OpenID Connect,CAS),LDAP 群組。\n" - installation: "安裝說明" + installation: "支援安裝" installation_text: "經驗豐富的軟件工程師將指導您在自己的基礎設施中完成整個安裝和設置過程。" premium_features: "企業版附加插件" premium_features_text: "敏捷看板、客製化主題與標誌、圖表、具備客製化動作的智慧工作流程、支援全文檢索工作項目文件及複選客製欄位。" @@ -333,7 +333,7 @@ zh-TW: quarters: "季" years: "年" description: > - 選擇自動縮放無法接通應顯示的初始縮放級別。 + 選擇初始縮放級別,當自動縮放無法顯示。 export: title: "甘特圖 PDF 選項" button_export: "匯出" @@ -417,7 +417,7 @@ zh-TW: label_display: "顯示" label_cancel_comment: "取消注釋" label_closed_work_packages: "已關閉" - label_collapse: "折疊" + label_collapse: "收合" label_collapsed: "已收合" label_collapse_all: "全部摺疊" label_comment: "留言" @@ -445,9 +445,9 @@ zh-TW: label_group_by: "分組依據" label_group_plural: "群組" label_hide_attributes: "簡略" - label_hide_column: "隱藏欄" + label_hide_column: "隱藏欄位" label_hide_project_menu: "折疊專案選單" - label_in: "在" + label_in: "於" label_in_less_than: "少於" label_in_more_than: "多於" label_incoming_emails: "接收到的電子郵件" @@ -548,8 +548,8 @@ zh-TW: label_starred_queries: "收藏" label_global_queries: "公開" label_custom_queries: "私人" - label_columns: "欄" - label_attachments: 附加檔 + label_columns: "欄位" + label_attachments: 附件 label_drop_files: "將檔案拖至此處當作附件" label_drop_or_click_files: "將檔案拖至此處,或點選上傳。" label_drop_folders_hint: 不能將資料夾作為附件上載。請選擇單個檔。 @@ -620,7 +620,7 @@ zh-TW: accountable: "負責人" created: "已建立" scheduled: "已排程" - commented: "已評論" + commented: "已留言" processed: "已處理" prioritized: "已優先" dateAlert: "日期提醒" @@ -810,7 +810,7 @@ zh-TW: duplicates: "重複" duplicated: "重複於" blocks: "攔阻" - blocked: "攔阻於" + blocked: "被阻擋" precedes: "後置項目" follows: "前置項目" includes: "包括" @@ -865,8 +865,8 @@ zh-TW: sort: sorted_asc: "已套用升冪排序, " sorted_dsc: "已套用降冪排序, " - sorted_no: "已套用不排序, " - sorting_disabled: "已禁用排序" + sorted_no: "不需排序, " + sorting_disabled: "已停用排序" activate_asc: "啟動以套用昇冪排序" activate_dsc: "啟動以套用降冪排序" activate_no: "啟動以移除排序" @@ -886,8 +886,8 @@ zh-TW: heading1: "標題 1" heading2: "標題 2" heading3: "標題 3" - unordered_list: "項目符號清單" - ordered_list: "編號清單" + unordered_list: "未排序清單" + ordered_list: "排序清單" quote: "引言" unquote: "取消引言" preformatted_text: "預先格式化文字" @@ -907,7 +907,7 @@ zh-TW: button_clear: "清除" comment_added: "成功發表意見。" comment_send_failed: "發生錯誤。無法留言。" - comment_updated: "注釋已成功更新。" + comment_updated: "留言已成功更新。" confirm_edit_cancel: "是否確定取消編輯中的工作項目" datepicker_modal: automatically_scheduled_parent: "自動安排。日期來源於關係。" @@ -924,12 +924,12 @@ zh-TW: description_options_show: "顯示選項" edit_attribute: "%{attribute} - 編輯" key_value: "%{key}: %{value}" - label_enable_multi_select: "啟用複選" - label_disable_multi_select: "停用複選" + label_enable_multi_select: "啟用多選" + label_disable_multi_select: "停用多選" label_filter_add: "新增條件" label_filter_by_text: "用文字篩選" label_options: "選項" - label_column_multiselect: "組合的下拉欄位: 使用方向鍵選擇,用 enter 鍵確認,用backspace鍵刪除" + label_column_multiselect: "複合下拉欄位: 使用方向鍵選擇,用 enter 鍵確認,用backspace鍵刪除" message_error_during_bulk_delete: 刪除工作項目時發生錯誤 message_successful_bulk_delete: 成功刪除工作項目 message_successful_show_in_fullscreen: "點擊此處以全螢幕檢視此工作項目" @@ -981,7 +981,7 @@ zh-TW: assignee: "執行者" author: "作者" createdAt: "建立於" - description: "說明" + description: "敘述" date: "日期" percentComplete: "完成度(%)" percentCompleteAlternative: "進度" @@ -1028,7 +1028,7 @@ zh-TW: date: "選擇日期" query: column_names: "欄" - group_by: "分組依據" + group_by: "依據此條件分組" group: "分組依據" group_by_disabled_by_hierarchy: "目前為層級模式顯示、無法以群組模式呈現。" hierarchy_disabled_by_group_by: "層次結構模式已禁用,因為結果依據 %{column} 分組。" @@ -1045,7 +1045,7 @@ zh-TW: rename_query_placeholder: "此檢視的名稱" star_text: "將此版面收藏起來,並新增至左側已儲存版面側邊欄。" public_text: > - 發布此檢視圖,允許其他使用者存取您的視圖。 具有「管理公用檢視圖」權限的使用者可以修改或刪除公用查詢。 這不會影響該檢視圖中工作項目的可見性,並且根據使用者的權限,使用者可能會看到不同的結果。 + 發布此版面,允許其他使用者存取您的版面。 具有「管理公開版面」權限的使用者可以修改或刪除公開查詢。 這不會影響該版面中工作項目的可見性,並且根據使用者的權限,使用者可能會看到不同的結果。 errors: unretrievable_query: "無法從 url 取得版面" not_found: "無此查詢" @@ -1120,7 +1120,7 @@ zh-TW: hide_hierarchy: "隱藏層次結構" hide_sums: "隱藏匯總" save: "儲存" - save_as: "保存為" + save_as: "另存為" export: "匯出" visibility_settings: "可見度設定" share_calendar: "訂閱日曆" diff --git a/config/locales/crowdin/zh-TW.seeders.yml b/config/locales/crowdin/zh-TW.seeders.yml index a14f3e6abf75..46767eb3a800 100644 --- a/config/locales/crowdin/zh-TW.seeders.yml +++ b/config/locales/crowdin/zh-TW.seeders.yml @@ -66,7 +66,7 @@ zh-TW: name: 專案管理員 global_roles: item_0: - name: 職員和專案管理員 + name: 成員和專案管理員 standard: priorities: item_0: @@ -265,7 +265,7 @@ zh-TW: item_0: 類別 1 ( 將於專案設定變更 ) queries: item_0: - name: 計畫方案 + name: 專案計畫 item_1: name: 產品待辦事項 item_2: @@ -314,7 +314,7 @@ zh-TW: name: 工作項目 item_6: options: - name: 計畫方案 + name: 專案計畫 work_packages: item_0: subject: 新的登入介面 diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index 7b8a8109ad52..8d63f817b43a 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -1693,7 +1693,7 @@ zh-TW: file_links_journal: > 從現在開始,與文件鏈接(存儲在外部存儲器中的文件) 相關的活動將出現在“活動”選項卡中。以下是與已經存在的鏈接相關的活動的表示: progress_calculation_adjusted_from_disabled_mode: >- - 自動計算進度設定為「Work-based」模式並隨著版本更新進行調整。 + 自動計算進度設定為「基於工時」模式並隨著版本更新進行調整。 progress_calculation_adjusted: >- 自動計算進度隨版本更新調整。 totals_removed_from_childless_work_packages: >- @@ -2357,7 +2357,7 @@ zh-TW: label_work_package_new: "新增工作項目" label_work_package_edit: "編輯工作項目 %{name}" label_work_package_plural: "工作項目" - label_work_packages_settings: "工作包設置" + label_work_packages_settings: "工作項目設置" label_work_package_status: "工作項目狀態" label_work_package_status_new: "新狀態" label_work_package_status_plural: "工作項目狀態" @@ -2965,7 +2965,7 @@ zh-TW: setting_consent_info: "條文" setting_consent_required: "是否需要使用者允許" setting_consent_decline_mail: "同意郵件列在通訊錄" - setting_cross_project_work_package_relations: "允許跨專案的工作項目關聯起來" + setting_cross_project_work_package_relations: "允許將跨專案之工作項目關聯起來" setting_first_week_of_year: "一年的第一週從哪一天開始" setting_date_format: "日期" setting_default_language: "預設語言" @@ -2995,7 +2995,7 @@ zh-TW: setting_work_package_done_ratio_field: "基於工時" setting_work_package_done_ratio_status: "基於狀態" setting_work_package_done_ratio_explanation_html: > - 在work-based模式中,"完成百分比"是根據已完成的工作量與總工作量來計算的。在 status-based 模式中,每個狀態都有一個與其關聯的完成百分比值。更改狀態將更改完成百分比。 + 在基於工時模式中,"完成百分比"是根據已完成的工作量與總工作量來計算的。在 基於狀態 模式中,每個狀態都有一個與其關聯的完成百分比值。更改狀態將更改完成百分比。 setting_work_package_properties: "工作項目屬性" setting_work_package_startdate_is_adddate: "使用目前日期作為新工作項目的開始日期" setting_work_packages_projects_export_limit: "工作項目/專案匯出數量限制" @@ -3090,7 +3090,7 @@ zh-TW: highlighting: mode_long: inline: "專案屬性" - none: "不強調" + none: "無高亮度顯示" status: "依工作項目狀態區分" type: "依工作項目類型區分" priority: "依工作項目優先順序區分" @@ -3379,7 +3379,7 @@ zh-TW: modal: work_based_help_text: "完成百分比由 \"工時\" 和 \"剩餘工時\" 自動得出。" status_based_help_text: "完成百分比由工作包狀態設定。" - migration_warning_text: "在「Work-based」進度計算模式下,完成百分比無法手動設置,並且與「Work」相關聯。目前手動輸入數值已保留,無法編輯。 請務必輸入「Work」才能進行。" + migration_warning_text: "在「基於工時」進度計算模式下,完成百分比無法手動設置,並且與「工時」相關聯。目前手動輸入數值已保留,無法編輯。 請務必輸入「工時」才能進行。" permissions: comment: "留言" comment_description: "可查看此工作項目與留言" diff --git a/modules/avatars/config/locales/crowdin/zh-TW.yml b/modules/avatars/config/locales/crowdin/zh-TW.yml index feffacb6df36..c25a04f214cb 100644 --- a/modules/avatars/config/locales/crowdin/zh-TW.yml +++ b/modules/avatars/config/locales/crowdin/zh-TW.yml @@ -3,7 +3,7 @@ zh-TW: plugin_openproject_avatars: name: "大頭貼" description: >- - 本插件允許 OpenProject 使用者上傳圖片作為大頭貼或使用 Gravatar 註冊圖片 + 本外掛允許 OpenProject 使用者上傳圖片作為大頭貼或使用 Gravatar 註冊圖片 label_avatar: "大頭貼" label_avatar_plural: "大頭貼" label_current_avatar: "目前大頭貼" diff --git a/modules/gitlab_integration/config/locales/crowdin/js-zh-TW.yml b/modules/gitlab_integration/config/locales/crowdin/js-zh-TW.yml index 198f4189e8af..3458eeacb0d3 100644 --- a/modules/gitlab_integration/config/locales/crowdin/js-zh-TW.yml +++ b/modules/gitlab_integration/config/locales/crowdin/js-zh-TW.yml @@ -39,7 +39,7 @@ zh-TW: branch_name: 分支名稱 commit_message: 提交訊息 cmd: 以空白提交建立分支 - title: Quick snippets for Git + title: Git 快速代碼段 copy_success: '✅ 已複製!' copy_error: '❌ 複製失敗!' tab_issue: diff --git a/modules/reporting/config/locales/crowdin/zh-TW.yml b/modules/reporting/config/locales/crowdin/zh-TW.yml index a65716eb3634..4e5296b95501 100644 --- a/modules/reporting/config/locales/crowdin/zh-TW.yml +++ b/modules/reporting/config/locales/crowdin/zh-TW.yml @@ -22,7 +22,7 @@ zh-TW: plugin_openproject_reporting: name: "OpenProject 報表" - description: "本插件允許透過OpenProject 時間及成本插件建立具篩選及群組的客製化成本報表" + description: "本外掛允許透過OpenProject 時間及成本外掛,建立具篩選及群組的客製化成本報表" button_save_as: "將報表另存為..。" comments: "留言" cost_reports_title: "時間與費用" diff --git a/modules/team_planner/config/locales/crowdin/js-ru.yml b/modules/team_planner/config/locales/crowdin/js-ru.yml index d3b0dc0ef208..1c9a6658e2cf 100644 --- a/modules/team_planner/config/locales/crowdin/js-ru.yml +++ b/modules/team_planner/config/locales/crowdin/js-ru.yml @@ -13,7 +13,7 @@ ru: two_weeks: '2-недели' one_week: '1-неделя' four_weeks: '4-недели' - eight_weeks: '8-недель' + eight_weeks: '8 недель' work_week: 'Рабочая неделя' today: 'Сегодня' drag_here_to_remove: 'Перетащите сюда, чтобы удалить ответственного, а также даты начала и окончания.' diff --git a/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml b/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml index c563ffae3ee6..cf8ff9e916ed 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml @@ -1,7 +1,7 @@ #English strings go here for Rails i18n zh-TW: plugin_openproject_two_factor_authentication: - name: "OpenProject 兩階段認證(Two-factor authentication)" + name: "OpenProject 兩階段驗證" description: >- 該 OpenProject 插件基於 TOTP 標準通過使用一次性密碼(如 Google Authenticator) 、通過簡訊或語音發送到用戶手機,對用戶進行兩階短驗證。 activerecord: diff --git a/modules/xls_export/config/locales/crowdin/zh-TW.yml b/modules/xls_export/config/locales/crowdin/zh-TW.yml index 676aa68b3658..804ded29cf17 100644 --- a/modules/xls_export/config/locales/crowdin/zh-TW.yml +++ b/modules/xls_export/config/locales/crowdin/zh-TW.yml @@ -1,6 +1,6 @@ zh-TW: plugin_openproject_xls_export: - name: "OpenProject XLS Export" + name: "匯出 OpenProject XLS" description: "將問題列表導出為 Excel 電子錶格 (.xls)" export_to_excel: "匯出到 XLS" print_with_description: "預覽列印(含描述)" From 07ec54db4be220037be9f3dc208ba94755b38414 Mon Sep 17 00:00:00 2001 From: ulferts Date: Wed, 14 Aug 2024 11:07:26 +0200 Subject: [PATCH 04/26] change the filtering on the visible time entries to be done in the join --- .../scopes/include_spent_time.rb | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/app/models/work_packages/scopes/include_spent_time.rb b/app/models/work_packages/scopes/include_spent_time.rb index e2b466941275..b3b6fbc1a9ec 100644 --- a/app/models/work_packages/scopes/include_spent_time.rb +++ b/app/models/work_packages/scopes/include_spent_time.rb @@ -31,12 +31,11 @@ module WorkPackages::Scopes::IncludeSpentTime class_methods do def include_spent_time(user, work_package = nil) - query = join_time_entries(user) - - scope = left_join_self_and_descendants(user, work_package) - .joins(query.join_sources) + scope = with(visible_time_entries_cte.name => allowed_to_view_time_entries(user)) + .left_join_self_and_descendants(user, work_package) + .joins(join_visible_time_entries.join_sources) .group(:id) - .select("SUM(time_entries.hours) AS hours") + .select("SUM(#{visible_time_entries_cte.name}.hours) AS hours") if work_package scope.where(id: work_package.id) @@ -47,18 +46,14 @@ def include_spent_time(user, work_package = nil) protected - def join_time_entries(user) - join_condition = time_entries_table[:work_package_id] - .eq(wp_descendants[:id]) - .and(allowed_to_view_time_entries(user)) - + def join_visible_time_entries wp_table - .outer_join(time_entries_table) - .on(join_condition) + .outer_join(visible_time_entries_cte) + .on(visible_time_entries_cte[:work_package_id].eq(wp_descendants[:id])) end def allowed_to_view_time_entries(user) - time_entries_table[:id].in(TimeEntry.not_ongoing.visible(user).select(:id).arel) + TimeEntry.not_ongoing.visible(user).select(:id, :work_package_id, :hours).arel end def wp_table @@ -71,8 +66,8 @@ def wp_descendants @wp_descendants ||= wp_table.alias("descendants") end - def time_entries_table - @time_entries_table ||= TimeEntry.arel_table + def visible_time_entries_cte + @visible_time_entries_cte ||= Arel::Table.new("visible_time_entries") end end end From 96c2e7df046d1e14a023581f2827aa510ec87c1f Mon Sep 17 00:00:00 2001 From: Jens Ulferts Date: Thu, 15 Aug 2024 09:05:16 +0200 Subject: [PATCH 05/26] switch order to avoid CTE being included unnecessarily in subselects Co-authored-by: Ivan Kuchin --- app/models/work_packages/scopes/include_spent_time.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/work_packages/scopes/include_spent_time.rb b/app/models/work_packages/scopes/include_spent_time.rb index b3b6fbc1a9ec..aed520aecd4a 100644 --- a/app/models/work_packages/scopes/include_spent_time.rb +++ b/app/models/work_packages/scopes/include_spent_time.rb @@ -31,8 +31,8 @@ module WorkPackages::Scopes::IncludeSpentTime class_methods do def include_spent_time(user, work_package = nil) - scope = with(visible_time_entries_cte.name => allowed_to_view_time_entries(user)) - .left_join_self_and_descendants(user, work_package) + scope = left_join_self_and_descendants(user, work_package) + .with(visible_time_entries_cte.name => allowed_to_view_time_entries(user)) .joins(join_visible_time_entries.join_sources) .group(:id) .select("SUM(#{visible_time_entries_cte.name}.hours) AS hours") From 3f36be818fe8cfaf021f48c187a401933bf7fac8 Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Fri, 16 Aug 2024 03:08:35 +0000 Subject: [PATCH 06/26] update locales from crowdin [ci skip] --- config/locales/crowdin/js-ro.yml | 52 +++--- config/locales/crowdin/js-zh-TW.yml | 36 ++-- config/locales/crowdin/no.yml | 72 +++---- config/locales/crowdin/ro.seeders.yml | 10 +- config/locales/crowdin/ro.yml | 176 +++++++++--------- config/locales/crowdin/ru.yml | 4 +- config/locales/crowdin/zh-TW.seeders.yml | 2 +- config/locales/crowdin/zh-TW.yml | 116 ++++++------ .../config/locales/crowdin/js-zh-TW.yml | 4 +- .../avatars/config/locales/crowdin/zh-TW.yml | 8 +- .../backlogs/config/locales/crowdin/ro.yml | 4 +- .../bim/config/locales/crowdin/ro.seeders.yml | 14 +- .../config/locales/crowdin/zh-TW.seeders.yml | 8 +- .../gantt/config/locales/crowdin/js-ro.yml | 2 +- .../config/locales/crowdin/js-ro.yml | 2 +- .../grids/config/locales/crowdin/js-ro.yml | 4 +- .../grids/config/locales/crowdin/js-zh-TW.yml | 10 +- modules/meeting/config/locales/crowdin/no.yml | 2 +- modules/meeting/config/locales/crowdin/ro.yml | 8 +- .../config/locales/crowdin/js-ro.yml | 2 +- .../config/locales/crowdin/zh-TW.yml | 2 +- .../storages/config/locales/crowdin/zh-TW.yml | 2 +- .../config/locales/crowdin/js-zh-TW.yml | 24 +-- .../config/locales/crowdin/zh-TW.yml | 22 +-- .../config/locales/crowdin/zh-TW.yml | 2 +- 25 files changed, 294 insertions(+), 294 deletions(-) diff --git a/config/locales/crowdin/js-ro.yml b/config/locales/crowdin/js-ro.yml index a89e1f820f36..89ed0a993963 100644 --- a/config/locales/crowdin/js-ro.yml +++ b/config/locales/crowdin/js-ro.yml @@ -26,7 +26,7 @@ ro: loading: "Încărcare…" updating: "Actualizare…" attachments: - delete: "Ștergere atașament" + delete: "Șterge atașament" delete_confirmation: | Sunteți sigur că doriți să ștergeți acest fișier? Această acțiune nu este reversibilă. draggable_hint: | @@ -71,13 +71,13 @@ ro: button_configure-form: "Configurați formularul" button_confirm: "Confirmă" button_continue: "Continuaţi" - button_copy: "Copiere" - button_copy_to_clipboard: "Copiere în clipboard" - button_copy_link_to_clipboard: "Copy link to clipboard" + button_copy: "Copiază" + button_copy_to_clipboard: "Copiză în clipboard" + button_copy_link_to_clipboard: "Copiază link-ul în clipboard" button_copy_to_other_project: "Copiază în alt proiect" button_custom-fields: "Câmpuri personalizate" - button_delete: "Ștergere" - button_delete_watcher: "Ştergere observator" + button_delete: "Șterge" + button_delete_watcher: "Şterge observator" button_details_view: "Vizualizare detaliată" button_duplicate: "Duplicare" button_edit: "Editare" @@ -377,7 +377,7 @@ ro: token_name_label: "Where will you be using this?" token_name_placeholder: 'Type a name, e.g. "Phone"' 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.' - copy_url_label: "Copy URL" + copy_url_label: "Copiază URL-ul" ical_generation_error_text: "An error occured while generating the calendar URL." success_message: 'The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription.' label_activate: "Activare" @@ -436,7 +436,7 @@ ro: label_expand_project_menu: "Deschideți meniul proiectului" label_export: "Exportare" label_export_preparing: "Exportul este în curs de pregătire și va fi descărcat în curând." - label_favorites: "Favorites" + label_favorites: "Favorite" label_filename: "Fișier" label_filesize: "Dimensiune" label_general: "General" @@ -488,7 +488,7 @@ ro: label_per_page: "Pe pagină:" label_please_wait: "Așteptați" label_project: "Proiect" - label_project_list: "Project lists" + label_project_list: "Listă proiecte" label_project_plural: "Proiecte" label_visibility_settings: "Setări de vizibilitate" label_quote_comment: "Citare comentariu" @@ -558,7 +558,7 @@ ro: label_formattable_attachment_hint: "Atașați și legați fișiere prin plasarea în acest câmp sau prin lipirea din clipboard." label_remove_file: "Ştergere %{fileName}" label_remove_watcher: "Eliminare observator %{name}" - label_remove_all_files: Ştergeţi toate fişierele + label_remove_all_files: Şterge toate fişierele label_add_description: "Adăugați o descriere pentru %{file}" label_upload_notification: "Se încarcă fișierele..." label_work_package_upload_notification: "Fişierele pentru pachetul de lucru #%{id}: %{subject} sunt în curs de încărcare" @@ -625,9 +625,9 @@ ro: processed: "Processed" prioritized: "Prioritized" dateAlert: "Alertă de dată" - shared: "Shared" + shared: "Partajat" date_alerts: - milestone_date: "Data etapa" + milestone_date: "Dată etapă" overdue: "Restanțe" overdue_since: "din %{difference_in_days}" property_today: "este astăzi" @@ -658,7 +658,7 @@ ro: empty_state: no_notification: "Se pare că v-ați pus la punct." no_notification_with_current_project_filter: "Se pare că v-ați pus la punct cu proiectul selectat." - no_notification_with_current_filter: "Se pare că v-ați pus la punct pentru filtrul %{filter}." + no_notification_with_current_filter: "Se pare că ești la zi cu filtrul %{filter}." no_selection: "Faceți clic pe o notificare pentru a vizualiza toate detaliile activității." new_notifications: message: "Există notificări noi." @@ -685,7 +685,7 @@ ro: description: "Primește o notificare de fiecare dată când cineva mă menționează oriunde" assignee: "Responsabil" responsible: "Responsabil" - shared: "Shared" + shared: "Partajat" watched: "Observator" work_package_commented: "Toate comentariile noi" work_package_created: "Pachete de lucru noi" @@ -729,7 +729,7 @@ ro: Vă rugăm să alegeți un proiect în care să creați pachetul de lucru pentru a vedea toate atributele. Puteți selecta numai proiectele care au tipul de mai sus activat. details_activity: "Activitate detalii proiect" context: "Contextul proiectului" - click_to_switch_to_project: "Project: %{projectname}" + click_to_switch_to_project: "Proiect: %{projectname}" confirm_template_load: "Schimbarea șablonului va reîncărca pagina și veți pierde toate datele introduse în acest formular. Continuați?" use_template: "Utilizează șablon" no_template_selected: "(Nimic)" @@ -960,7 +960,7 @@ ro: header_with_parent: "Nou %{type} (copilul %{parent_type} #%{id})" button: "Creare" copy: - title: "Copiere pachet de lucru" + title: "Copiză pachet de lucru" hierarchy: show: "Afișați modul ierarhic" hide: "Ascundeți modul ierarhic" @@ -1011,7 +1011,7 @@ ro: workAlternative: "Durata estimată" remainingTime: "Remaining work" default_queries: - manually_sorted: "New manually sorted query" + manually_sorted: "Interogare nouă sortată manual" latest_activity: "Activitate recentă" created_by_me: "Creat de mine" assigned_to_me: "Atribuit mie" @@ -1019,8 +1019,8 @@ ro: all_open: "Toate deschise" overdue: "Restanțe" summary: "Descriere" - shared_with_users: "Shared with users" - shared_with_me: "Shared with me" + shared_with_users: "Partajate cu utilizatorii" + shared_with_me: "Partajate cu mine" jump_marks: pagination: "Salt la paginarea tabelului" label_pagination: "Click aici pentru a sări peste tabelul cu pachete de lucru și a ajunge la paginare" @@ -1128,31 +1128,31 @@ ro: visibility_settings: "Setări de vizibilitate" share_calendar: "Subscribe to calendar" page_settings: "Redenumire" - delete: "Ștergere" + delete: "Șterge" filter: "Filtrare" unselected_title: "Pachet de lucru" search_query_label: "Căutați vizualizări salvate" modals: label_name: "Nume" - label_delete_page: "Ştergeți pagina curentă" + label_delete_page: "Şterge pagina curentă" button_apply: "Salvare" button_save: "Salvare" button_submit: "Trimitere" button_cancel: "Anulare" - button_delete: "Ștergere" + button_delete: "Șterge" form_submit: title: "Confirmați pentru a continua" text: "Sunteți sigur/ă că doriți să realizați această acțiune?" destroy_work_package: title: "Confirmați ștergerea %{label}" - single_text: "Sunteți sigur că doriți să ștergeți pachetul de lucru" - bulk_text: "Sunteți sigur că doriți să ștergeți următoarele %{label}?" + single_text: "Ești sigur că vrei să ștergi pachetul de lucru" + bulk_text: "Ești sigur că vrei să ștergi următoarele %{label}?" has_children: "Pachetul de lucru conține %{childUnits}:" confirm_deletion_children: "Recunosc că TOȚI descendenții pachetelor de lucru enumerate vor fi eliminați în mod recursiv." deletes_children: "De asemenea, toate pachetele de lucru minore și descendenții acestora vor fi șterse în mod recursiv." destroy_time_entry: title: "Confirmarea ștergerii înregistrării timpului" - text: "Sunteți sigur că doriți să ștergeți următoarea înregistrare a timpului?" + text: "Ești sigur că vrei să ștergi următoarea înregistrare a timpului?" notice_no_results_to_display: "Fara rezultate vizibile de afisat." notice_successful_create: "Creare reuşită." notice_successful_delete: "Ştergere reuşită." @@ -1208,7 +1208,7 @@ ro: close_search: "Inchide cautarea" current_project_and_all_descendants: "In acest proiect + subproiecte" current_project: "In acest proiect" - recently_viewed: "Recently viewed" + recently_viewed: "Vizualizate recent" search: "Căutare" title: all_projects: "toate proiectele" diff --git a/config/locales/crowdin/js-zh-TW.yml b/config/locales/crowdin/js-zh-TW.yml index 00e92408daa1..44537da4adbd 100644 --- a/config/locales/crowdin/js-zh-TW.yml +++ b/config/locales/crowdin/js-zh-TW.yml @@ -372,7 +372,7 @@ zh-TW: title: "訂閱日曆" inital_setup_error_message: "更新資料時發生錯誤" description: "您可以使用 URL (iCalendar) 在外部客戶端中訂閱此日曆,並從外部客戶端查看最新工作包信息。" - warning: "請不要與其他用戶共享此 URL 。擁有這個鏈接的任何人都可以在沒有帳戶或密碼的情況下查看工作包的詳細信息。" + warning: "請不要與其他用戶共用此 URL 。擁有這個鏈接的任何人都可以在沒有帳戶或密碼的情況下查看工作包的詳細信息。" token_name_label: "您將在哪裡使用它?" token_name_placeholder: '輸入名稱,例如“Phone”' token_name_description_text: '如果您從多個設備訂閱此日曆,此名稱將有助於在訪問權杖列表中區分它們。' @@ -446,7 +446,7 @@ zh-TW: label_group_plural: "群組" label_hide_attributes: "簡略" label_hide_column: "隱藏欄位" - label_hide_project_menu: "折疊專案選單" + label_hide_project_menu: "收合專案選單" label_in: "於" label_in_less_than: "少於" label_in_more_than: "多於" @@ -489,7 +489,7 @@ zh-TW: label_project: "專案" label_project_list: "列出專案" label_project_plural: "專案" - label_visibility_settings: "可見度設定" + label_visibility_settings: "公開設定" label_quote_comment: "引述這個留言" label_recent: "最近" label_reset: "重置" @@ -499,7 +499,7 @@ zh-TW: label_remove_row: "移除列" label_report: "報表" label_repository_plural: "版本庫" - label_save_as: "保存為" + label_save_as: "另存為" label_search_columns: "選取欄位" label_select_project: "選擇專案" label_select_watcher: "選擇監看者" @@ -605,11 +605,11 @@ zh-TW: gantt_menu: "使用甘特圖模塊輕鬆創建項目時間表和時間線。" timeline: "您可以在此編輯您的項目計劃、創建新的工作包(例如任務、里程碑、階段等)以及添加依賴項。所有團隊成員都可以隨時查看和更新最新計劃。" team_planner: - overview: "工作組規劃器使您可以直觀地為團隊成員分配任務,並全面瞭解哪些成員正在處理哪些工作。" - calendar: "單周或雙周規劃面板可以顯示分配給您的團隊成員的所有工作包。" - add_assignee: "首先,請將受理人添加到工作組規劃器。" - add_existing: "搜索現有工作包並將其拖動到工作組規劃器,以立即將其分配給團隊成員並定義開始日期和結束日期。" - card: "水平拖動工作包以前移或後移其時間,拖動邊緣以更改開始日期和結束日期,甚至可以將其垂直拖動到不同的行以分配給其他成員。" + overview: "小組工作企劃使您可以直觀地為小組成員分配任務,並全面瞭解哪些成員正在處理哪些工作。" + calendar: "單周或雙周規劃面版,可以顯示分配給您的小組成員的所有工作項目。" + add_assignee: "首先,請將執行者新增到小組工作企劃。" + add_existing: "搜索現有工作項目並將其拖動到小組工作企劃中,立即將其分配給小組成員並規定開始日期和結束日期。" + card: "水平拖動工作項目前後移其時間,拖曳可更改開始日期和結束日期,甚至可以將其垂直拖動到不同的行以分配給其他成員。" notifications: title: "通知" no_unread: "無未讀通知" @@ -624,7 +624,7 @@ zh-TW: processed: "已處理" prioritized: "已優先" dateAlert: "日期提醒" - shared: "共享" + shared: "共用" date_alerts: milestone_date: "里程碑日期" overdue: "逾期" @@ -682,7 +682,7 @@ zh-TW: description: "每當有人提及我時都收到通知" assignee: "執行者" responsible: "負責人" - shared: "共享" + shared: "共用" watched: "監看者\n" work_package_commented: "有新留言" work_package_created: "新增工作項目" @@ -694,7 +694,7 @@ zh-TW: title: "參與中" description: "你參與的工作項目中所有活動的通知(執行者、負責人或監看者)。" delayed: - title: "非參與中" + title: "未參與之工作項目" description: "額外通知" date_alerts: title: "日期提醒" @@ -894,7 +894,7 @@ zh-TW: wiki_link: "連結到一個 Wiki 頁面" image: "圖片" sharing: - share: "共享" + share: "共用" selected_count: "已選取 %{count} 個" selection: mixed: "混合" @@ -1055,10 +1055,10 @@ zh-TW: is_parent: "此工作包的日期會自動從其子項推導出。可啟用“手動計劃”來設置日期。" is_switched_from_manual_to_automatic: "由於與其他工作包的關係,在從手動計劃切換為自動計劃後,此工作包的日期可能需要重新計算。" sharing: - title: "共享工作項目" - show_all_users: "顯示與之共享工作包的所有用戶" + title: "共用工作項目" + show_all_users: "顯示與之共用工作項目的所有用戶" upsale: - description: "與不是專案成員的使用者共享工作項目。" + description: "與不是專案成員的使用者共用工作項目。" table: configure_button: "設定工作項目" summary: "由工作項目和工作項目屬性列組成的表格。" @@ -1074,7 +1074,7 @@ zh-TW: display_settings: "顯示設定" default_mode: "展開清單" hierarchy_mode: "階層" - hierarchy_hint: "所有已篩選的資料與其來源將一起優化。階層可以展開和折疊。" + hierarchy_hint: "所有已篩選的資料與其來源將一起優化。階層可以展開和收合。" display_sums_hint: "在表格結果下方的一行中顯示總和。" show_timeline_hint: "在表格的右側顯示互動式甘特圖。可以通過在表和甘特圖之間拖動分隔線來更改其寬度。" highlighting: "強調" @@ -1122,7 +1122,7 @@ zh-TW: save: "儲存" save_as: "另存為" export: "匯出" - visibility_settings: "可見度設定" + visibility_settings: "公開設定" share_calendar: "訂閱日曆" page_settings: "重新命名版面" delete: "删除" diff --git a/config/locales/crowdin/no.yml b/config/locales/crowdin/no.yml index d9e411e0e397..1bdf6239f277 100644 --- a/config/locales/crowdin/no.yml +++ b/config/locales/crowdin/no.yml @@ -400,8 +400,8 @@ new_access_token_dialog_text: "Dette tokenet tillater tredjepartsprogrammer å kommunisere med forekomsten. For å differensiere den nye API-token, vennligst gi den et navn." new_access_token_dialog_attention_text: "Behandle API-token som passord. Alle med denne lenken vil ha tilgang til informasjon fra denne forekomsten, del den bare med pålitelige brukere." failed_to_reset_token: "Tilgangstoken kunne ikke tilbakestilles: %{error}" - failed_to_create_token: "Failed to create access token: %{error}" - failed_to_revoke_token: "Failed to revoke access token: %{error}" + failed_to_create_token: "Tilgangsnøkkelen kunne ikke opprettes: %{error}" + failed_to_revoke_token: "Kunne ikke oppheve tilgangstoken: %{error}" notice_reset_token: "En ny %{type} token har blitt generert. Din tilgangstoken er:" token_value_warning: "Merk: Du vil ikke kunne se denne token på nytt, sørg for å kopiere den nå." no_results_title_text: Det er ingen tilgangsnøkler tilgjengelig. @@ -527,9 +527,9 @@ no_common_statuses_exists: "Det er ingen status tilgjengelig for alle valgte arbeidspakker. Status kan ikke endres." unsupported_for_multiple_projects: "Bulk flytt/kopi er ikke støttet for arbeidspakker fra flere prosjekter" current_type_not_available_in_target_project: > - The current type of the work package is not enabled in the target project. Please enable the type in the target project if you'd like it to remain unchanged. Otherwise, select an available type in the target project from the list. + Den gjeldende typen arbeidspakke er ikke aktivert i målprosjektet. Vennligst aktiver typen i målprosjektet hvis du ønsker det uforandret. Ellers velger du en tilgjengelig type i målprosjektet fra listen. bulk_current_type_not_available_in_target_project: > - The current types of the work packages aren't enabled in the target project. Please enable the types in the target project if you'd like them to remain unchanged. Otherwise, select an available type in the target project from the list. + De gjeldende typene av arbeidspakker er ikke aktivert i målprosjektet. Aktiver typen i målprosjektet hvis du ønsker at de forblir uendret. Ellers velger du en tilgjengelig type i målprosjektet fra listen. sharing: missing_workflow_warning: title: "Arbeidsflyt mangler for deling av arbeidspakker" @@ -708,7 +708,7 @@ is_closed: "Arbeidspakke lukket" is_readonly: "Arbeidspakken er skrivebeskyttet" excluded_from_totals: "Unnta fra beregning av totaler i hierarki" - default_done_ratio: "% Complete" + default_done_ratio: "% Ferdig " time_entry: activity: "Aktivitet" hours: "Timer" @@ -742,7 +742,7 @@ auto_hide_popups: "Auto-skjul suksessvarsler" warn_on_leaving_unsaved: "Varsle meg når jeg forlater en arbeidspakke med ulagrede endringer" theme: "Modus" - mode_guideline: "Some modes will overwrite custom theme colours for accessibility and legibility. For the full custom theme, please select Light mode." + mode_guideline: "Noen moduser vil overskrive tilpassede temafarger for tilgjengelighet og leselighet. For å få fullstendig tilpasset tema, velg lys modus." version: effective_date: "Sluttdato" sharing: "Deling" @@ -934,7 +934,7 @@ project_custom_field_project_mapping: attributes: project_ids: - blank: "Please select a project." + blank: "Velg et prosjekt." query: attributes: project: @@ -1000,7 +1000,7 @@ status: attributes: default_done_ratio: - inclusion: "must be between 0 and 100." + inclusion: "må være mellom 0 og 100." readonly_default_exlusive: "kan ikke aktiveres for statuser som er merket som standard." time_entry: attributes: @@ -1647,11 +1647,11 @@ image: omitted: "Bilde ikke eksportert." macro: - error: "Macro error, %{message}" - attribute_not_found: "attribute not found: %{attribute}" - model_not_found: "invalid attribute model: %{model}" - resource_not_found: "resource not found: %{resource}" - rich_text_unsupported: "Rich text embedding currently not supported in export" + error: "Makrofeil, %{message}" + attribute_not_found: "attributtet ble ikke funnet: %{attribute}" + model_not_found: "ugyldig attributtmodell: %{model}" + resource_not_found: "ressurs ikke funnet: %{resource}" + rich_text_unsupported: "Rik tekstinnebygging støttes ikke for eksport" units: hours: t days: d @@ -1797,7 +1797,7 @@ shared: "Delt" watched: "Overvåker" menu: - by_project: "Ulest av prosjektet" + by_project: "Ulest etter prosjekt" by_reason: "Grunn" inbox: "Innboks" send_notifications: "Send varsler for denne handlingen" @@ -1819,7 +1819,7 @@ label_add_another_file: "Legg til en annen fil" label_add_columns: "Legg til valgte kolonner" label_add_note: "Legg til et notat" - label_add_projects: "Add projects" + label_add_projects: "Legg til prosjekter" label_add_related_work_packages: "Legg til relaterte arbeidspakker" label_add_subtask: "Legg til underoppgave" label_added: "lagt til" @@ -1860,7 +1860,7 @@ label_ldap_auth_source_plural: "LDAP-forbindelser" label_attribute_expand_text: "Den fullstendige teksten for '%{attribute}'" label_authentication: "Autentisering" - label_authentication_settings: "Authentication settings" + label_authentication_settings: "Autentiseringsinnstillinger" label_available_global_roles: "Tilgjengelige globale roller" label_available_project_attributes: "Tilgjengelige prosjektegenskaper" label_available_project_forums: "Tilgjengelige forum" @@ -2058,10 +2058,10 @@ label_introduction_video: "Introduksjonsvideo" label_invite_user: "Inviter bruker" label_share: "Del" - label_share_project_list: "Share project list" + label_share_project_list: "Del prosjektliste" label_share_work_package: "Del arbeidspakke" label_show_hide: "Vis/Skjul" - label_show_hide_n_items: "Show/hide %{count} items" + label_show_hide_n_items: "Vis/skjul %{count} elementer" label_show_all_registered_users: "Vis alle registrerte brukere" label_journal: "Journal" label_journal_diff: "Sammenligning av beskrivelse" @@ -2219,7 +2219,7 @@ label_project_latest: "Siste prosjekter" label_project_default_type: "Tillatt tom type" label_project_hierarchy: "Prosjekthierarki" - label_project_mappings: "Enabled in projects" + label_project_mappings: "Aktivert i prosjekter" label_project_new: "Nytt prosjekt" label_project_plural: "Prosjekter" label_project_list_plural: "Prosjektlister" @@ -2280,7 +2280,7 @@ label_role_search: "Tilordne rolle til nye medlemmer" label_scm: "SCM" label_search: "Søk" - label_search_by_name: "Search by name" + label_search_by_name: "Søk på navn" label_send_information: "Send nye opplysninger til brukeren" label_send_test_email: "Send en testmail" label_session: "Økt" @@ -2393,7 +2393,7 @@ label_work_package_new: "Ny arbeidspakke" label_work_package_edit: "Rediger arbeidspakke %{name}" label_work_package_plural: "Arbeidspakker" - label_work_packages_settings: "Work packages settings" + label_work_packages_settings: "Innstillinger for arbeidspakker" label_work_package_status: "Status for arbeidspakke" label_work_package_status_new: "Ny status" label_work_package_status_plural: "Statuser for arbeidspakke" @@ -2401,7 +2401,7 @@ label_work_package_tracking: "Sporing av arbeidspakke" label_work_package_view_all: "Vis alle arbeidspakker" label_workflow: "Arbeidsflyt" - label_workflow_copy: "Copy workflow" + label_workflow_copy: "Kopier arbeidsflyt" label_workflow_plural: "Arbeidsflyt" label_workflow_summary: "Sammendrag" label_working_days_and_hours: "Arbeidsdager og timer" @@ -2653,7 +2653,7 @@ notice_principals_found_multiple: "Det finnes %{number} resultater. \n bruk tab for å fokusere det første resultatet." notice_principals_found_single: "Det er ett resultat. \n Bruk tab for å fokusere det." notice_project_not_deleted: "Prosjektet ble ikke slettet." - notice_project_not_found: "Project not found." + notice_project_not_found: "Prosjektet ble ikke funnet." notice_successful_connection: "Vellykket tilkobling." notice_successful_create: "Opprettelsen var vellykket." notice_successful_delete: "Slettingen var vellykket." @@ -2736,7 +2736,7 @@ permission_edit_own_messages: "Rediger egne meldinger" permission_edit_own_time_entries: "Rediger egne tidsrapporter" permission_edit_project: "Rediger prosjekt" - permission_edit_project_attributes: "Edit project attributes" + permission_edit_project_attributes: "Rediger prosjektattributter" permission_edit_reportings: "Rediger rapporteringer" permission_edit_time_entries: "Rediger tidslogger for andre brukere" permission_edit_timelines: "Rediger tidslinjer" @@ -2787,13 +2787,13 @@ permission_work_package_assigned: "Bli utførende/ansvarlig" permission_work_package_assigned_explanation: "Arbeidspakker kan tildeles brukere og grupper med denne rollen i det respektive prosjektet" permission_view_project_activity: "Vis prosjektaktivitet" - permission_view_project_attributes: "View project attributes" + permission_view_project_attributes: "Vis prosjektattributter" permission_save_bcf_queries: "Lagre BCF-spørringer" permission_manage_public_bcf_queries: "Administrere offentlige BCF-spørringer" permission_edit_attribute_help_texts: "Rediger hjelpetekster for egenskap" permission_manage_public_project_queries: "Administrere offentlige prosjektlister" - permission_view_project_query: "View project query" - permission_edit_project_query: "Edit project query" + permission_view_project_query: "Vis prosjektspørring" + permission_edit_project_query: "Rediger prosjektspørring" placeholders: default: "-" project: @@ -3014,10 +3014,10 @@ setting_default_projects_public: "Nye prosjekter er offentlige som standard" setting_diff_max_lines_displayed: "Maks antall linjeforskjeller som vises" setting_display_subprojects_work_packages: "Vis arbeidspakker for underprosjekter som standard for hovedprosjekter" - setting_duration_format: "Duration format" - setting_duration_format_hours_only: "Hours only" - setting_duration_format_days_and_hours: "Days and hours" - setting_duration_format_instructions: "This defines how Work, Remaining work, and Time spent durations are displayed." + setting_duration_format: "Varighetsformat" + setting_duration_format_hours_only: "Kun timer" + setting_duration_format_days_and_hours: "Dager og timer" + setting_duration_format_instructions: "Dette definerer hvordan arbeid, gjenstående arbeid og varighet på brukt tid vises." setting_emails_footer: "Bunntekst for e-post" setting_emails_header: "Topptekst for e-post" setting_email_login: "Bruk e-post som innlogging" @@ -3030,7 +3030,7 @@ setting_host_name: "Vertsnavn" setting_hours_per_day: "Timer per dag" setting_hours_per_day_explanation: >- - This defines what is considered a "day" when displaying duration in days and hours (for example, if a day is 8 hours, 32 hours would be 4 days). + Dette vil definere hva som anses som en "dag" når varigheten vises i dager og timer (for eksempel hvis dagen er 8 timer, vil 32 timer være 4 dager). setting_invitation_expiration_days: "Aktiverings e-post utløper etter" setting_work_package_done_ratio: "Beregning av fremdrift" setting_work_package_done_ratio_field: "Arbeidsbasert" @@ -3443,7 +3443,7 @@ group: "Gruppe" role: "Rolle" type: "Type" - denied: "You don't have permissions to share %{entities}." + denied: "Du har ikke tillatelser til å dele %{entities}." label_search: "Søk etter brukere for å invitere" label_search_placeholder: "Søk med bruker eller e-postadresse" label_toggle_all: "Veksle melom delinger" @@ -3451,12 +3451,12 @@ share: "Del" text_empty_search_description: "Det er ingen brukere med gjeldende filterkriterier." text_empty_search_header: "Vi kunne ikke finne noen matchende resultater." - text_empty_state_description: "The %{entity} has not been shared with anyone yet." + text_empty_state_description: "%{entity} har ikke blitt delt med noen enda." text_empty_state_header: "Ikke delt" - text_user_limit_reached: "Adding additional users will exceed the current limit. Please contact an administrator to increase the user limit to ensure external users are able to access this %{entity}." + text_user_limit_reached: "Å legge til ekstra brukere vil overskride gjeldende grense. Kontakt en administrator for å øke brukergrensen for å sikre at eksterne brukere har tilgang til %{entity}." text_user_limit_reached_admins: 'Å legge til ekstra brukere overskrider gjeldende grense. oppgradere din plan for å kunne legge til flere brukere.' warning_user_limit_reached: > - Adding additional users will exceed the current limit. Please contact an administrator to increase the user limit to ensure external users are able to access this %{entity}. + Å legge til ekstra brukere vil overskride gjeldende grense. Kontakt en administrator for å øke brukergrensen for å sikre at eksterne brukere har tilgang til %{entity}. warning_user_limit_reached_admin: > Adding additional users will exceed the current limit. Please upgrade your plan to be able to ensure external users are able to access this %{entity}. warning_no_selected_user: "Please select users to share this %{entity} with" diff --git a/config/locales/crowdin/ro.seeders.yml b/config/locales/crowdin/ro.seeders.yml index 6c873e25eb3d..14c0e6f3ea9e 100644 --- a/config/locales/crowdin/ro.seeders.yml +++ b/config/locales/crowdin/ro.seeders.yml @@ -95,7 +95,7 @@ ro: item_0: name: Project plan item_1: - name: Milestones + name: Etape item_2: name: Tasks item_3: @@ -107,11 +107,11 @@ ro: name: Tablă de bază lists: item_0: - name: Wish list + name: Listă dorinţe item_1: - name: Short list + name: Listă scurtă item_2: - name: Priority list for today + name: Listă priorități pentru astăzi item_3: name: Niciodată parent_child: @@ -145,7 +145,7 @@ ro: name: Pachete de lucru item_6: options: - name: Milestones + name: Etape work_packages: item_0: subject: Start of project diff --git a/config/locales/crowdin/ro.yml b/config/locales/crowdin/ro.yml index f16c74bd7c23..0af7db23e9a3 100644 --- a/config/locales/crowdin/ro.yml +++ b/config/locales/crowdin/ro.yml @@ -213,7 +213,7 @@ ro: instructions: is_required: "Mark the custom field as required. This will make it mandatory to fill in the field when creating new or updating existing resources." is_for_all: "Mark the custom field as available in all existing and new projects." - searchable: "Include the field values when using the global search functionality." + searchable: "Include valorile câmpului atunci când utilizezi funcționalitatea globală de căutare." editable: "Allow the field to be editable by users themselves." visible: "Make field visible for all users (non-admins) in the project overview and displayed in the project details widget on the Project Overview." is_filter: > @@ -224,7 +224,7 @@ ro: concatenation: single: "sau" global_search: - placeholder: "Search in %{app_title}" + placeholder: "Caută în %{app_title}" overwritten_tabs: wiki_pages: "Wiki" messages: "Forum" @@ -249,7 +249,7 @@ ro: work_package_attachments: "Pachete de lucru: anexe" work_package_categories: "Pachete de lucru: categorii" work_package_file_links: "Pachete de lucru: legături de fișiere" - work_package_shares: "Work packages: shares" + work_package_shares: "Pachete de lucru: partajări" delete: scheduled: "Ștergerea a fost programată și se efectuează în fundal. Veți fi notificat cu privire la rezultat." schedule_failed: "Proiectul nu poate fi șters: %{errors}" @@ -263,16 +263,16 @@ ro: no_results_title_text: În acest moment nu există proiecte no_results_content_text: Creare proiect nou lists: - active: "Active projects" + active: "Proiecte active" my: "Proiectele mele" - favored: "Favorite projects" - archived: "Archived projects" - shared: "Shared project lists" - my_lists: "My project lists" + favored: "Proiecte favorite" + archived: "Proiecte arhivate" + shared: "Listă proiecte partajate" + my_lists: "Listele mele de proiecte" new: - placeholder: "New project list" + placeholder: "Listă nouă proiecte" delete_modal: - title: "Delete project list" + title: "Șterge listă proiecte" text: "This action will not delete any project the list contains. Are you sure you want to delete this project list?" settings: change_identifier: Schimbă identificatorul @@ -291,7 +291,7 @@ ro: title: "Atributele proiectului" description: 'These project attributes will be displayed in your project overview page under their respective sections. You can enable or disable individual attributes. Project attributes and sections are defined in the administration settings by the administrator of the instance. ' filter: - label: "Search project attribute" + label: "Caută atribut proiect" actions: label_enable_single: "Active in this project, click to disable" label_disable_single: "Inactive in this project, click to enable" @@ -332,15 +332,15 @@ ro: invite_by_mail: "Trimiteți invitația la %{mail}" send_invite_to: "Send invite to" columns: - shared: "Shared" + shared: "Partajate" filters: - all_shares: "All shares" + all_shares: "Toate partajările" menu: all: "Toate" - invited: "Invited" + invited: "Invitat" locked: "Închis" - project_roles: "Project roles" - wp_shares: "Work package shares" + project_roles: "Roluri proiect" + wp_shares: "Partajări pachete de lucru" groups: "Grupuri" delete_member_dialog: title: "Remove member" @@ -669,7 +669,7 @@ ro: project: active_value: true: "nearhivat" - false: "arhivată" + false: "arhivat" identifier: "Identificator" latest_activity_at: "Ultima activitate la" parent: "Subproiect în" @@ -680,14 +680,14 @@ ro: queries: "Interogări" status_code: "Stare proiect" description: "Descriere" - status_explanation: "Project status description" + status_explanation: "Descriere stadiu proiect" status_codes: not_started: "Neînceput" on_track: "În lucru" at_risk: "În pericol" - off_track: "În afara pistei" + off_track: "Deraiat" finished: "Finalizat" - discontinued: "Întrerupere" + discontinued: "Anulat" templated: "Proiect șablon" templated_value: true: "marcat ca șablon" @@ -696,7 +696,7 @@ ro: versions: "Versiuni" work_packages: "Pachete de lucru" project_custom_field: - custom_field_section: Section + custom_field_section: Sectiune query: column_names: "Coloane" relations_to_type_column: "Relații cu %{type}" @@ -716,7 +716,7 @@ ro: is_closed: "Pachet de lucru închis" is_readonly: "Pachet de lucru numai pentru citire" excluded_from_totals: "Exclude from calculation of totals in hierarchy" - default_done_ratio: "% Complete" + default_done_ratio: "% Finalizat" time_entry: activity: "Activitate" hours: "Ore" @@ -782,9 +782,9 @@ ro: priority: "Prioritate" progress: "% Complete" readonly: "Doar citire" - remaining_hours: "Remaining work" - remaining_time: "Remaining work" - shared_with_users: "Shared with" + remaining_hours: "Muncă rămasă" + remaining_time: "Muncă rămasă" + shared_with_users: "Partajate cu" schedule_manually: "Programarea manuală" spent_hours: "Timp consumat" spent_time: "Timp consumat" @@ -942,7 +942,7 @@ ro: project_custom_field_project_mapping: attributes: project_ids: - blank: "Please select a project." + blank: "Selectează un proiect." query: attributes: project: @@ -1008,7 +1008,7 @@ ro: status: attributes: default_done_ratio: - inclusion: "must be between 0 and 100." + inclusion: "trebuie să fie între 0 și 100." readonly_default_exlusive: "nu poate fi activată pentru statusurile care sunt marcate ca fiind implicite." time_entry: attributes: @@ -1041,7 +1041,7 @@ ro: assigned_to: format: "%{message}" due_date: - not_start_date: "nu este în data de început, deși acest lucru este necesar pentru repere de etapă." + not_start_date: "nu este în data de început, deși acest lucru este necesar pentru etape." cannot_be_null: "nu poate fi setat la null, deoarece data de începere și durata sunt cunoscute." duration: larger_than_dates: "este mai mare decât intervalul dintre data de început și data de sfârșit." @@ -1049,7 +1049,7 @@ ro: not_available_for_milestones: "nu este disponibil pentru pachetele de lucru tipizate pe etape." cannot_be_null: "nu poate fi setat la null, deoarece data de început și data de sfârșit sunt cunoscute." parent: - cannot_be_milestone: "nu poate fi un reper de etapă." + cannot_be_milestone: "nu poate fi o etapă." cannot_be_self_assigned: "nu poate fi atribuit singur." cannot_be_in_another_project: "nu poate fi într-un alt proiect." not_a_valid_parent: "este invalid." @@ -1345,7 +1345,7 @@ ro: button_edit: "Editare" button_edit_associated_wikipage: "Editare pagină wiki asociată: %{page_title}" button_expand_all: "Extindere totală" - button_favorite: "Add to favorites" + button_favorite: "Adaugă la favorite" button_filter: "Filtrare" button_generate: "Generare" button_list: "Listă" @@ -1373,7 +1373,7 @@ ro: button_unarchive: "Dezarhivare" button_uncheck_all: "Deselecteaza tot" button_unlock: "Deblocare" - button_unfavorite: "Remove from favorites" + button_unfavorite: "Elimină din favorite" button_unwatch: "Stop monitorizare" button_update: "Actualizare" button_upgrade: "Actualizare" @@ -1384,16 +1384,16 @@ ro: button_add_menu_entry: "Adăugare meniu" button_configure_menu_entry: "Configurare meniu" button_delete_menu_entry: "Ștergere meniu" - button_view_shared_work_packages: "View shared work packages" - button_manage_roles: "Manage roles" - button_remove_member: "Remove member" - button_remove_member_and_shares: "Remove member and shares" + button_view_shared_work_packages: "Vezi pachetele de lucru partajate" + button_manage_roles: "Gestionează rolurile" + button_remove_member: "Elimină membru" + button_remove_member_and_shares: "Elimină membrul și partajările" button_revoke_work_package_shares: "Revoke work package shares" - button_revoke_access: "Revoke access" - button_revoke_all: "Revoke all" - button_revoke_only: "Revoke only %{shared_role_name}" - button_publish: "Make public" - button_unpublish: "Make private" + button_revoke_access: "Revocă acces" + button_revoke_all: "Revocă tot" + button_revoke_only: "Revocare doar %{shared_role_name}" + button_publish: "Fă public" + button_unpublish: "Fă privat" consent: checkbox_label: Am luat la cunoștință și consimt la cele de mai sus. failure_message: Consimţământul a eșuat, nu putem continua. @@ -1520,9 +1520,9 @@ ro: few: "%{count} minute" other: "%{count} minute" x_minutes_abbreviated: - one: "1 min" + one: "1 minut" few: "%{count} mins" - other: "%{count} mins" + other: "%{count} minute" x_hours: one: "1 oră" few: "%{count} ore" @@ -1530,11 +1530,11 @@ ro: x_hours_abbreviated: one: "1 hr" few: "%{count} hrs" - other: "%{count} hrs" + other: "%{count} ore" x_weeks: one: "1 week" few: "%{count} weeks" - other: "%{count} weeks" + other: "%{count} săptămâni" x_months: one: "o lună" few: "%{count} luni" @@ -1542,7 +1542,7 @@ ro: x_years: one: "1 an" few: "%{count} years" - other: "%{count} years" + other: "%{count} ani" x_seconds: one: "o secundă" few: "%{count} secunde" @@ -1550,7 +1550,7 @@ ro: x_seconds_abbreviated: one: "1 s" few: "%{count} s" - other: "%{count} s" + other: "%{count} secunde" units: hour: one: "oră" @@ -1602,8 +1602,8 @@ ro: error_can_not_archive_project: "Acest proiect nu poate fi arhivat: %{errors}" error_can_not_delete_entry: "Nu se poate șterge intrarea" error_can_not_delete_custom_field: "Câmpul personalizat nu poate fi șters" - error_can_not_delete_in_use_archived_undisclosed: "There are also work packages in archived projects. You need to ask an administrator to perform the deletion to see which projects are affected." - error_can_not_delete_in_use_archived_work_packages: "There are also work packages in archived projects. You need to reactivate the following projects first, before you can change the attribute of the respective work packages: %{archived_projects_urls}" + error_can_not_delete_in_use_archived_undisclosed: "Există, de asemenea, pachete de lucru în proiecte arhivate. Trebuie să cereți unui administrator să efectueze ștergerea pentru a vedea ce proiecte sunt afectate." + error_can_not_delete_in_use_archived_work_packages: "Există, de asemenea, pachete de lucru în proiecte arhivate. Trebuie să reactivați mai întâi următoarele proiecte, înainte de a putea schimba tipul pachetelor de lucru respective: %{archived_projects_urls}" error_can_not_delete_type: explanation: 'Acest tip conține pachete de lucru și nu poate fi șters. Puteți vedea toate pachetele de lucru afectate în această vizualizare.' error_can_not_delete_standard_type: "Tipurile standard nu pot fi șterse." @@ -1742,7 +1742,7 @@ ro: default_attribute_written: "Read-only attributes written" progress_mode_changed_to_status_based: "Progress calculation updated" status_changed: "Status '%{status_name}'" - system_update: "OpenProject system update:" + system_update: "Actualizare sistem OpenProiect:" cause_descriptions: work_package_predecessor_changed_times: by changes to predecessor %{link} work_package_parent_changed_times: by changes to parent %{link} @@ -1830,12 +1830,12 @@ ro: dateAlert: "Alertă de dată" mentioned: "Menţionat" responsible: "Responsabil" - shared: "Shared" + shared: "Partajat" watched: "Observator" menu: by_project: "Necitit după proiect" by_reason: "Descriere" - inbox: "Cutie poștală" + inbox: "Inbox" send_notifications: "Trimite notificări pentru această acțiune" work_packages: subject: @@ -1855,7 +1855,7 @@ ro: label_add_another_file: "Adăugare alt fișier" label_add_columns: "Adăugați coloanele selectate" label_add_note: "Adăugare notă" - label_add_projects: "Add projects" + label_add_projects: "Adaugă proiecte" label_add_related_work_packages: "Adăugare pachet de lucru asociat" label_add_subtask: "Adăugare sub-activitate" label_added: "adăugat" @@ -1896,15 +1896,15 @@ ro: label_ldap_auth_source_plural: "LDAP connections" label_attribute_expand_text: "The complete text for '%{attribute}'" label_authentication: "Autentificare" - label_authentication_settings: "Authentication settings" - label_available_global_roles: "Available global roles" - label_available_project_attributes: "Available project attributes" + label_authentication_settings: "Setări autentificare" + label_available_global_roles: "Roluri globale disponibile" + label_available_project_attributes: "Atribute proiect disponibile" label_available_project_forums: "Forumuri disponibile" label_available_project_repositories: "Arhive disponibile" label_available_project_versions: "Versiuni disponibile" label_available_project_work_package_categories: "Categorii de pachete de lucru disponibile" label_available_project_work_package_types: "Tipuri de pachete de lucru disponibile" - label_available_projects: "Available projects" + label_available_projects: "Proiecte disponibile" label_api_doc: "Documentație API" label_backup: "Backup" label_backup_code: "Cod de rezervă" @@ -1923,7 +1923,7 @@ ro: label_bulk_edit_selected_work_packages: "Editare în masă a pachetelor de lucru selectate" label_bundled: "(la pachet)" label_calendar: "Calendar" - label_calendars_and_dates: "Calendars and dates" + label_calendars_and_dates: "Calendare și dăți" label_calendar_show: "Afișare calendar" label_category: "Categorie" label_consent_settings: "Consimţământul utilizatorului" @@ -2001,7 +2001,7 @@ ro: label_diff_side_by_side: "în paralel" label_digital_accessibility: "Accesibilitate digitală (DE)" label_disabled: "dezactivat" - label_disabled_uppercase: "Disabled" + label_disabled_uppercase: "Dezactivat" label_display: "Afișare" label_display_per_page: "Pe pagină: %{value}" label_display_used_statuses_only: "Afişează doar stările folosite de acest tip" @@ -2094,7 +2094,7 @@ ro: label_introduction_video: "Video de introducere" label_invite_user: "Invitare utilizator" label_share: "Distribuiți" - label_share_project_list: "Share project list" + label_share_project_list: "Distribuie lista de proiecte" label_share_work_package: "Share work package" label_show_hide: "Afișare/ascundere" label_show_hide_n_items: "Show/hide %{count} items" @@ -2170,7 +2170,7 @@ ro: label_more_than_ago: "acum mai mult de zile" label_move_work_package: "Mutare pachet de lucru" label_my_account: "Contul meu" - label_my_activity: "My activity" + label_my_activity: "Activitatea mea" label_my_account_data: "Datele din contul meu" label_my_avatar: "My avatar" label_my_queries: "Interogările mele" @@ -2204,7 +2204,7 @@ ro: label_operator_none: "este gol" label_operator_equals_or: "este (SAU)" label_operator_equals_all: "este (ȘI)" - label_operator_shared_with_user_any: "Oricare" + label_operator_shared_with_user_any: "oricare" label_open_menu: "Deschidere meniu" label_open_work_packages: "deschise" label_open_work_packages_plural: "deschise" @@ -2258,7 +2258,7 @@ ro: label_project_mappings: "Enabled in projects" label_project_new: "Proiect nou" label_project_plural: "Proiecte" - label_project_list_plural: "Project lists" + label_project_list_plural: "Listă proiecte" label_project_attributes_plural: "Atributele proiectului" label_project_custom_field_plural: "Atributele proiectului" label_project_settings: "Setările proiectului" @@ -2285,7 +2285,7 @@ ro: label_relation_delete: "Ștergere relație" label_relation_new: "Relație nouă" label_release_notes: "Note privind lansarea noii versiuni" - label_remaining_work: "Remaining work" + label_remaining_work: "Muncă rămasă" label_remove_columns: "Eliminare coloane selectate" label_renamed: "redenumit" label_reply_plural: "Răspunsuri" @@ -2316,7 +2316,7 @@ ro: label_role_search: "Atribuirea rolului noilor membri" label_scm: "SCM" label_search: "Căutare" - label_search_by_name: "Search by name" + label_search_by_name: "Caută după nume" label_send_information: "Send new credentials to the user" label_send_test_email: "Trimite e-mail de test" label_session: "Sesiune" @@ -2420,7 +2420,7 @@ ro: label_wiki_show_new_page_link: "Afișare submeniu 'Creare pagină copil'" label_wiki_show_submenu_item: "Afișare ca submeniu pentru " label_wiki_start: "Pagină de start" - label_work: "Work" + label_work: "Muncă" label_work_package: "Pachet de lucru" label_work_package_attachments: "Anexe la pachetul de lucru" label_work_package_category_new: "Categorie nouă" @@ -2437,7 +2437,7 @@ ro: label_work_package_tracking: "Urmărire pachete de lucru" label_work_package_view_all: "Toate pachetele de lucru" label_workflow: "Flux de lucru" - label_workflow_copy: "Copy workflow" + label_workflow_copy: "Copiază fluxul de lucru" label_workflow_plural: "Fluxuri de lucru" label_workflow_summary: "Descriere" label_working_days_and_hours: "Working days and hours" @@ -2524,7 +2524,7 @@ ro: assigned: "Alocat" responsible: "Responsabil" mentioned: "Menţionat" - shared: "Shared" + shared: "Partajat" subscribed: "toate" prefix: "Primită din cauza setării de notificare: %{reason}" date_alert_start_date: "Alertă de dată" @@ -2742,9 +2742,9 @@ ro: permission_add_project: "Create projects" permission_add_work_package_attachments: "Adaugă fișiere" permission_add_work_package_attachments_explanation: "Allows adding attachments without Edit work packages permission" - permission_archive_project: "Proiect de arhivă" + permission_archive_project: "Proiect arhivat" permission_create_user: "Create users" - permission_manage_user: "Edit users" + permission_manage_user: "Editează utilizatori" permission_manage_placeholder_user: "Creați, editați și ștergeți utilizatori de tip placeholder" permission_add_subprojects: "Creare subproiecte" permission_add_work_package_watchers: "Adăugare observatori" @@ -2800,20 +2800,20 @@ ro: permission_protect_wiki_pages: "Protejare pagini wiki" permission_rename_wiki_pages: "Redenumire pagini wiki" permission_save_queries: "Salvați vizualizările" - permission_search_project: "Search project" + permission_search_project: "Caută proiect" permission_select_custom_fields: "Selectați câmpurile personalizate" permission_select_project_custom_fields: "Select project attributes" permission_select_project_modules: "Selectare module proiect" permission_share_work_packages: "Share work packages" permission_manage_types: "Selectare tipuri" - permission_view_project: "View projects" + permission_view_project: "Vezi proiecte" permission_view_changesets: "Vizualizare revizii repo în OpenProject" permission_view_commit_author_statistics: "Vizualizare statistici autor înregistrări" - permission_view_dashboards: "View dashboards" + permission_view_dashboards: "Vezi panouri" permission_view_work_package_watchers: "Vizualizare listă observatori" permission_view_work_packages: "Vizualizare pachete de lucru" permission_view_messages: "Vizualizare mesaje" - permission_view_news: "View news" + permission_view_news: "Vezi noutăți" permission_view_members: "Vezi membrii" permission_view_reportings: "Vizualizare raportări" permission_view_shared_work_packages: "View work package shares" @@ -2823,12 +2823,12 @@ ro: permission_view_wiki_pages: "Vizualizare wiki" permission_work_package_assigned: "Deveniți cesionar/responsabil" permission_work_package_assigned_explanation: "Pachetele de lucru pot fi atribuite utilizatorilor și grupurilor care dețin acest rol în proiectul respectiv" - permission_view_project_activity: "View project activity" + permission_view_project_activity: "Vezi activitate proiect" permission_view_project_attributes: "View project attributes" permission_save_bcf_queries: "Save BCF queries" permission_manage_public_bcf_queries: "Manage public BCF queries" permission_edit_attribute_help_texts: "Edit attribute help texts" - permission_manage_public_project_queries: "Manage public project lists" + permission_manage_public_project_queries: "Gestionează listă proiecte publice" permission_view_project_query: "View project query" permission_edit_project_query: "Edit project query" placeholders: @@ -2877,8 +2877,8 @@ ro: member_of_group: "Grupul executantului" name_or_identifier: "Nume sau identificator" only_subproject_id: "Numai subproiect" - shared_with_user: "Shared with users" - shared_with_me: "Shared with me" + shared_with_user: "Partajate cu utilizatorii" + shared_with_me: "Partajate cu mine" subproject_id: "Inclusiv subproiectul" repositories: at_identifier: "la %{identifier}" @@ -3197,7 +3197,7 @@ ro: projects: missing_dependencies: "Project module %{module} was checked which depends on %{dependencies}. You need to check these dependencies as well." section_new_projects: "Setări pentru proiecte noi" - section_project_overview: "Settings for project lists" + section_project_overview: "Setări pentru listă proiecte" session: "Sesiune" user: default_preferences: "Preferințe implicite" @@ -3257,7 +3257,7 @@ ro: text_database_allows_tsv: "Baza de date permite TSVector (opțional)" text_default_administrator_account_changed: "Contul de administrator implicit a fost schimbat" text_default_encoding: "Implicit: UTF-8" - text_destroy: "Ștergere" + text_destroy: "Șterge" text_destroy_with_associated: "Există obiecte suplimentare asociate cu pachetul(ele) de lucru care urmează să fie șters(e). Aceste obiecte sunt de următoarele tipuri:" text_destroy_what_to_do: "Ce vrei să faci?" text_diff_truncated: "... Acest diff a fost trunchiat deoarece depășește dimensiunea maximă care poate fi afișată." @@ -3482,15 +3482,15 @@ ro: role: "Rol" type: "Tip" denied: "You don't have permissions to share %{entities}." - label_search: "Search for users to invite" - label_search_placeholder: "Search by user or email address" + label_search: "Caută utilizatori pentru a invita" + label_search_placeholder: "Caută după utilizator sau adresă de e-mail" label_toggle_all: "Toggle all shares" remove: "Eliminare" share: "Distribuiți" - text_empty_search_description: "There are no users with the current filter criteria." - text_empty_search_header: "We couldn't find any matching results." + text_empty_search_description: "Nu sunt utilizatori cu criteriile curente de filtrare." + text_empty_search_header: "Nu am putut găsi niciun rezultat potrivit." text_empty_state_description: "The %{entity} has not been shared with anyone yet." - text_empty_state_header: "Nu este publică" + text_empty_state_header: "Nepartajat" text_user_limit_reached: "Adding additional users will exceed the current limit. Please contact an administrator to increase the user limit to ensure external users are able to access this %{entity}." text_user_limit_reached_admins: 'Adding additional users will exceed the current limit. Please upgrade your plan to be able to add more users.' warning_user_limit_reached: > @@ -3501,12 +3501,12 @@ ro: warning_locked_user: "The user %{user} is locked and cannot be shared with" user_details: locked: "Locked user" - invited: "Invite sent. " + invited: "Invitație trimisă. " resend_invite: "Resend." invite_resent: "Invite has been resent" not_project_member: "Not a project member" project_group: "Group members might have additional privileges (as project members)" - not_project_group: "Group (shared with all members)" + not_project_group: "Grup (partajat cu toți membrii)" additional_privileges_project: "Might have additional privileges (as project member)" additional_privileges_group: "Might have additional privileges (as group member)" additional_privileges_project_or_group: "Might have additional privileges (as project or group member)" @@ -3522,10 +3522,10 @@ ro: caption: "Everyone can view this project list. Those with global edit permissions can modify it." blank_state: public: - header: "Shared with everyone" + header: "Partajat cu toți" description: "Everyone can view this project list. You can also add individual users with extra permissions." private: - header: "Not shared: Private" + header: "Nepartajat: Privat" description: "This project list has not been shared with anyone yet. Only you can access this list." permissions: view: "Vizualizare" diff --git a/config/locales/crowdin/ru.yml b/config/locales/crowdin/ru.yml index 6ed139a96b70..2f2d6146ebe0 100644 --- a/config/locales/crowdin/ru.yml +++ b/config/locales/crowdin/ru.yml @@ -2809,7 +2809,7 @@ ru: permission_edit_own_messages: "Редактировать свои сообщения" permission_edit_own_time_entries: "Редактировать собственные учетные записи о времени" permission_edit_project: "Редактировать проект" - permission_edit_project_attributes: "Edit project attributes" + permission_edit_project_attributes: "Редактирование атрибутов проекта" permission_edit_reportings: "Редактировать отчеты" permission_edit_time_entries: "Редактировать журналы времени для других пользователей" permission_edit_timelines: "Редактировать графики" @@ -2860,7 +2860,7 @@ ru: permission_work_package_assigned: "Назначиться/стать отвественным" permission_work_package_assigned_explanation: "Пакеты работ могут быть привязаны к пользователям и группам в зависимости от этой роли в рамках соответствующего проекта" permission_view_project_activity: "Просмотр деятельности по проекту" - permission_view_project_attributes: "View project attributes" + permission_view_project_attributes: "Просмотр атрибутов проекта" permission_save_bcf_queries: "Сохранить запросы BCF" permission_manage_public_bcf_queries: "Управление публичными BCF запросами" permission_edit_attribute_help_texts: "Редактировать атрибут справки" diff --git a/config/locales/crowdin/zh-TW.seeders.yml b/config/locales/crowdin/zh-TW.seeders.yml index 46767eb3a800..81a62b7f4d83 100644 --- a/config/locales/crowdin/zh-TW.seeders.yml +++ b/config/locales/crowdin/zh-TW.seeders.yml @@ -99,7 +99,7 @@ zh-TW: item_2: name: 任務 item_3: - name: 團隊規劃 + name: 小組工作企劃 boards: kanban: name: Kanban看板 diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index 8d63f817b43a..de8c7a792af4 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -207,7 +207,7 @@ zh-TW: enabled_in_project: "已在專案中啟用" contained_in_type: "已包含在類型中" confirm_destroy_option: "刪除一個項目將會一併刪除所有出現這個項目的地方 (例如:在工作項目中)。你確定要刪除它嗎?" - reorder_alphabetical: "按字母順序重新排列值" + reorder_alphabetical: "按字母順序重新排列" reorder_confirmation: "警告:目前可用值的順序將會遺失。繼續嗎?" instructions: is_required: "將此欄位定義成必填。\n" @@ -248,7 +248,7 @@ zh-TW: work_package_attachments: "工作項目:附件" work_package_categories: "工作項目:類別" work_package_file_links: "工作項目:檔案連結" - work_package_shares: "共享之工作項目" + work_package_shares: "共用之工作項目" delete: scheduled: "已經安排背景執行刪除任務。你將會收到結果通知。" schedule_failed: "專案無法刪除: %{errors}" @@ -266,7 +266,7 @@ zh-TW: my: "我的專案" favored: "收藏的專案" archived: "封存專案" - shared: "共享專案清單" + shared: "共用專案清單" my_lists: "我的專案列表" new: placeholder: "新專案清單" @@ -331,38 +331,38 @@ zh-TW: invite_by_mail: "寄發邀請至:%{mail}" send_invite_to: "寄送邀請" columns: - shared: "共享" + shared: "共用" filters: - all_shares: "所有共享的" + all_shares: "所有共用的" menu: all: "全部" invited: "已邀請" locked: "停用" project_roles: "專案角色" - wp_shares: "共享之工作項目" + wp_shares: "共用之工作項目" groups: "群組" delete_member_dialog: title: "移除成員" will_remove_the_users_role: "這將從此專案中移除使用者的角色。" will_remove_the_groups_role: "這將從此專案中移除群組角色。" however_work_packages_shared_with_user_html: - other: "不過, %{shared_work_packages_link} ,也與此使用者共享。" + other: "不過, %{shared_work_packages_link} ,也與此使用者共用。" however_work_packages_shared_with_group_html: - other: "不過, %{shared_work_packages_link} ,也與此群組共享。" + other: "不過, %{shared_work_packages_link} ,也與此群組共用。" remove_work_packages_shared_with_user_too: "已移除專案成員的使用者仍可存取共用工作項目。您也想移除共用嗎?" remove_work_packages_shared_with_group_too: "已移除成員身份的群組仍可存取共用工作套件。您也想移除共用嗎?" will_not_affect_inherited_shares: "(這不會影響與其小組共用的工作項目)。" can_remove_direct_but_not_shared_roles: "您可以刪除該用戶的直接項目成員身份,但他們所在的組也是該項目的成員,因此他們將繼續通過組成為成員。" also_work_packages_shared_with_user_html: - other: "此外,還與該用戶共享了 %{shared_work_packages_link}。" - remove_project_membership_or_work_package_shares_too: "您只想刪除作為直接成員的用戶(保留共享),還是也刪除工作包共享?" + other: "此外,還與該用戶共用了 %{shared_work_packages_link}。" + remove_project_membership_or_work_package_shares_too: "您只想刪除作為直接成員的用戶(保留共用),還是也刪除工作包共享?" will_remove_all_user_access_priveleges: "刪除該成員將移除該專案所有存取權限。但使用者部分專案資料仍然存在。" will_remove_all_group_access_priveleges: "刪除該成員將刪除該組對項目的所有訪問權限。該組仍將作為實例的一部分存在。" cannot_delete_inherited_membership: "您不能刪除此成員,因為他們所屬的組本身就是此項目的成員。" cannot_delete_inherited_membership_note_admin_html: "您可以在 %{administration_settings_link} 中刪除作為項目成員的組或組中的特定成員。" cannot_delete_inherited_membership_note_non_admin: "您可以將該組作為項目成員移除,或者聯繫管理員將該特定成員從組中移除。" delete_work_package_shares_dialog: - title: "撤銷已共享的工作項目" + title: "撤銷已共用的工作項目" shared_with_this_user_html: other: "%{all_shared_work_packages_link} 已與該用戶共享。" shared_with_this_group_html: @@ -472,7 +472,7 @@ zh-TW: is_readonly: "唯讀" excluded_from_totals: "不包括在總計中" themes: - dark: "黑暗(測試版)" + dark: "深色(測試版)" light: "白色主題" light_high_contrast: "高對比白色主題" types: @@ -524,8 +524,8 @@ zh-TW: 目標項目中未啓用工作包的當前類型。如果您希望工作包類型保持不變,請在目標項目中啓用這些類型。否則,請從列表中選擇目標項目中的可用類型。 sharing: missing_workflow_warning: - title: "工作包共享缺少工作流" - message: "沒有為\"工作包編輯者\"角色配置工作流。沒有工作流,共享用戶就無法更改工作包的狀態。工作流可以複製。選擇一個源類型(例如\"任務\")和源角色(例如\"成員\")。然後選擇目標類型。一開始,您可以將所有類型都選擇為目標類型。最後,選擇\"工作包編輯者\"角色作為目標,然後點擊\"複製\"。在創建默認設置之後,像對其他角色一樣進行微調,對工作流進行詳細調整。" + title: "共用工作項目缺少工作流" + message: "沒有為\"工作項目編輯者\"角色配置工作流。沒有工作流,共用用戶就無法更改工作項目的狀態。工作流可以複製。選擇一個類型(例如\"任務\")和角色(例如\"成員\")。然後選擇目標類型。一開始,您可以將所有類型都選擇為目標類型。最後,選擇\"工作項目編輯者\"角色作為目標,然後點擊\"複製\"。在創建預設設置之後,像對其他角色一樣進行微調,對工作流進行詳細調整。" link_message: "在管理中配置工作流。" summary: reports: @@ -710,7 +710,7 @@ zh-TW: type: description: "描述的預設文字" attribute_groups: "" - is_in_roadmap: "在 RoadMap 預設為顯示" + is_in_roadmap: "在藍圖中預設為顯示" is_default: "新專案的預設啟動類型" is_milestone: "里程碑" color: "顏色" @@ -731,10 +731,10 @@ zh-TW: hide_mail: "隱藏我的電子郵件地址" impaired: "協助工具模式" time_zone: "時區" - auto_hide_popups: "自動隱藏成功通知" + auto_hide_popups: "提醒後自動隱藏" warn_on_leaving_unsaved: "離開尚未儲存的工作項目時提示我" theme: "模式 " - mode_guideline: "為了親和性以及方便閱讀性,某些模式將覆蓋自訂主題顏色。對於完整的自訂主題,請選擇 Light 模式。" + mode_guideline: "為了親和性以及方便閱讀性,某些模式將覆蓋自訂主題顏色。對於完整的自訂主題,請選擇白色模式。" version: effective_date: "完成日期" sharing: "分享" @@ -768,7 +768,7 @@ zh-TW: readonly: "唯讀" remaining_hours: "剩餘工作" remaining_time: "剩餘工作" - shared_with_users: "共享對象" + shared_with_users: "共用對象" schedule_manually: "手動排程" spent_hours: "耗時" spent_time: "耗時" @@ -1196,7 +1196,7 @@ zh-TW: author: "作者" base: "一般錯誤:" blocks_ids: "已被限制的工作項目 IDs" - category: "分類" + category: "類別" comment: "留言" comments: "留言" content: "內容" @@ -1292,7 +1292,7 @@ zh-TW: button_clear: "清除" button_click_to_reveal: "點擊顯示" button_close: "關閉" - button_collapse_all: "全部摺疊" + button_collapse_all: "全部收合" button_configure: "設定" button_continue: "繼續" button_copy: "複製" @@ -1348,11 +1348,11 @@ zh-TW: button_add_menu_entry: "新增選單項目" button_configure_menu_entry: "設定選單項目" button_delete_menu_entry: "刪除選單項目" - button_view_shared_work_packages: "檢視共享的工作項目" + button_view_shared_work_packages: "檢視共用的工作項目" button_manage_roles: "管理角色" button_remove_member: "移除成員" - button_remove_member_and_shares: "移除成員及共享" - button_revoke_work_package_shares: "撤銷已共享的工作項目" + button_remove_member_and_shares: "移除成員及共用" + button_revoke_work_package_shares: "撤銷已共用的工作項目" button_revoke_access: "撤銷存取權限" button_revoke_all: "全部撤銷" button_revoke_only: "僅撤銷 %{shared_role_name}" @@ -1660,7 +1660,7 @@ zh-TW: shortcuts: "快捷鍵" blog: "Openproject 部落格" forums: "社群討論區" - newsletter: "安全警報 / 消息" + newsletter: "資通安全通知 / 電子報" image_conversion: imagemagick: "Imagemagick" journals: @@ -1758,7 +1758,7 @@ zh-TW: dateAlert: "到期提醒" mentioned: "被提及" responsible: "負責人" - shared: "共享" + shared: "共用" watched: "監看者" menu: by_project: "未讀項目" @@ -1779,7 +1779,7 @@ zh-TW: label_activate_user: "啟動使用者" label_active_in_new_projects: "在新專案中啟用" label_activity: "活動" - label_add_edit_translations: "增加和編輯翻譯" + label_add_edit_translations: "加入翻譯" label_add_another_file: "新增另一個檔案" label_add_columns: "新增所選欄" label_add_note: "新增註記" @@ -1876,8 +1876,8 @@ zh-TW: label_chronological_order: "由舊排列至新" label_close_versions: "關閉已完成的版本" label_closed_work_packages: "已關閉" - label_collapse: "折疊" - label_collapsed_click_to_show: "已折疊。按一下以顯示" + label_collapse: "收合" + label_collapsed_click_to_show: "已收合。按一下以顯示" label_configuration: 組態 label_comment_add: "新增留言" label_comment_added: "新增內容" @@ -1923,11 +1923,11 @@ zh-TW: label_missing_or_hidden_custom_option: "(缺少值或缺少訪問權限)" label_descending: "降冪" label_details: "詳細資料" - label_development_roadmap: "發展路徑圖" + label_development_roadmap: "開發藍圖" label_diff: "比較" label_diff_inline: "行內" label_diff_side_by_side: "並排" - label_digital_accessibility: "數字可訪問性 (DE)" + label_digital_accessibility: "數位無障礙聲明 (德文)" label_disabled: "已停用" label_disabled_uppercase: "關閉" label_display: "顯示" @@ -1967,7 +1967,7 @@ zh-TW: label_import: "匯入" label_export_to: "也可匯出成" label_expand: "展開" - label_expanded_click_to_collapse: "已擴大。按一下可折疊" + label_expanded_click_to_collapse: "已展開。按一下可收合" label_f_hour: "%{value} 小時" label_f_hour_plural: "%{value} 個小時" label_favorite: "最愛" @@ -2023,7 +2023,7 @@ zh-TW: label_invite_user: "邀請使用者" label_share: "分享" label_share_project_list: "共用專案清單" - label_share_work_package: "共享工作項目" + label_share_work_package: "共用工作項目" label_show_hide: "顯示/隱藏" label_show_hide_n_items: "顯示/隱藏 %{count} 項目" label_show_all_registered_users: "顯示所有註冊使用者" @@ -2212,7 +2212,7 @@ zh-TW: label_relates_to: "相關於" label_relation_delete: "刪除關聯" label_relation_new: "新增關聯" - label_release_notes: "發行備註" + label_release_notes: "發行說明" label_remaining_work: "剩餘工作" label_remove_columns: "移除所選欄" label_renamed: "重新命名" @@ -2233,11 +2233,11 @@ zh-TW: label_revision: "修訂" label_revision_id: "修訂版 %{value}" label_revision_plural: "修訂" - label_roadmap: "路線圖" - label_roadmap_edit: "編輯路線圖 %{name}" - label_roadmap_due_in: "截止於%{value}" - label_roadmap_no_work_packages: "這個版本沒有工作項目" - label_roadmap_overdue: "晚了 %{value}" + label_roadmap: "藍圖" + label_roadmap_edit: "編輯藍圖 %{name}" + label_roadmap_due_in: "%{value} 截止" + label_roadmap_no_work_packages: "此版本沒有工作項目" + label_roadmap_overdue: "%{value} 逾期" label_role_and_permissions: "角色與權限" label_role_new: "新增角色" label_role_plural: "角色" @@ -2278,7 +2278,7 @@ zh-TW: label_system_storage: "儲存空間資訊" label_table_of_contents: "目錄" label_tag: "標記" - label_team_planner: "團隊規劃" + label_team_planner: "小組工作企劃" label_text: "長文字" label_this_month: "本月" label_this_week: "本週" @@ -2321,7 +2321,7 @@ zh-TW: label_version_plural: "版本" label_version_sharing_descendants: "與子專案" label_version_sharing_hierarchy: "有專案階層" - label_version_sharing_none: "非共享的" + label_version_sharing_none: "非共用的" label_version_sharing_system: "有所有的版本" label_version_sharing_tree: "有專案樹" label_videos: "影片" @@ -2450,7 +2450,7 @@ zh-TW: assigned: "指派" responsible: "負責人" mentioned: "被提及" - shared: "共享" + shared: "共用" subscribed: "所有" prefix: "因為通知設定而收到:%{reason}" date_alert_start_date: "日期提醒" @@ -2603,7 +2603,7 @@ zh-TW: notice_locking_conflict: "在此同時,資訊已經被至少一個使用者更新" notice_locking_conflict_additional_information: "更新來自於 %{users}" notice_locking_conflict_reload_page: "請重新載入頁面,檢查所做的更改並重新套用您的更新。" - notice_member_added: 增加至專案的 %{name} + notice_member_added: 新增 %{name} 至專案 notice_members_added: 已加入了 %{number} 個用戶至專案中 notice_member_removed: "%{user} 已從專案移除" notice_member_deleted: "%{user} 已經從專案移除並刪除了" @@ -2799,7 +2799,7 @@ zh-TW: member_of_group: "執行者的群組" name_or_identifier: "名稱或識別碼" only_subproject_id: "只限子專案" - shared_with_user: "與使用者共享" + shared_with_user: "與使用者共用" shared_with_me: "與我共用" subproject_id: "包含子專案" repositories: @@ -3246,7 +3246,7 @@ zh-TW: text_user_invited: 這個使用者已經被邀請而且正在等待註冊。 text_user_wrote: "%{value} 寫道:" text_warn_on_leaving_unsaved: "若離開當前頁面,將遺失此工作項目未儲存的內容。" - text_what_did_you_change_click_to_add_comment: "你改變了甚麼?點擊來新增說明" + text_what_did_you_change_click_to_add_comment: "點擊這裡來說明變更了什麼" text_wiki_destroy_confirmation: "您是否確定要刪除此 wiki 和它所有的內容?" text_wiki_page_destroy_children: "刪除子頁面和所有他們的派生頁面" text_wiki_page_destroy_question: "此頁有 %{descendants} 子頁面和派生頁面。您想進行何種操作?" @@ -3401,24 +3401,24 @@ zh-TW: group: "群組" role: "角色" type: "類型" - denied: "您沒有權限共享 %{entities}。" + denied: "您沒有權限共用 %{entities}。" label_search: "搜尋要邀請的用戶" label_search_placeholder: "以帳號或電子郵件搜尋" - label_toggle_all: "切換到「所有共享的」" + label_toggle_all: "切換到「所有共用的」" remove: "刪除" share: "分享" text_empty_search_description: "沒有符合當前過濾條件的用戶。" text_empty_search_header: "我們找不到任何匹配結果。" - text_empty_state_description: "%{entity} 尚未與任何人共享。" - text_empty_state_header: "非共享的" + text_empty_state_description: "%{entity} 尚未與任何人共用。" + text_empty_state_header: "非共用的" text_user_limit_reached: "添加其他用戶將超出當前限制。請聯繫管理員增加用戶限制,以確保外部用戶能夠訪問 %{entity}。" text_user_limit_reached_admins: '添加更多用戶將超出當前限制。請升級您的計劃,以便添加更多用戶。' warning_user_limit_reached: > 添加其他用戶將超出當前限制。請聯繫管理員增加用戶限制,以確保外部用戶能夠訪問 %{entity}。 warning_user_limit_reached_admin: > 添加其他用戶將超出當前限制。請升級您的計劃,以確保外部用戶能夠訪問 %{entity}。 - warning_no_selected_user: "請選擇要與之共享此 %{entity} 的用戶" - warning_locked_user: "使用者 %{user} 已停用,無法共享" + warning_no_selected_user: "請選擇要與之共用此 %{entity} 的用戶" + warning_locked_user: "使用者 %{user} 已停用,無法共用" user_details: locked: "使用者已停用" invited: "已傳送邀請" @@ -3426,34 +3426,34 @@ zh-TW: invite_resent: "已重傳邀請" not_project_member: "非專案的成員" project_group: "小組成員可能擁有額外權限(作為項目成員)" - not_project_group: "組 (與所有成員共享)" + not_project_group: "組 (與所有成員共用)" additional_privileges_project: "可能有額外的權限(作為項目成員)" additional_privileges_group: "可能有額外的權限(作為組成員)" additional_privileges_project_or_group: "可能有額外的權限(作為項目成員或組成員)" project_queries: publishing_denied: "您沒有公開專案列表的權限。" - access_warning: "用戶只能看到他們有權訪問的項目。共享項目列表不會影響單個項目的權限。" + access_warning: "用戶只能看到他們有權訪問的專案。共用專案列表不會影響單一專案的權限。" user_details: owner: "列表所有者" - can_view_because_public: "已經可以查看,因為列表與所有人共享" + can_view_because_public: "已經可以查看,因為列表與所有人共用" can_manage_public_lists: "可根據全域權限進行編輯" public_flag: label: "通過 %{instance_name} 與大家分享" caption: "每個人都可以查看此項目列表。有全局編輯權限的人可以修改它。" blank_state: public: - header: "共享給所有人" + header: "共用給所有人" description: "每個人都可以查看此項目列表。您也可以添加具有額外權限的個別用戶。" private: - header: "不共享:私有" - description: "此項目列表尚未與任何人共享。只有您可以訪問此列表。" + header: "不共用:私有" + description: "此專案列表尚未與任何人共用。只有您可以訪問此列表。" permissions: view: "檢視" view_description: "可以查看此項目列表。" edit: "編輯" - edit_description: "可以查看、共享和編輯此項目列表。" + edit_description: "可以查看、共用和編輯此專案列表。" upsale: - message: "與單個用戶共享項目列表是一項企業附加功能。" + message: "與單個用戶共用專案列表是一項企業附加功能。" working_days: info: > 在安排工作包時,未選擇的日期將被跳過(且不計入天數)。可以在工作包級別覆蓋這些選項。 diff --git a/modules/avatars/config/locales/crowdin/js-zh-TW.yml b/modules/avatars/config/locales/crowdin/js-zh-TW.yml index a697341b5600..8e097bdb39e6 100644 --- a/modules/avatars/config/locales/crowdin/js-zh-TW.yml +++ b/modules/avatars/config/locales/crowdin/js-zh-TW.yml @@ -7,8 +7,8 @@ zh-TW: label_choose_avatar: "選擇大頭貼" uploading_avatar: "上傳您的大頭貼。" text_upload_instructions: | - 上傳您自己的 128 x 128 像素自定大頭貼。 較大的文件將被調整大小和裁剪。 - 選擇了圖像後,在上傳之前將顯示您的大頭貼預覽。 + 上傳您自己的 128 x 128 像素自定大頭貼。 較大圖片將被調整大小和裁剪。 + 選擇了圖片後,上傳前將預覽您的大頭貼。 error_image_too_large: "圖片太大。" wrong_file_format: "允許的格式是jpg, png以及gif" empty_file_error: "請上傳一個有效的圖片 (jpg, png, gif)" diff --git a/modules/avatars/config/locales/crowdin/zh-TW.yml b/modules/avatars/config/locales/crowdin/zh-TW.yml index c25a04f214cb..5931ce1ca927 100644 --- a/modules/avatars/config/locales/crowdin/zh-TW.yml +++ b/modules/avatars/config/locales/crowdin/zh-TW.yml @@ -25,13 +25,13 @@ zh-TW: text_current_avatar: | 以下圖像顯示當前圖像。 text_upload_instructions: | - 上傳您自己的 128 x 128 像素自定大頭貼。 較大的文件將被調整大小和裁剪。 - 選擇了圖像後,在上傳之前將顯示您的大頭貼預覽。 - text_change_gravatar_html: '請轉到%{gravatar_url},將您的郵件設定進去。' + 上傳您自己的 128 x 128 像素自定大頭貼。 較大圖片將被調整大小和裁剪。 + 選擇了圖片後,上傳前將預覽您的大頭貼。 + text_change_gravatar_html: '請連結到%{gravatar_url},將您的郵件設定進去以便使用。' text_your_local_avatar: | OpenProject 允許你上傳自己定義的頭像 text_local_avatar_over_gravatar: | - 如果你有設定,這個自己定義的頭像將會優先用於gravatar上方。 + 如果你有設定,這個自己定義的頭像將會優於gravatar。 text_your_current_gravatar: | 如果你註冊了一個gravatar圖像,OpenProject將使用你的圖像;如果沒有則會使用既有預設的圖像或圖標。 目前的gravatar圖像如下: diff --git a/modules/backlogs/config/locales/crowdin/ro.yml b/modules/backlogs/config/locales/crowdin/ro.yml index 6df04accf974..19afc384d522 100644 --- a/modules/backlogs/config/locales/crowdin/ro.yml +++ b/modules/backlogs/config/locales/crowdin/ro.yml @@ -64,7 +64,7 @@ ro: properties: "Proprietăţi" rebuild: "Reconstruiți" rebuild_positions: "Reconstruiți" - remaining_hours: "Remaining work" + remaining_hours: "Muncă rămasă" remaining_hours_ideal: "Remaining work (ideal)" show_burndown_chart: "Size Chart" story: "Articol" @@ -147,7 +147,7 @@ ro: rb_label_copy_tasks_none: "Nimic" rb_label_copy_tasks_open: "Deschis" rb_label_link_to_original: "Includeți un link către povestea originală" - remaining_hours: "remaining work" + remaining_hours: "muncă rămasă" required_burn_rate_hours: "rata de ardere necesară (ore)" required_burn_rate_points: "rata de ardere necesară (puncte)" todo_work_package_description: "%{summary}: %{url}\n%{description}" diff --git a/modules/bim/config/locales/crowdin/ro.seeders.yml b/modules/bim/config/locales/crowdin/ro.seeders.yml index 7133c3a795d6..236a46913a68 100644 --- a/modules/bim/config/locales/crowdin/ro.seeders.yml +++ b/modules/bim/config/locales/crowdin/ro.seeders.yml @@ -103,7 +103,7 @@ ro: item_0: name: Project plan item_1: - name: Milestones + name: Etape item_2: name: Tasks item_3: @@ -147,7 +147,7 @@ ro: name: Pachete de lucru item_6: options: - name: Milestones + name: Etape demo-planning-constructing-project: name: "(Demo) Planning & constructing" status_explanation: All tasks are on schedule. The people involved know their tasks. The system is completely set up. @@ -165,7 +165,7 @@ ro: item_0: name: Project plan item_1: - name: Milestones + name: Etape item_2: name: Tasks item_3: @@ -202,7 +202,7 @@ ro: name: Pachete de lucru item_6: options: - name: Milestones + name: Etape work_packages: item_0: subject: Project kick off construction project @@ -419,7 +419,7 @@ ro: item_0: name: Project plan item_1: - name: Milestones + name: Etape item_2: name: Tasks item_3: @@ -459,7 +459,7 @@ ro: name: Pachete de lucru item_6: options: - name: Milestones + name: Etape work_packages: item_0: subject: Project kick off creating BIM model @@ -692,7 +692,7 @@ ro: item_4: name: Project plan item_5: - name: Milestones + name: Etape item_6: name: Tasks item_7: diff --git a/modules/bim/config/locales/crowdin/zh-TW.seeders.yml b/modules/bim/config/locales/crowdin/zh-TW.seeders.yml index e43d7aa30166..c608b85af77b 100644 --- a/modules/bim/config/locales/crowdin/zh-TW.seeders.yml +++ b/modules/bim/config/locales/crowdin/zh-TW.seeders.yml @@ -107,7 +107,7 @@ zh-TW: item_2: name: 任務 item_3: - name: 團隊規劃 + name: 小組工作企劃 boards: bcf: name: 簡單的拖放工作流程 @@ -169,7 +169,7 @@ zh-TW: item_2: name: 任務 item_3: - name: 團隊規劃 + name: 小組工作企劃 project-overview: widgets: item_0: @@ -420,7 +420,7 @@ zh-TW: item_2: name: 任務 item_3: - name: 團隊規劃 + name: 小組工作企劃 project-overview: widgets: item_0: @@ -693,7 +693,7 @@ zh-TW: item_6: name: 任務 item_7: - name: 團隊規劃 + name: 小組工作企劃 boards: bcf: name: BCF 問題 diff --git a/modules/gantt/config/locales/crowdin/js-ro.yml b/modules/gantt/config/locales/crowdin/js-ro.yml index c74950502852..3b0521112cbf 100644 --- a/modules/gantt/config/locales/crowdin/js-ro.yml +++ b/modules/gantt/config/locales/crowdin/js-ro.yml @@ -2,4 +2,4 @@ ro: js: work_packages: default_queries: - milestones: 'Milestones' + milestones: 'Etape' diff --git a/modules/github_integration/config/locales/crowdin/js-ro.yml b/modules/github_integration/config/locales/crowdin/js-ro.yml index 3eb76ec9a848..04d0f0ecfa9c 100644 --- a/modules/github_integration/config/locales/crowdin/js-ro.yml +++ b/modules/github_integration/config/locales/crowdin/js-ro.yml @@ -28,7 +28,7 @@ ro: title: "Cereri de extragere" copy_menu: label: Git fragmente - description: Copiați fragmente git în clipboard + description: Copiză fragmente git în clipboard git_actions: branch_name: Nume sucursală commit_message: Mesajul commit-ului diff --git a/modules/grids/config/locales/crowdin/js-ro.yml b/modules/grids/config/locales/crowdin/js-ro.yml index 1193c14c1b9f..d6116113862c 100644 --- a/modules/grids/config/locales/crowdin/js-ro.yml +++ b/modules/grids/config/locales/crowdin/js-ro.yml @@ -43,8 +43,8 @@ ro: title: 'Subproiecte' no_results: 'Cu subproiecte' project_favorites: - title: 'Favorite projects' - no_results: 'You currently have no favorite projects. Click on the star icon in the project dashboard to add one to your favorites.' + title: 'Proiecte favorite' + no_results: 'Nu ai niciun proiect favorit. Fă clic pe pictograma cu steluță din tabloul de bord al proiectului pentru a adăuga unul la favorite.' time_entries_current_user: title: 'Timpul meu petrecut' displayed_days: 'Zile afișate în lista de activități a proiectului' diff --git a/modules/grids/config/locales/crowdin/js-zh-TW.yml b/modules/grids/config/locales/crowdin/js-zh-TW.yml index e94c8c663411..a0742b5ef90c 100644 --- a/modules/grids/config/locales/crowdin/js-zh-TW.yml +++ b/modules/grids/config/locales/crowdin/js-zh-TW.yml @@ -1,14 +1,14 @@ zh-TW: js: grid: - add_widget: '新增部件' - remove: '移除部件' - configure: '設定部件' + add_widget: '新增小工具' + remove: '移除小工具' + configure: '設定小工具' upsale: text: "某些組件,如工作包圖組件,只在企業版提供。" link: '企業版。' widgets: - missing_permission: "您沒有必要的權限來檢視此部件。" + missing_permission: "您沒有必要的權限來檢視小工具。" custom_text: title: '自訂文字' documents: @@ -66,5 +66,5 @@ zh-TW: work_packages_calendar: title: '行事曆' work_packages_overview: - title: '工作項目概覽' + title: '工作項目總覽' placeholder: '點擊編輯' diff --git a/modules/meeting/config/locales/crowdin/no.yml b/modules/meeting/config/locales/crowdin/no.yml index cdd10b0ceb43..409b8bb3613b 100644 --- a/modules/meeting/config/locales/crowdin/no.yml +++ b/modules/meeting/config/locales/crowdin/no.yml @@ -122,7 +122,7 @@ agenda_text: "Kopier sakslisten fra det forrige møtet" email: send_emails: "Send e-post" - send_invitation_emails: "Send out invitation emails for all participants." + send_invitation_emails: "Send ut invitasjons-e-post for alle deltakere." open_meeting_link: "Åpent møte" invited: summary: "%{actor} har sendt deg en invitasjon til møtet %{title}" diff --git a/modules/meeting/config/locales/crowdin/ro.yml b/modules/meeting/config/locales/crowdin/ro.yml index 6f451e4c7d1a..f81eba429099 100644 --- a/modules/meeting/config/locales/crowdin/ro.yml +++ b/modules/meeting/config/locales/crowdin/ro.yml @@ -116,10 +116,10 @@ ro: attachments: text: "Attached files are available to all meeting participants. You can also drag and drop these into agenda item notes." copy: - title: "Copy meeting: %{title}" - attachments: "Copy attachments" - attachments_text: "Copy over all attached files to the new meeting" - agenda: "Copy agenda" + title: "Copiază întâlnirea: %{title}" + attachments: "Copiază atașamentele" + attachments_text: "Copiază peste toate fișierele atașate la noua ședință" + agenda: "Copiază agenda" agenda_text: "Copy the agenda of the old meeting" email: send_emails: "Send emails" diff --git a/modules/reporting/config/locales/crowdin/js-ro.yml b/modules/reporting/config/locales/crowdin/js-ro.yml index 4ce2d29c819a..78ae1dfb042c 100644 --- a/modules/reporting/config/locales/crowdin/js-ro.yml +++ b/modules/reporting/config/locales/crowdin/js-ro.yml @@ -22,5 +22,5 @@ ro: js: reporting_engine: - label_remove: "Ștergere" + label_remove: "Șterge" label_response_error: "S-a produs o eroare în tratarea interogării." diff --git a/modules/reporting/config/locales/crowdin/zh-TW.yml b/modules/reporting/config/locales/crowdin/zh-TW.yml index 4e5296b95501..597f7903d379 100644 --- a/modules/reporting/config/locales/crowdin/zh-TW.yml +++ b/modules/reporting/config/locales/crowdin/zh-TW.yml @@ -23,7 +23,7 @@ zh-TW: plugin_openproject_reporting: name: "OpenProject 報表" description: "本外掛允許透過OpenProject 時間及成本外掛,建立具篩選及群組的客製化成本報表" - button_save_as: "將報表另存為..。" + button_save_as: "另存報表..." comments: "留言" cost_reports_title: "時間與費用" label_cost_report: "成本報告" diff --git a/modules/storages/config/locales/crowdin/zh-TW.yml b/modules/storages/config/locales/crowdin/zh-TW.yml index d99aa3be2f9b..b54934a999c0 100644 --- a/modules/storages/config/locales/crowdin/zh-TW.yml +++ b/modules/storages/config/locales/crowdin/zh-TW.yml @@ -51,7 +51,7 @@ zh-TW: permission_manage_file_links: 管理文件鏈接 permission_manage_files_in_project: 管理專案中的檔案 permission_read_files: '自動管理專案資料夾 : 讀取檔案' - permission_share_files: '自動管理專案資料夾 : 共享檔案' + permission_share_files: '自動管理專案資料夾 : 共用檔案' permission_share_files_explanation: permission_view_file_links: 查看文件鏈接 permission_write_files: '自動管理專案資料夾 : 寫入檔案' diff --git a/modules/team_planner/config/locales/crowdin/js-zh-TW.yml b/modules/team_planner/config/locales/crowdin/js-zh-TW.yml index 813e0bcc5e29..60a861518e99 100644 --- a/modules/team_planner/config/locales/crowdin/js-zh-TW.yml +++ b/modules/team_planner/config/locales/crowdin/js-zh-TW.yml @@ -2,27 +2,27 @@ zh-TW: js: team_planner: - add_existing: '增加已有的' + add_existing: '加入現有工作項目' add_existing_title: '新增現有的工作項目' - create_label: '團隊規劃' - create_title: '建立新的團隊計畫' - unsaved_title: '未命名的團隊計畫' - no_data: '新增執行者來設定您的團隊規劃。' + create_label: '小組工作企劃' + create_title: '建立新的小組工作企劃' + unsaved_title: '未命名的小組工作企劃' + no_data: '新增執行者來設定您的小組工作企劃。' add_assignee: '增加「執行者」' remove_assignee: '刪除執行者' - two_weeks: '兩週' - one_week: '1週' - four_weeks: '4 週' - eight_weeks: '8 週' + two_weeks: '雙週' + one_week: '單週' + four_weeks: '四週' + eight_weeks: '八 週' work_week: '工作週' today: '今日' drag_here_to_remove: '拖曳此處可刪除執行者以及開始和結束日期。' cannot_drag_here: '由於權限或編輯限制,無法刪除工作項目。' cannot_drag_to_non_working_day: '此工作項目無法在非工作日開始/完成。' quick_add: - empty_state: '使用搜尋欄位尋找工作項目並將其拖曳到計劃器中以將其指派給某人並定義開始和結束日期。' + empty_state: '使用搜尋欄位尋找工作項目並將其拖曳到工作企劃中,以便將其指派給某人並定義開始和結束日期。' search_placeholder: '搜尋...' modify: errors: - permission_denied: '您沒有修改此權限所需的權限。' - fallback: '無法編輯工作項目。' + permission_denied: '您沒有修改權限。' + fallback: '此工作項目無法編輯。' diff --git a/modules/team_planner/config/locales/crowdin/zh-TW.yml b/modules/team_planner/config/locales/crowdin/zh-TW.yml index dc0899f9b8a1..5ac25eac090f 100644 --- a/modules/team_planner/config/locales/crowdin/zh-TW.yml +++ b/modules/team_planner/config/locales/crowdin/zh-TW.yml @@ -1,17 +1,17 @@ #English strings go here zh-TW: plugin_openproject_team_planner: - name: "OpenProject團隊計畫" - description: "提供團隊規劃器視圖。" - permission_view_team_planner: "查看團隊計劃" - permission_manage_team_planner: "管理團隊規劃" - project_module_team_planner_view: "團隊規劃" + name: "OpenProject小組工作企劃" + description: "提供小組工作企劃視圖。" + permission_view_team_planner: "檢視小組工作企劃" + permission_manage_team_planner: "管理「小組工作企劃」" + project_module_team_planner_view: "小組工作企劃" team_planner: - label_team_planner: "團隊規劃" - label_new_team_planner: "新團隊計劃" - label_create_new_team_planner: "建立新的團隊計畫" - label_team_planner_plural: "團隊規劃" + label_team_planner: "小組工作企劃" + label_new_team_planner: "新小組工作企劃" + label_create_new_team_planner: "建立新的小組工作企劃" + label_team_planner_plural: "小組工作企劃" label_assignees: "執行者" upsale: - title: "團隊規劃" - description: "使用 Team Planner 全面了解您的團隊規劃。 拉伸、縮短和拖放工作包以修改日期、移動日期或更改受讓人。" + title: "小組工作企劃" + description: "使用「小組工作企劃」全面閱覽了解您的小組工作內容。 縮放、拖曳工作項目以便調整日期、移動日期或更改執行者。" diff --git a/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml b/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml index cf8ff9e916ed..2ffbc1164d18 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/zh-TW.yml @@ -65,7 +65,7 @@ zh-TW: error_invalid_settings: "您選擇的2FA 策略無效" failed_to_save_settings: "未能更新2FA 設置: %{message}" admin: - self_edit_path: "要添加或修改您自己的2FA 設備, 請轉到 %{self_edit_link}" + self_edit_path: "要添加或修改您自己的2FA 設備, 請連結到 %{self_edit_link}" self_edit_link_name: "雙重驗證於您的帳號頁面" self_edit_forbidden: "無法於此路徑編輯您擁有的2FA設備.請至 我的帳號 > 雙重認證." no_devices_for_user: "沒有為該使用者註冊的 2FA 設備。" From 5dddb5932c123a9ae261d9ef07ec92e4f907074a Mon Sep 17 00:00:00 2001 From: ulferts Date: Fri, 16 Aug 2024 15:58:14 +0200 Subject: [PATCH 07/26] add rel="nofollow" to table sort links --- app/helpers/sort_helper.rb | 2 +- .../wp-table/sort-header/sort-header.directive.html | 6 ++++-- spec/helpers/sort_helper_spec.rb | 5 +++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/helpers/sort_helper.rb b/app/helpers/sort_helper.rb index cbbda73fd754..b578490095d4 100644 --- a/app/helpers/sort_helper.rb +++ b/app/helpers/sort_helper.rb @@ -286,7 +286,7 @@ def sort_link(column, caption, default_order, allowed_params: nil, **html_option allowed_params ||= %w[filters per_page expand columns] # Don't lose other params. - link_to_content_update(h(caption), safe_query_params(allowed_params).merge(sort_options), html_options) + link_to_content_update(h(caption), safe_query_params(allowed_params).merge(sort_options), html_options.merge(rel: :nofollow)) end # Returns a table header tag with a sort link for the named column diff --git a/frontend/src/app/features/work-packages/components/wp-table/sort-header/sort-header.directive.html b/frontend/src/app/features/work-packages/components/wp-table/sort-header/sort-header.directive.html index 6ebe2dce1a3d..3be2f295f231 100644 --- a/frontend/src/app/features/work-packages/components/wp-table/sort-header/sort-header.directive.html +++ b/frontend/src/app/features/work-packages/components/wp-table/sort-header/sort-header.directive.html @@ -17,7 +17,8 @@ [ngClass]="[directionClass && 'sort', directionClass]" lang-attribute lang="{{locale}}" - id="{{ headerColumn.id }}">{{headerColumn.name}} + id="{{ headerColumn.id }}" + rel="nofollow">{{headerColumn.name}} {{headerColumn.name}} {{headerColumn.name}} + id="{{ headerColumn.id }}" + rel="nofollow">{{headerColumn.name}} {{headerColumn.name}} diff --git a/spec/helpers/sort_helper_spec.rb b/spec/helpers/sort_helper_spec.rb index 768f5253ec72..29d1ed8ff6d0 100644 --- a/spec/helpers/sort_helper_spec.rb +++ b/spec/helpers/sort_helper_spec.rb @@ -148,6 +148,7 @@ def session; @session ||= {}; end
Id
@@ -166,6 +167,7 @@ def session; @session ||= {}; end
Id
@@ -186,6 +188,7 @@ def session; @session ||= {}; end
Id
@@ -216,6 +219,7 @@ def session; @session ||= {}; end
Id
@@ -235,6 +239,7 @@ def session; @session ||= {}; end
Id
From 20a7236f6ef946a0c931326a4928801a84b35c82 Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Sat, 17 Aug 2024 03:13:25 +0000 Subject: [PATCH 08/26] update locales from crowdin [ci skip] --- config/locales/crowdin/fr.yml | 10 +++++----- config/locales/crowdin/js-fr.yml | 2 +- config/locales/crowdin/js-ro.yml | 2 +- modules/backlogs/config/locales/crowdin/ro.yml | 2 +- modules/bim/config/locales/crowdin/ar.yml | 8 ++++---- modules/calendar/config/locales/crowdin/ar.yml | 2 +- modules/calendar/config/locales/crowdin/js-ar.yml | 6 +++--- modules/documents/config/locales/crowdin/ro.yml | 4 ++-- modules/grids/config/locales/crowdin/js-ro.yml | 2 +- modules/reporting/config/locales/crowdin/ro.yml | 2 +- modules/storages/config/locales/crowdin/fr.yml | 4 ++-- modules/team_planner/config/locales/crowdin/fr.yml | 2 +- modules/team_planner/config/locales/crowdin/js-fr.yml | 4 ++-- modules/team_planner/config/locales/crowdin/js-ro.yml | 4 ++-- 14 files changed, 27 insertions(+), 27 deletions(-) diff --git a/config/locales/crowdin/fr.yml b/config/locales/crowdin/fr.yml index dcdd5a2ea713..8d016ac34b6e 100644 --- a/config/locales/crowdin/fr.yml +++ b/config/locales/crowdin/fr.yml @@ -67,7 +67,7 @@ fr: text: "Voulez-vous vraiment supprimer le jeton actuellement utilisé pour l'édition Entreprise ?" title: "Supprimer le jeton" replace_token: "Remplacer votre licence actuelle" - order: "Commander l'édition Entreprise autohebergée" + order: "Commander l'édition Entreprise auto-hébergée" paste: "Coller votre jeton de support pour la version Entreprise" required_for_feature: "Cet add-on n'est disponible qu'avec un jeton de support actif pour la version Entreprise." enterprise_link: "Pour plus d'informations, cliquez ici." @@ -387,8 +387,8 @@ fr: my: access_token: create_dialog: - header: The %{type} token has been generated - warning: Note that this is the only time you will see this token, make sure to copy it now. + header: Le jeton %{type} a été généré + warning: Notez que c'est la seule fois que vous verrez ce jeton, assurez-vous de le copier maintenant. errors: token_name_blank: "Veuillez fournir un nom de jeton d'API" token_name_in_use: "Ce nom de jeton d'API est déjà utilisé, veuillez en choisir un autre" @@ -1152,8 +1152,8 @@ fr: other: "Rôles" status: "Statut du lot de travaux" token/api: - one: Access token - other: Access tokens + one: Jeton d'accès + other: Jetons d’accès type: "Type" user: "Utilisateur" version: "Version" diff --git a/config/locales/crowdin/js-fr.yml b/config/locales/crowdin/js-fr.yml index ab9faf2f647d..2a1dcb33c8d7 100644 --- a/config/locales/crowdin/js-fr.yml +++ b/config/locales/crowdin/js-fr.yml @@ -369,7 +369,7 @@ fr: "14_4": standard: new_features_html: > - The release contains various new features and improvements, such as:
  • Dark mode option in personal settings
  • Separate permissions for viewing and editing on project attributes
  • Improved status-based progress reporting
  • Connection validation for Nextcloud storages
  • More filter options for project lists
+ La version contient diverses nouvelles fonctionnalités et améliorations, telles que :
  • Option de mode sombre dans les paramètres personnels
  • Séparation des permissions pour la visualisation et l'édition des attributs du projet
  • Amélioration de l'état de progression basé sur le statut
  • Validation de la connexion pour les stockages Nextcloud
  • Plus d'options de filtre pour les listes de projets
ical_sharing_modal: title: "S'abonner au calendrier" inital_setup_error_message: "Une erreur est survenue lors de la récupération des données." diff --git a/config/locales/crowdin/js-ro.yml b/config/locales/crowdin/js-ro.yml index 89ed0a993963..a74dfd78b027 100644 --- a/config/locales/crowdin/js-ro.yml +++ b/config/locales/crowdin/js-ro.yml @@ -900,7 +900,7 @@ ro: share: "Distribuiți" selected_count: "%{count} selected" selection: - mixed: "Mixed" + mixed: "Amestecat" work_packages: bulk_actions: move: "Modificare identificator proiect" diff --git a/modules/backlogs/config/locales/crowdin/ro.yml b/modules/backlogs/config/locales/crowdin/ro.yml index 19afc384d522..c2a5b4cd27dd 100644 --- a/modules/backlogs/config/locales/crowdin/ro.yml +++ b/modules/backlogs/config/locales/crowdin/ro.yml @@ -65,7 +65,7 @@ ro: rebuild: "Reconstruiți" rebuild_positions: "Reconstruiți" remaining_hours: "Muncă rămasă" - remaining_hours_ideal: "Remaining work (ideal)" + remaining_hours_ideal: "Munca rămasă (ideal)" show_burndown_chart: "Size Chart" story: "Articol" story_points: "Puncte" diff --git a/modules/bim/config/locales/crowdin/ar.yml b/modules/bim/config/locales/crowdin/ar.yml index ca14d5947ad0..11ca419ea133 100644 --- a/modules/bim/config/locales/crowdin/ar.yml +++ b/modules/bim/config/locales/crowdin/ar.yml @@ -22,7 +22,7 @@ ar: other: '%{count} BCF issues' bcf_xml: xml_file: 'BCF XML File' - import_title: 'Import' + import_title: 'استيراد' export: 'تصدير' import_update_comment: '(Updated in BCF import)' import_failed: 'Cannot import BCF file: %{error}' @@ -81,7 +81,7 @@ ar: attributes: bim/ifc_models/ifc_model: ifc_attachment: "IFC file" - is_default: "Default model" + is_default: "النموذج الافتراضي" attachments: "IFC file" errors: models: @@ -118,9 +118,9 @@ ar: no_results: "No IFC models have been uploaded in this project." conversion_status: label: 'Processing?' - pending: 'Pending' + pending: 'قيد الانتظار' processing: 'Processing' - completed: 'Completed' + completed: 'اكتمل' error: 'خطأ' processing_notice: processing_default: 'The following default IFC models are still being processed and are thus not available, yet:' diff --git a/modules/calendar/config/locales/crowdin/ar.yml b/modules/calendar/config/locales/crowdin/ar.yml index 8ed6288426f0..7dd63142a88f 100644 --- a/modules/calendar/config/locales/crowdin/ar.yml +++ b/modules/calendar/config/locales/crowdin/ar.yml @@ -6,7 +6,7 @@ ar: label_calendar: "التقويم" label_calendar_plural: "التقويمات" label_new_calendar: "تقويم جديد" - permission_view_calendar: "View calendars" + permission_view_calendar: "عرض التقويمات" permission_manage_calendars: "إدارة التقويمات" permission_share_calendars: "الاشتراك في iCalendar" project_module_calendar_view: "التقويمات" diff --git a/modules/calendar/config/locales/crowdin/js-ar.yml b/modules/calendar/config/locales/crowdin/js-ar.yml index 9de176368735..88dfdc52e32b 100644 --- a/modules/calendar/config/locales/crowdin/js-ar.yml +++ b/modules/calendar/config/locales/crowdin/js-ar.yml @@ -2,7 +2,7 @@ ar: js: calendar: - create_new: 'Create new calendar' + create_new: 'إنشاء تقويم جديد' title: 'التقويم' - too_many: 'There are %{count} work packages in total, but only %{max} can be shown.' - unsaved_title: 'Unnamed calendar' + too_many: 'هناك %{count} عمل إجمالاً، ولكن يمكن عرض %{max} فقط.' + unsaved_title: 'تقويم غير مسمى' diff --git a/modules/documents/config/locales/crowdin/ro.yml b/modules/documents/config/locales/crowdin/ro.yml index 04770c9b80e1..36c51c2b4068 100644 --- a/modules/documents/config/locales/crowdin/ro.yml +++ b/modules/documents/config/locales/crowdin/ro.yml @@ -21,8 +21,8 @@ #++ ro: plugin_openproject_documents: - name: "OpenProject Documents" - description: "An OpenProject plugin to allow creation of documents in projects." + name: "Documente OpenProject" + description: "Un plugin OpenProject pentru a permite crearea de documente în proiecte." activerecord: models: document: "Document" diff --git a/modules/grids/config/locales/crowdin/js-ro.yml b/modules/grids/config/locales/crowdin/js-ro.yml index d6116113862c..cc8c090cfe9f 100644 --- a/modules/grids/config/locales/crowdin/js-ro.yml +++ b/modules/grids/config/locales/crowdin/js-ro.yml @@ -8,7 +8,7 @@ ro: text: "Unele widgeturi, cum ar fi widgetul grafic al pachetului de lucru, sunt disponibile numai în ediția Enterprise." link: 'Ediția Enterprise.' widgets: - missing_permission: "You don't have the necessary permissions to view this widget." + missing_permission: "Nu ai drepturile necesare pentru a vizualiza acest widget." custom_text: title: 'Text customizat' documents: diff --git a/modules/reporting/config/locales/crowdin/ro.yml b/modules/reporting/config/locales/crowdin/ro.yml index ff24b95e8b64..454e5e82b7dd 100644 --- a/modules/reporting/config/locales/crowdin/ro.yml +++ b/modules/reporting/config/locales/crowdin/ro.yml @@ -47,7 +47,7 @@ ro: label_is_project_with_subprojects: "este (incluzând subproiecte)" label_work_package_attributes: "Atribute pachet de lucru" label_less: "<" - label_logged_by_reporting: "Logged by" + label_logged_by_reporting: "Logat ca" label_money: "Valoare monetară" label_month_reporting: "Lună (consumată)" label_new_report: "Raport de cost nou" diff --git a/modules/storages/config/locales/crowdin/fr.yml b/modules/storages/config/locales/crowdin/fr.yml index fdb0a5358aba..d76db41fdb24 100644 --- a/modules/storages/config/locales/crowdin/fr.yml +++ b/modules/storages/config/locales/crowdin/fr.yml @@ -111,7 +111,7 @@ fr: set_folders_permissions: permission_not_set: n'a pas pu définir les autorisations sur %{path}. error: Une erreur inattendue s'est produite. Veuillez vous assurer que votre instance Nextcloud est joignable et vérifiez les journaux des processus OpenProject pour obtenir plus d'informations. - group_does_not_exist: "%{group} does not exist. Check your Nextcloud instance configuration." + group_does_not_exist: "%{group} n'existe pas. Vérifiez la configuration de votre instance Nextcloud." insufficient_privileges: OpenProject n'a pas assez de privilèges pour ajouter %{user} au groupe %{group}. Vérifiez les paramètres de votre groupe dans Nextcloud. not_allowed: Nextcloud bloque la demande. unauthorized: OpenProject n'a pas pu se synchroniser avec Nextcloud. Veuillez vérifier votre espace de stockage et la configuration de Nextcloud. @@ -140,7 +140,7 @@ fr: complete_without_setup: Compléter sans done_complete_setup: Configuration terminée. done_continue: Terminé, continuer - open_storage: Open file storage + open_storage: Ouvrir le stockage de fichiers replace_oauth_application: Remplacer OAuth OpenProject replace_oauth_client: Remplacer OAuth %{provider_type} save_and_continue: Sauvegarder et poursuivre diff --git a/modules/team_planner/config/locales/crowdin/fr.yml b/modules/team_planner/config/locales/crowdin/fr.yml index 14ced62ed092..a9bd27c75936 100644 --- a/modules/team_planner/config/locales/crowdin/fr.yml +++ b/modules/team_planner/config/locales/crowdin/fr.yml @@ -1,7 +1,7 @@ #English strings go here fr: plugin_openproject_team_planner: - name: "Planificateur de l'équipe OpenProject" + name: "Planificateur d'équipe OpenProject" description: "Fournit des vues du planificateur d'équipe." permission_view_team_planner: "Voir le planificateur d'équipe" permission_manage_team_planner: "Gérer le planificateur d'équipe" diff --git a/modules/team_planner/config/locales/crowdin/js-fr.yml b/modules/team_planner/config/locales/crowdin/js-fr.yml index f22cdb36ba4c..666bed3adabe 100644 --- a/modules/team_planner/config/locales/crowdin/js-fr.yml +++ b/modules/team_planner/config/locales/crowdin/js-fr.yml @@ -8,8 +8,8 @@ fr: create_title: 'Créer un nouveau planificateur d''équipe' unsaved_title: 'Planificateur d''équipe sans nom' no_data: 'Ajouter des personnes pour configurer votre planificateur d''équipe.' - add_assignee: 'Assigner à quelqu''un' - remove_assignee: 'Supprimer l''assignation' + add_assignee: 'Ajouter quelqu''un' + remove_assignee: 'Retiré l''assigné' two_weeks: '2 semaines' one_week: '1 semaine' four_weeks: '4 semaines' diff --git a/modules/team_planner/config/locales/crowdin/js-ro.yml b/modules/team_planner/config/locales/crowdin/js-ro.yml index 3a01cf765381..a4a811afb0d5 100644 --- a/modules/team_planner/config/locales/crowdin/js-ro.yml +++ b/modules/team_planner/config/locales/crowdin/js-ro.yml @@ -12,8 +12,8 @@ ro: remove_assignee: 'Înlăturați responsabilul' two_weeks: '2-săptămână' one_week: '1-săptămână' - four_weeks: '4-week' - eight_weeks: '8-week' + four_weeks: '4 săptămâni' + eight_weeks: '8 săptămâni' work_week: 'Săptămână de lucru' today: 'Azi' drag_here_to_remove: 'Trageți aici pentru a elimina responsabilul și a începe și a termina datele.' From b823b01277619cd429fa73486e3eeb29c5471aae Mon Sep 17 00:00:00 2001 From: Maya Berdygylyjova Date: Mon, 19 Aug 2024 10:44:10 +0200 Subject: [PATCH 09/26] fixed typos in docs (#16467) --- docs/user-guide/meetings/dynamic-meetings/README.md | 3 ++- docs/user-guide/work-packages/edit-work-package/README.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/meetings/dynamic-meetings/README.md b/docs/user-guide/meetings/dynamic-meetings/README.md index b39fd400a34b..83ca9859e16e 100644 --- a/docs/user-guide/meetings/dynamic-meetings/README.md +++ b/docs/user-guide/meetings/dynamic-meetings/README.md @@ -10,7 +10,8 @@ keywords: meetings, dynamic meetings, agenda, minutes Introduced in OpenProject 13.1, dynamic meetings offer easier meeting management, improved agenda creation and the ability to link work packages to meetings and vice-versa. -> **Note:** The **Meetings module needs to be activated** in the [Project Settings](../../projects/project-settings/modules/) to be able to create and edit meetings. +> [!NOTE] +> The **Meetings module needs to be activated** in the [Project Settings](../../projects/project-settings/modules/) to be able to create and edit meetings. | Topic | Content | | ------------------------------------------------------------ | ---------------------------------------------------------- | diff --git a/docs/user-guide/work-packages/edit-work-package/README.md b/docs/user-guide/work-packages/edit-work-package/README.md index 0bf087e511cc..98707e74776e 100644 --- a/docs/user-guide/work-packages/edit-work-package/README.md +++ b/docs/user-guide/work-packages/edit-work-package/README.md @@ -35,7 +35,7 @@ The green message on top of the work package indicates a successful update. All changes of a work package are documented in the work package tab [Activity](../../../getting-started/work-packages-introduction/#activity-of-work-packages). -> [! NOTE] +> [!NOTE] > There is no possibility to undo changes to work packages by using Ctrl+Z combination. ### How to assign a team member to a work package From ce2219215bb4cf39372ca330fd1cb5f511bb60be Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Tue, 20 Aug 2024 03:08:18 +0000 Subject: [PATCH 10/26] update locales from crowdin [ci skip] --- config/locales/crowdin/zh-TW.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index de8c7a792af4..f405d71da03c 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -2596,7 +2596,7 @@ zh-TW: notice_email_sent: "一封郵件被傳送給 %{value}" notice_failed_to_save_work_packages: "%{total} 個選取的工作項目中的 %{count} 儲存失敗: %{ids}" notice_failed_to_save_members: "無法保存成員: %{errors}。" - notice_deletion_scheduled: "刪除已安排並且將異步執行。" + notice_deletion_scheduled: "已安排排程進行刪除。" notice_file_not_found: "您試圖存取的頁面不存在或已被移除。" notice_forced_logout: "由於超過 %{ttl_time} 分鐘沒有操作,您已被自動登出。" notice_internal_server_error: "你試圖前往的頁面發生一個錯誤。如果你一直遇到問題,請聯絡你的 %{app_title} 管理員以得到協助!" From b88ce396d5d91c2c9bb787aef1955ea786853453 Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Wed, 21 Aug 2024 03:15:45 +0000 Subject: [PATCH 11/26] update locales from crowdin [ci skip] --- config/locales/crowdin/js-ro.yml | 14 +-- config/locales/crowdin/js-zh-TW.yml | 6 +- config/locales/crowdin/ro.seeders.yml | 4 +- config/locales/crowdin/ro.yml | 86 +++++++++---------- config/locales/crowdin/zh-TW.yml | 20 ++--- .../backlogs/config/locales/crowdin/ro.yml | 4 +- .../bim/config/locales/crowdin/bg.seeders.yml | 76 ++++++++-------- .../bim/config/locales/crowdin/fr.seeders.yml | 4 +- .../bim/config/locales/crowdin/ro.seeders.yml | 2 +- modules/boards/config/locales/crowdin/ro.yml | 8 +- modules/budgets/config/locales/crowdin/ro.yml | 6 +- modules/costs/config/locales/crowdin/ro.yml | 4 +- .../gantt/config/locales/crowdin/js-bg.yml | 2 +- .../config/locales/crowdin/js-ro.yml | 2 +- .../grids/config/locales/crowdin/js-ro.yml | 2 +- .../ldap_groups/config/locales/crowdin/ro.yml | 2 +- .../config/locales/crowdin/zh-TW.yml | 20 ++--- modules/meeting/config/locales/crowdin/ro.yml | 22 ++--- .../config/locales/crowdin/js-ro.yml | 2 +- .../overviews/config/locales/crowdin/ro.yml | 4 +- .../recaptcha/config/locales/crowdin/ro.yml | 2 +- 21 files changed, 146 insertions(+), 146 deletions(-) diff --git a/config/locales/crowdin/js-ro.yml b/config/locales/crowdin/js-ro.yml index a74dfd78b027..0086d2554976 100644 --- a/config/locales/crowdin/js-ro.yml +++ b/config/locales/crowdin/js-ro.yml @@ -77,7 +77,7 @@ ro: button_copy_to_other_project: "Copiază în alt proiect" button_custom-fields: "Câmpuri personalizate" button_delete: "Șterge" - button_delete_watcher: "Şterge observator" + button_delete_watcher: "Șterge observator" button_details_view: "Vizualizare detaliată" button_duplicate: "Duplicare" button_edit: "Editare" @@ -377,7 +377,7 @@ ro: token_name_label: "Where will you be using this?" token_name_placeholder: 'Type a name, e.g. "Phone"' 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.' - copy_url_label: "Copiază URL-ul" + copy_url_label: "Copiază URL" ical_generation_error_text: "An error occured while generating the calendar URL." success_message: 'The URL "%{name}" was successfully copied to your clipboard. Paste it in your calendar client to complete the subscription.' label_activate: "Activare" @@ -558,7 +558,7 @@ ro: label_formattable_attachment_hint: "Atașați și legați fișiere prin plasarea în acest câmp sau prin lipirea din clipboard." label_remove_file: "Ştergere %{fileName}" label_remove_watcher: "Eliminare observator %{name}" - label_remove_all_files: Şterge toate fişierele + label_remove_all_files: Șterge toate fișierele label_add_description: "Adăugați o descriere pentru %{file}" label_upload_notification: "Se încarcă fișierele..." label_work_package_upload_notification: "Fişierele pentru pachetul de lucru #%{id}: %{subject} sunt în curs de încărcare" @@ -768,7 +768,7 @@ ro: label: "Întrerupeți temporar memento-urile zilnice prin e-mail" first_day: "Prima zi" last_day: "Ultima zi" - text_are_you_sure: "Sunteți sigur?" + text_are_you_sure: "Ești sigur?" text_data_lost: "Toate datele introduse vor fi pierdute." text_user_wrote: "%{value} a scris:" types: @@ -960,7 +960,7 @@ ro: header_with_parent: "Nou %{type} (copilul %{parent_type} #%{id})" button: "Creare" copy: - title: "Copiză pachet de lucru" + title: "Copiază pachet de lucru" hierarchy: show: "Afișați modul ierarhic" hide: "Ascundeți modul ierarhic" @@ -1103,7 +1103,7 @@ ro: relation_filters: filter_work_packages_by_relation_type: "Filtrare pachete de lucru" tabs: - overview: Vedere de ansamblu + overview: Prezentare generală activity: Activitate relations: Relații watchers: Observatori @@ -1134,7 +1134,7 @@ ro: search_query_label: "Căutați vizualizări salvate" modals: label_name: "Nume" - label_delete_page: "Şterge pagina curentă" + label_delete_page: "Șterge pagina curentă" button_apply: "Salvare" button_save: "Salvare" button_submit: "Trimitere" diff --git a/config/locales/crowdin/js-zh-TW.yml b/config/locales/crowdin/js-zh-TW.yml index 44537da4adbd..58e4b757239a 100644 --- a/config/locales/crowdin/js-zh-TW.yml +++ b/config/locales/crowdin/js-zh-TW.yml @@ -849,7 +849,7 @@ zh-TW: abort: "捨棄" relations_autocomplete: placeholder: "搜尋" - parent_placeholder: "選擇新父級,或按 Escape 鍵來取消。" + parent_placeholder: "選擇新上層工作項目,或按 Escape 鍵來取消。" autocompleter: placeholder: "搜尋" notFoundText: "找不到任何項目" @@ -1001,7 +1001,7 @@ zh-TW: subproject: "子專案" title: "標題" type: "類型" - updatedAt: "更新於" + updatedAt: "最後更新" versionName: "版本" version: "版本" work: "工時" @@ -1017,7 +1017,7 @@ zh-TW: overdue: "逾期" summary: "總覽" shared_with_users: "分配給成員" - shared_with_me: "共享給我的" + shared_with_me: "我共用之工作項目" jump_marks: pagination: "跳轉至表格分頁" label_pagination: "點擊此處跳過工作項目表並轉到分頁" diff --git a/config/locales/crowdin/ro.seeders.yml b/config/locales/crowdin/ro.seeders.yml index 14c0e6f3ea9e..d30a1063be4c 100644 --- a/config/locales/crowdin/ro.seeders.yml +++ b/config/locales/crowdin/ro.seeders.yml @@ -107,7 +107,7 @@ ro: name: Tablă de bază lists: item_0: - name: Listă dorinţe + name: Listă dorințe item_1: name: Listă scurtă item_2: @@ -123,7 +123,7 @@ ro: name: Welcome item_1: options: - name: Noţiuni de bază + name: Începe text: | We are glad you joined! We suggest to try a few things to get started in OpenProject. diff --git a/config/locales/crowdin/ro.yml b/config/locales/crowdin/ro.yml index 0af7db23e9a3..77da7fbfc3ed 100644 --- a/config/locales/crowdin/ro.yml +++ b/config/locales/crowdin/ro.yml @@ -184,7 +184,7 @@ ro: label_new_color: "Culoare nouă" label_edit_color: "Editare culoare" label_no_color: "Nicio culoare" - label_properties: "Proprietăţi" + label_properties: "Proprietăți" label_really_delete_color: > Sunteţi sigur că doriţi să ştergeţi următoarea culoare? Tipurile care folosesc această culoare nu vor fi şterse. custom_actions: @@ -242,8 +242,8 @@ ro: projects: copy: #Contains custom strings for options when copying a project that cannot be found elsewhere. - members: "Membri ai proiectului" - overviews: "Prezentare generală a proiectului" + members: "Membrii proiectului" + overviews: "Prezentare generală proiect" queries: "Pachete de lucru: vizualizări salvate" wiki_page_attachments: "Pagini wiki: atașamente" work_package_attachments: "Pachete de lucru: anexe" @@ -608,7 +608,7 @@ ro: changeset: repository: "Repo" color: - hexcode: "Cod hexa" + hexcode: "Cod hex" comment: commented: "Cu comentarii" #an object that this comment belongs to custom_action: @@ -668,7 +668,7 @@ ro: hexcode: Cod hexa project: active_value: - true: "nearhivat" + true: "dezarhivat" false: "arhivat" identifier: "Identificator" latest_activity_at: "Ultima activitate la" @@ -691,12 +691,12 @@ ro: templated: "Proiect șablon" templated_value: true: "marcat ca șablon" - false: "nemarcat ca șablon" + false: "demarcat ca șablon" types: "Tipuri" versions: "Versiuni" work_packages: "Pachete de lucru" project_custom_field: - custom_field_section: Sectiune + custom_field_section: Secțiune query: column_names: "Coloane" relations_to_type_column: "Relații cu %{type}" @@ -1110,9 +1110,9 @@ ro: status: invalid_on_create: "nu este un statut valabil pentru utilizatorii noi." ldap_auth_source: - error_not_found: "%s nu a fost găsit" + error_not_found: "nu a fost găsit" auth_source: - error_not_found: "%s nu a fost găsit" + error_not_found: "nu a fost găsit" member: principal_blank: "Trebuie să alegeţi cel puţin un utilizator sau grup." role_blank: "trebuie să fie atribuite." @@ -1218,10 +1218,10 @@ ro: changeset: "Seturi de modificări" message: "Forumuri" news: "Noutăţi" - project_attribute: "Atributele proiectului" + project_attribute: "Atribute proiect" subproject: "Include subproiecte" - time_entry: "Timp alocat" - wiki_edit: "Spaţiu" + time_entry: "Spent time" + wiki_edit: "Wiki" work_package: "Pachete de lucru" #common attributes of all models attributes: @@ -1240,14 +1240,14 @@ ro: created_at: "Creat pe" custom_options: "Valori posibile" custom_values: "Câmpuri personalizate" - date: "Dată" + date: "Data" default_columns: "Coloane implicite" description: "Descriere" derived_due_date: "Data finală derivată" derived_estimated_hours: "Total work" derived_start_date: "fără dată început" display_sums: "Afişare totaluri" - due_date: "Data de finalizare" + due_date: "Data finalizare" estimated_hours: "Work" estimated_time: "Work" expires_at: "Expiră la" @@ -1318,7 +1318,7 @@ ro: button_add_watcher: "Adăugare observator" button_annotate: "Adnotare" button_apply: "Salvare" - button_archive: "Arhivare" + button_archive: "Arhivează" button_back: "Înapoi" button_cancel: "Anulare" button_change: "Modificare" @@ -1337,7 +1337,7 @@ ro: button_copy_and_follow: "Copiere și continuare" button_create: "Creare" button_create_and_continue: "Creare și continuare" - button_delete: "Ștergere" + button_delete: "Șterge" button_decline: "Refuză" button_delete_watcher: "Ștergere observator %{name}" button_download: "Descărcare" @@ -1383,11 +1383,11 @@ ro: button_manage_menu_entry: "Configurare meniu" button_add_menu_entry: "Adăugare meniu" button_configure_menu_entry: "Configurare meniu" - button_delete_menu_entry: "Ștergere meniu" + button_delete_menu_entry: "Șterge element meniu" button_view_shared_work_packages: "Vezi pachetele de lucru partajate" button_manage_roles: "Gestionează rolurile" button_remove_member: "Elimină membru" - button_remove_member_and_shares: "Elimină membrul și partajările" + button_remove_member_and_shares: "Elimină membru și partajări" button_revoke_work_package_shares: "Revoke work package shares" button_revoke_access: "Revocă acces" button_revoke_all: "Revocă tot" @@ -1483,17 +1483,17 @@ ro: datetime: distance_in_words: about_x_hours: - one: "cam o oră" - few: "cam %{count} ore" - other: "cam %{count} ore" + one: "aproximativ o oră" + few: "aproximativ %{count} ore" + other: "aproximativ %{count} ore" about_x_months: - one: "cam o lună" - few: "cam %{count} luni" - other: "cam %{count} luni" + one: "aproximativ o lună" + few: "aproximativ %{count} luni" + other: "aproximativ %{count} luni" about_x_years: - one: "cam un an" - few: "cam %{count} ani" - other: "cam %{count} ani" + one: "aproximativ un an" + few: "aproximativ %{count} ani" + other: "aproximativ %{count} ani" almost_x_years: one: "aproape un an" few: "aproape %{count} ani" @@ -1520,20 +1520,20 @@ ro: few: "%{count} minute" other: "%{count} minute" x_minutes_abbreviated: - one: "1 minut" - few: "%{count} mins" - other: "%{count} minute" + one: "1 min" + few: "%{count} min" + other: "%{count} min" x_hours: one: "1 oră" few: "%{count} ore" other: "%{count} ore" x_hours_abbreviated: - one: "1 hr" - few: "%{count} hrs" - other: "%{count} ore" + one: "1 h" + few: "%{count} h" + other: "%{count} h" x_weeks: - one: "1 week" - few: "%{count} weeks" + one: "1 săptămână" + few: "%{count} săptămâni" other: "%{count} săptămâni" x_months: one: "o lună" @@ -1541,7 +1541,7 @@ ro: other: "%{count} luni" x_years: one: "1 an" - few: "%{count} years" + few: "%{count} ani" other: "%{count} ani" x_seconds: one: "o secundă" @@ -1550,7 +1550,7 @@ ro: x_seconds_abbreviated: one: "1 s" few: "%{count} s" - other: "%{count} secunde" + other: "%{count} s" units: hour: one: "oră" @@ -2011,7 +2011,7 @@ ro: label_duplicated_by: "dublat de" label_duplicate: "duplicat" label_duplicates: "dublează" - label_edit: "Editare" + label_edit: "Editează" label_edit_x: "Editare: %{x}" label_enable_multi_select: "Comutare selecție multiplă" label_enabled_project_custom_fields: "Câmpuri personalizate activate" @@ -2266,7 +2266,7 @@ ro: label_project_storage_plural: "File Storages" label_project_storage_project_folder: "File Storages: Project folders" label_projects_disk_usage_information: "%{count} projects using %{used_disk_space} disk space" - label_project_view_all: "Vizualizare toate proiectele" + label_project_view_all: "Vizualizează toate proiectele" label_project_show_details: "Arată detaliile proietului" label_project_hide_details: "Ascunde detaliile proiectului" label_public_projects: "Proiecte publice" @@ -2393,7 +2393,7 @@ ro: label_version_plural: "Versiuni" label_version_sharing_descendants: "Cu subproiecte" label_version_sharing_hierarchy: "Cu ierarhia de proiect" - label_version_sharing_none: "Nu este publică" + label_version_sharing_none: "Nepartajat" label_version_sharing_system: "Cu toate proiectele" label_version_sharing_tree: "Cu arborele proiectelor" label_videos: "Videoclipuri" @@ -2700,7 +2700,7 @@ ro: notice_successful_update_custom_fields_added_to_type: | Actualizare reușită. Câmpurile personalizate active sunt activate automat pentru proiectele asociate de acest tip. - notice_to_many_principals_to_display: "Există prea multe rezultate. Restrângeți căutarea prin tastarea numelui noului membru (sau grup)." + notice_to_many_principals_to_display: "Există prea multe rezultate. Restrânge căutarea prin tastarea numelui noului membru (sau grup)." notice_user_missing_authentication_method: Utilizatorul nu a ales încă o parolă sau un alt mod de autentificare. notice_user_invitation_resent: A fost trimisă o invitație către %{email}. present_access_key_value: "%{key_name} tău/ta este: %{value}" @@ -2732,7 +2732,7 @@ ro: mb: "MB" tb: "TB" onboarding: - heading_getting_started: "Obțineți o prezentare generală" + heading_getting_started: "Urmărește prezentarea generală" text_getting_started_description: "Obțineți o imagine de ansamblu rapidă a gestionării proiectelor și a colaborării în echipă cu OpenProject. Puteți reporni acest videoclip din meniul de ajutor." welcome: "Bun venit la %{app_title}" select_language: "Vă rugăm să selectați limba dvs" @@ -2850,7 +2850,7 @@ ro: copying: > Proiectul dumneavoastră este creat din proiectul șablon selectat. Veți fi notificat prin e-mail imediat ce proiectul va fi disponibil. use_template: "Utilizează șablon" - make_template: "Setați ca șablon" + make_template: "Setează ca șablon" remove_from_templates: "Eliminați din șabloane" archive: are_you_sure: "Sunteţi sigur că doriţi să arhivaţi proiectul '%{name}'?" diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index f405d71da03c..527cf20bdf35 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -369,7 +369,7 @@ zh-TW: other: "%{all_shared_work_packages_link} 已與該組共享。" shared_with_permission_html: other: "只有 %{shared_work_packages_link} 共享了 %{shared_role_name} 權限。" - revoke_all_or_with_role: "您想撤銷對所有共享工作包的訪問權限,還是只撤銷對具有 %{shared_role_name} 權限的工作包的訪問權限?" + revoke_all_or_with_role: "您想撤銷對所有共用工作項目的存取權限,還是只撤銷 %{shared_role_name} 的相關權限?" will_not_affect_inherited_shares: "(這不會影響與其群組共用的工作包)。" cannot_remove_inherited: "無法刪除通過群組共享的工作包共享。" cannot_remove_inherited_with_role: "與角色 %{shared_role_name} 共享的工作包是通過群組共享的,不能刪除。" @@ -493,7 +493,7 @@ zh-TW: 所選顏色區分甘特圖或工作項目中的不同類型。因此建議使用濃烈的顏色。 versions: overview: - work_packages_in_archived_projects: "該版本與歸檔項目共享,這些項目仍然有分配給此版本的工作包。雖然這些工作包被計算在內,但不會顯示在鏈接視圖中。" + work_packages_in_archived_projects: "該版本與歸檔項目共用,這些專案仍然有分配給此版本的工作項目。雖然這些工作項目被計算在內,但不會顯示在視圖中。" no_results_title_text: 目前沒有分配給此版本的工作項目。 wiki: page_not_editable_index: 本頁不存在,重新導至wiki目錄頁。 @@ -761,14 +761,14 @@ zh-TW: true: "包含非工作日" notify: "通知" #used in custom actions parent: "上層目錄:" - parent_issue: "上層目錄:" - parent_work_package: "上層目錄:" + parent_issue: "上層工作項目:" + parent_work_package: "上層工作項目:" priority: "優先等級" progress: "完成度(%)" readonly: "唯讀" remaining_hours: "剩餘工作" remaining_time: "剩餘工作" - shared_with_users: "共用對象" + shared_with_users: "參與成員" schedule_manually: "手動排程" spent_hours: "耗時" spent_time: "耗時" @@ -1033,7 +1033,7 @@ zh-TW: not_available_for_milestones: "不適用於里程碑類型的工作項目。" cannot_be_null: "無法設置為 null,因為開始日期和結束日期已知。" parent: - cannot_be_milestone: "不可以成為一個里程碑" + cannot_be_milestone: "不能是里程碑" cannot_be_self_assigned: "不能指派給自己" cannot_be_in_another_project: "不能在另一個專案中" not_a_valid_parent: "不正確。" @@ -1530,8 +1530,8 @@ zh-TW: error_can_not_archive_project: "這個專案無法封存:%{errors}" error_can_not_delete_entry: "無法刪除項目" error_can_not_delete_custom_field: "無法刪除客製欄位" - error_can_not_delete_in_use_archived_undisclosed: "歸檔專案中也有工作套件。您需要請管理員執行刪除,才能看到哪些專案會受到影響。" - error_can_not_delete_in_use_archived_work_packages: "已歸檔的專案中也有工作套件。您需要先重新啟動下列專案,才能變更各工作套件的屬性: %{archived_projects_urls}" + error_can_not_delete_in_use_archived_undisclosed: "歸檔專案中也有工作項目。您需要請管理員執行刪除,才能看到哪些專案會受到影響。" + error_can_not_delete_in_use_archived_work_packages: "已歸檔的專案中也有工作項目。您需要先重新啟動下列專案,才能變更各工作項目屬性: %{archived_projects_urls}" error_can_not_delete_type: explanation: '此類型包含工作套件,且無法刪除。您可以在此檢視中看到所有受影響的工作套件。' error_can_not_delete_standard_type: "標準類型無法刪除" @@ -2775,7 +2775,7 @@ zh-TW: make_template: "設為範本" remove_from_templates: "從範本中移除" archive: - are_you_sure: "是否確定要 archive 專案 '%{name}'?" + are_you_sure: "是否確定要封存專案 '%{name}'?" archived: "封存" count: zero: "0 個專案" @@ -3047,7 +3047,7 @@ zh-TW: setting_welcome_title: "歡迎區塊標題" setting_welcome_on_homescreen: "在主頁面上顯示歡迎區塊" setting_work_package_list_default_highlighting_mode: "預設顯示模式" - setting_work_package_list_default_highlighted_attributes: "預設強調的屬性" + setting_work_package_list_default_highlighted_attributes: "預設顯眼屬性" setting_working_days: "工作日" settings: attachments: diff --git a/modules/backlogs/config/locales/crowdin/ro.yml b/modules/backlogs/config/locales/crowdin/ro.yml index c2a5b4cd27dd..dc06ee404cd4 100644 --- a/modules/backlogs/config/locales/crowdin/ro.yml +++ b/modules/backlogs/config/locales/crowdin/ro.yml @@ -26,7 +26,7 @@ ro: activerecord: attributes: work_package: - position: "Poziţie" + position: "Poziție" story_points: "Puncte" backlogs_work_package_type: "Tipul de restante" errors: @@ -61,7 +61,7 @@ ro: points: "Puncte" positions_could_not_be_rebuilt: "Pozițiile nu au putut fi reconstruite." positions_rebuilt_successfully: "Toate elementele au fost șterse cu succes" - properties: "Proprietăţi" + properties: "Proprietăți" rebuild: "Reconstruiți" rebuild_positions: "Reconstruiți" remaining_hours: "Muncă rămasă" diff --git a/modules/bim/config/locales/crowdin/bg.seeders.yml b/modules/bim/config/locales/crowdin/bg.seeders.yml index 689ec78441a6..4cce05caa17b 100644 --- a/modules/bim/config/locales/crowdin/bg.seeders.yml +++ b/modules/bim/config/locales/crowdin/bg.seeders.yml @@ -13,14 +13,14 @@ bg: item_2: name: Висок item_3: - name: Critical + name: Критичен statuses: item_0: name: Нов item_1: name: В изпълнение item_2: - name: Resolved + name: Разрешен item_3: name: Затворен time_entry_activities: @@ -40,14 +40,14 @@ bg: item_3: name: Проблем item_4: - name: Remark + name: Бележки item_5: - name: Request + name: Заявка item_6: - name: Clash + name: Сблъсък global_queries: item_0: - name: 'Embedded table: Children' + name: 'Вградена таблица: Деца' type_configuration: item_0: form_configuration: @@ -55,23 +55,23 @@ bg: group_name: Деца groups: item_0: - name: Architects + name: Архитекти item_1: - name: BIM Coordinators + name: БИМ Кординатори item_2: - name: BIM Managers + name: Бим Мениджъри item_3: - name: BIM Modellers + name: БИМ Моделисти item_4: - name: Lead BIM Coordinators + name: Водещи БИМ координатори item_5: - name: MEP Engineers + name: МЕП инженери item_6: - name: Planners + name: Планьри item_7: - name: Structural Engineers + name: Структурни инженери welcome: - title: Welcome to OpenProject BIM edition! + title: Добре дошли в изданието OpenProject БИМ! text: | Checkout the demo projects to get started with some examples. @@ -101,21 +101,21 @@ bg: item_0: Category 1 (to be changed in Project settings) queries: item_0: - name: Project plan + name: План на проекта item_1: - name: Milestones + name: Етап item_2: - name: Tasks + name: Задачи item_3: name: Екипен плановик boards: bcf: - name: Simple drag'n drop workflow + name: Прост работен процес с плъзгане и пускане project-overview: widgets: item_0: options: - name: Welcome + name: Добре дошли item_1: options: name: Първи стъпки @@ -147,34 +147,34 @@ bg: name: Работни пакети item_6: options: - name: Milestones + name: Етапи demo-planning-constructing-project: - name: "(Demo) Planning & constructing" - status_explanation: All tasks are on schedule. The people involved know their tasks. The system is completely set up. - description: This is a short summary of the goals of this demo planning and constructing project. + name: "(Демо) Планиране и конструиране" + status_explanation: Всички задачи са по график. Участниците си знаят задачите. Системата е напълно настроена. + description: Това е кратко резюме на целите на този демонстрационен проект за планиране и конструиране. news: item_0: - title: Welcome to your demo project + title: Добре дошли във вашия демонстрационен проект summary: | - We are glad you joined. - In this module you can communicate project news to your team members. - description: The actual news + Радваме се, че се присъединихте. + В този модул можете да съобщавате новини за проекта на членовете на вашия екип. + description: Актуалните новини categories: - item_0: Category 1 (to be changed in Project settings) + item_0: Категория 1 (да се промени в настройките на проекта) queries: item_0: - name: Project plan + name: План на проекта item_1: - name: Milestones + name: Етапи item_2: - name: Tasks + name: Задачи item_3: name: Екипен плановик project-overview: widgets: item_0: options: - name: Welcome + name: Добре дошли item_1: options: name: Първи стъпки @@ -202,20 +202,20 @@ bg: name: Работни пакети item_6: options: - name: Milestones + name: Етапи work_packages: item_0: - subject: Project kick off construction project + subject: Проект за стартиране на строителен проект description: |- The project kick off initializes the start of the project in your company. Everybody being part of this project should be invited to the kick off for a first briefing. The next step could be checking out the timetable and adjusting the appointments, by looking at the [Gantt chart]({{opSetting:base_url}}/projects/demo-construction-project/work_packages?query_props=%7B%22c%22%3A%5B%22id%22%2C%22subject%22%2C%22startDate%22%2C%22dueDate%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22weeks%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%7B%22n%22%3A%22status%22%2C%22o%22%3A%22o%22%2C%22v%22%3A%5B%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%7D). item_1: - subject: Basic evaluation + subject: Основна оценка description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: - subject: Gathering first project information + subject: Събиране на първа информация за проекта description: |- ## Goal @@ -228,7 +228,7 @@ bg: * Each need shall represent a task with its corresponding work packages * Derive the cost estimation and time frame item_1: - subject: Summarize the results + subject: Обобщете резултатите description: |- ## Goal diff --git a/modules/bim/config/locales/crowdin/fr.seeders.yml b/modules/bim/config/locales/crowdin/fr.seeders.yml index fbbea4a3cfa5..bd941ab39c28 100644 --- a/modules/bim/config/locales/crowdin/fr.seeders.yml +++ b/modules/bim/config/locales/crowdin/fr.seeders.yml @@ -16,7 +16,7 @@ fr: name: Critique statuses: item_0: - name: nouveau + name: Nouveau item_1: name: En cours item_2: @@ -682,7 +682,7 @@ fr: item_0: Catégorie 1 (à modifier dans les paramètres du projet) queries: item_0: - name: Problèmes + name: Tickets item_1: name: Conflits item_2: diff --git a/modules/bim/config/locales/crowdin/ro.seeders.yml b/modules/bim/config/locales/crowdin/ro.seeders.yml index 236a46913a68..22c156ed7e44 100644 --- a/modules/bim/config/locales/crowdin/ro.seeders.yml +++ b/modules/bim/config/locales/crowdin/ro.seeders.yml @@ -118,7 +118,7 @@ ro: name: Welcome item_1: options: - name: Noţiuni de bază + name: Începe text: | We are glad you joined! We suggest to try a few things to get started in OpenProject. diff --git a/modules/boards/config/locales/crowdin/ro.yml b/modules/boards/config/locales/crowdin/ro.yml index 6b5c2fbfca31..a420f7f9e02b 100644 --- a/modules/boards/config/locales/crowdin/ro.yml +++ b/modules/boards/config/locales/crowdin/ro.yml @@ -7,13 +7,13 @@ ro: permission_manage_board_views: "Gestionați plăcile" project_module_board_view: "Panouri" boards: - label_board: "Tablă" + label_board: "Panou" label_boards: "Panouri" - label_create_new_board: "Creează un nou panou" - label_board_type: "Tipul de placă" + label_create_new_board: "Creează panou nou" + label_board_type: "Tip panou" board_types: free: De bază - action: "Tablă de acțiune (%{attribute})" + action: "Panou acțiune (%{attribute})" board_type_attributes: assignee: Executant status: Stare diff --git a/modules/budgets/config/locales/crowdin/ro.yml b/modules/budgets/config/locales/crowdin/ro.yml index 081064ac4009..033aadf692c7 100644 --- a/modules/budgets/config/locales/crowdin/ro.yml +++ b/modules/budgets/config/locales/crowdin/ro.yml @@ -26,7 +26,7 @@ ro: attributes: budget: author: "Autor" - available: "Disponibile" + available: "Disponibil" budget: "Planificat" budget_ratio: "Cheltuit (raport)" description: "Descriere" @@ -47,7 +47,7 @@ ro: attributes: budget: "Buget" button_add_budget_item: "Adăugați costurile planificate" - button_add_budget: "Adăugați bugetul" + button_add_budget: "Adaugă bugetul" button_add_cost_type: "Adaugați acest câmp la un pachet de lucru" button_cancel_edit_budget: "Anularea bugetului de editare" button_cancel_edit_costs: "Anularea costurilor de editare" @@ -70,7 +70,7 @@ ro: label_yes: "Da" notice_budget_conflict: "Pachetele de lucru trebuie să fie din același proiect." notice_no_budgets_available: "Nu există bugete disponibile." - permission_edit_budgets: "Editarea bugetelor" + permission_edit_budgets: "Editare bugete" permission_view_budgets: "Vezi bugete" project_module_budgets: "Bugetele" text_budget_reassign_to: "Reatribuiți-le acestui buget:" diff --git a/modules/costs/config/locales/crowdin/ro.yml b/modules/costs/config/locales/crowdin/ro.yml index c93b9bf625b2..167435d6a43b 100644 --- a/modules/costs/config/locales/crowdin/ro.yml +++ b/modules/costs/config/locales/crowdin/ro.yml @@ -95,7 +95,7 @@ ro: label_display_cost_entries: "Afișarea costurilor unitare" label_display_time_entries: "Afișarea orelor raportate" label_display_types: "Tipuri de afișare" - label_edit: "Editare" + label_edit: "Editează" label_generic_user: "Utilizator generic" label_greater_or_equal: ">=" label_group_by: "Grupare după" @@ -143,4 +143,4 @@ ro: text_warning_hidden_elements: "Este posibil ca unele intrări să fi fost excluse din agregare." week: "săptămână" js: - text_are_you_sure: "Sunteți sigur?" + text_are_you_sure: "Ești sigur?" diff --git a/modules/gantt/config/locales/crowdin/js-bg.yml b/modules/gantt/config/locales/crowdin/js-bg.yml index fe5496d86af7..55bc47d92b1c 100644 --- a/modules/gantt/config/locales/crowdin/js-bg.yml +++ b/modules/gantt/config/locales/crowdin/js-bg.yml @@ -2,4 +2,4 @@ bg: js: work_packages: default_queries: - milestones: 'Milestones' + milestones: 'Етап' diff --git a/modules/github_integration/config/locales/crowdin/js-ro.yml b/modules/github_integration/config/locales/crowdin/js-ro.yml index 04d0f0ecfa9c..155dec78b765 100644 --- a/modules/github_integration/config/locales/crowdin/js-ro.yml +++ b/modules/github_integration/config/locales/crowdin/js-ro.yml @@ -28,7 +28,7 @@ ro: title: "Cereri de extragere" copy_menu: label: Git fragmente - description: Copiză fragmente git în clipboard + description: Copiază fragmente git în clipboard git_actions: branch_name: Nume sucursală commit_message: Mesajul commit-ului diff --git a/modules/grids/config/locales/crowdin/js-ro.yml b/modules/grids/config/locales/crowdin/js-ro.yml index cc8c090cfe9f..3e6809f478bf 100644 --- a/modules/grids/config/locales/crowdin/js-ro.yml +++ b/modules/grids/config/locales/crowdin/js-ro.yml @@ -66,5 +66,5 @@ ro: work_packages_calendar: title: 'Calendar' work_packages_overview: - title: 'Prezentare generală a pachetelor de lucru' + title: 'Prezentare generală pachete de lucru' placeholder: 'Dă clic pentru a edita acest meniu.' diff --git a/modules/ldap_groups/config/locales/crowdin/ro.yml b/modules/ldap_groups/config/locales/crowdin/ro.yml index c963a939ba95..cac477bd99f4 100644 --- a/modules/ldap_groups/config/locales/crowdin/ro.yml +++ b/modules/ldap_groups/config/locales/crowdin/ro.yml @@ -12,7 +12,7 @@ ro: filter_string: 'Filtru LDAP' ldap_auth_source: 'Conexiune LDAP' group_name_attribute: "Atributul nume de grup" - sync_users: 'Sincronizați utilizatorii' + sync_users: 'Sincronizează utilizatorii' base_dn: "Baza de căutare DN" models: ldap_groups/synchronized_group: 'Grup LDAP sincronizat' diff --git a/modules/ldap_groups/config/locales/crowdin/zh-TW.yml b/modules/ldap_groups/config/locales/crowdin/zh-TW.yml index d58def656a81..d7227e6063ba 100644 --- a/modules/ldap_groups/config/locales/crowdin/zh-TW.yml +++ b/modules/ldap_groups/config/locales/crowdin/zh-TW.yml @@ -5,7 +5,7 @@ zh-TW: activerecord: attributes: ldap_groups/synchronized_group: - dn: '獨特名' + dn: '識別名稱(DN)' ldap_auth_source: 'LDAP 連線' sync_users: '同步使用者' ldap_groups/synchronized_filter: @@ -15,7 +15,7 @@ zh-TW: sync_users: '同步使用者' base_dn: "搜尋基礎 DN" models: - ldap_groups/synchronized_group: '同步的 LDAP 群組' + ldap_groups/synchronized_group: 'LDAP 同步群組' ldap_groups/synchronized_filter: 'LDAP群組同步篩選' errors: models: @@ -47,27 +47,27 @@ zh-TW: base_dn_text: > 輸入用於此篩選器的搜尋基礎 DN,它必須在所選的 LDAP 連接的基礎 DN 之下。將此選項留空以使用連接的基礎 DN synchronized_groups: - add_new: '新增同步的 LDAP 群組' + add_new: '新增 LDAP 同步群組' destroy: - title: '移除同步的群組 %{name}' + title: '移除同步群組 %{name}' confirmation: "如繼續,將移除同步的群組 %{name} 和所有透過該群組同步的全部 %{users_count} 個用戶。" info: "注意:OpenProject 群組本身以及在 LDAP 同步之外添加的成員將不會被移除。" verification: "輸入專案的名稱 %{name} 來確認刪除" help_text_html: | - 此模塊允許您在 LDAP 與 OpenProject 群組之間設置同步。 + 此模組允許您在 LDAP 與 OpenProject 群組之間設置同步。 它要求 LDAP 群組使用 groupOfNames / memberOf 屬性集才能與 OpenProject 一起使用。
群組通過 Cron 作業每小時同步。 請參閱我們關於此主題的文檔。 no_results: '找不到同步的群組。' no_members: '這個群組還沒有同步的成員。' - plural: '同步的 LDAP 群組' - singular: '同步的 LDAP 群組' + plural: 'LDAP 同步群組' + singular: 'LDAP 同步群組' form: auth_source_text: '選擇應使用的 LDAP 連接。' sync_users_text: > 如果啓用此選項,找到的使用者會自動新增到OpenProject系統。如果不啓用,只有 OpenProject 現有帳戶會加到群組中。 - dn_text: '輸入 LDAP 中群組的完成 DN' - group_text: '選擇 LDAP 群組的成員應與其同步的現有 OpenProject 群組' + dn_text: '輸入 LDAP 群組完整DN' + group_text: '選擇 LDAP 群組同步至現有 OpenProject 群組' upsale: - description: '利用同步的 LDAP 群組來管理用戶、更改其權限並促進跨群組的用戶管理。' + description: '利用 LDAP 同步群組來管理用戶、更改其權限並促進跨群組的用戶管理。' diff --git a/modules/meeting/config/locales/crowdin/ro.yml b/modules/meeting/config/locales/crowdin/ro.yml index f81eba429099..aa4610e5786f 100644 --- a/modules/meeting/config/locales/crowdin/ro.yml +++ b/modules/meeting/config/locales/crowdin/ro.yml @@ -40,7 +40,7 @@ ro: participants_attended: "Participanți" participants_invited: "Invitaţi" project: "Proiect" - start_date: "Dată" + start_date: "Data" start_time: "Start time" start_time_hour: "Start time" meeting_agenda_item: @@ -58,7 +58,7 @@ ro: structured_meeting: "Meeting (dynamic)" meeting_agenda_item: "Agenda item" meeting_agenda: "Agendă" - meeting_minutes: "Concluzii" + meeting_minutes: "Minute" meeting_section: "Section" activity: filter: @@ -91,7 +91,7 @@ ro: label_meeting_new: "Noua întâlnire" label_meeting_edit: "Editare Întâlnire" label_meeting_agenda: "Agendă" - label_meeting_minutes: "Concluzii" + label_meeting_minutes: "Minute" label_meeting_close: "Închide" label_meeting_open: "Deschis" label_meeting_agenda_close: "Închideți ordinea de zi pentru a începe procesul-verbal" @@ -105,13 +105,13 @@ ro: label_upcoming_invitations: "Upcoming invitations" label_past_invitations: "Past invitations" label_attendee: "Attendee" - label_author: "Creator" + label_author: "Autor" label_notify: "Trimiteți pentru revizuire" label_icalendar: "Trimiteți iCalendar" label_icalendar_download: "Download iCalendar event" label_version: "Versiune" label_time_zone: "Fus orar" - label_start_date: "Data de început" + label_start_date: "Dată început" meeting: attachments: text: "Attached files are available to all meeting participants. You can also drag and drop these into agenda item notes." @@ -154,7 +154,7 @@ ro: permission_view_meetings: "Vezi întâlniri" permission_create_meeting_agendas: "Create meeting agendas" permission_create_meeting_agendas_explanation: "Allows editing the Classic Meeting's agenda content." - permission_manage_agendas: "Gestionați agendele" + permission_manage_agendas: "Gestionează agendele" permission_manage_agendas_explanation: "Allows managing the Dynamic Meeting's agenda items." permission_close_meeting_agendas: "Închideți agendele" permission_send_meeting_agendas_notification: "Trimiteți o notificare de revizuire pentru agende" @@ -189,18 +189,18 @@ ro: label_agenda_item_move_to_bottom: "Mută jos" label_agenda_item_move_up: "Mută în sus" label_agenda_item_move_down: "Mută în jos" - label_agenda_item_add_notes: "Adăugare note" + label_agenda_item_add_notes: "Adaugă note" label_agenda_item_work_package: "Agenda item work package" text_agenda_item_title: 'Agenda item "%{title}"' text_agenda_work_package_deleted: 'Agenda item for deleted work package' text_deleted_agenda_item: 'Deleted agenda item' - label_initial_meeting_details: "ID Întâlnire" + label_initial_meeting_details: "ID întâlnire" label_meeting_details: "Meeting details" label_meeting_details_edit: "Edit meeting details" label_meeting_state: "Meeting status" - label_meeting_state_open: "Deschis" + label_meeting_state_open: "Deschisă" label_meeting_state_open_html: "Open" - label_meeting_state_closed: "Închis" + label_meeting_state_closed: "Închisă" label_meeting_state_closed_html: "Closed" label_meeting_reopen_action: "Reopen meeting" label_meeting_close_action: "Close meeting" @@ -209,7 +209,7 @@ ro: label_meeting_manage_participants: "Manage participants" label_meeting_no_participants: "No participants" label_meeting_show_hide_participants: "Show/hide %{count} more" - label_meeting_show_all_participants: "Afișare completă" + label_meeting_show_all_participants: "Afișează tot" label_meeting_add_participants: "Add participants" text_meeting_not_editable_anymore: "This meeting is not editable anymore." text_meeting_not_present_anymore: "This meeting was deleted. Please select another meeting." diff --git a/modules/overviews/config/locales/crowdin/js-ro.yml b/modules/overviews/config/locales/crowdin/js-ro.yml index 5aae691ac001..9b78f649dedb 100644 --- a/modules/overviews/config/locales/crowdin/js-ro.yml +++ b/modules/overviews/config/locales/crowdin/js-ro.yml @@ -1,4 +1,4 @@ ro: js: overviews: - label: 'Vedere de ansamblu' + label: 'Prezentare generală' diff --git a/modules/overviews/config/locales/crowdin/ro.yml b/modules/overviews/config/locales/crowdin/ro.yml index 797952fa5356..bc2d8391ea81 100644 --- a/modules/overviews/config/locales/crowdin/ro.yml +++ b/modules/overviews/config/locales/crowdin/ro.yml @@ -1,4 +1,4 @@ ro: overviews: - label: 'Vedere de ansamblu' - permission_manage_overview: 'Gestionați pagina de prezentare generală' + label: 'Prezentare generală' + permission_manage_overview: 'Gestionează pagina de prezentare generală' diff --git a/modules/recaptcha/config/locales/crowdin/ro.yml b/modules/recaptcha/config/locales/crowdin/ro.yml index 7ddd41105468..82828b68b283 100644 --- a/modules/recaptcha/config/locales/crowdin/ro.yml +++ b/modules/recaptcha/config/locales/crowdin/ro.yml @@ -13,7 +13,7 @@ ro: response_limit: 'Response limit for HCaptcha' response_limit_text: 'The maximum number of characters to treat the HCaptcha response as valid.' website_key_text: 'Introduceți cheia site-ului web pe care ați creat-o în consola de administrare reCAPTCHA pentru acest domeniu.' - secret_key: 'Testați cheia secretă' + secret_key: 'Cheie secretă' secret_key_text: 'Introduceți cheia secretă pe care ați creat-o în consola de administrare reCAPTCHA.' type: 'Utilizați reCAPTCHA' type_disabled: 'Dezactivați reCAPTCHA' From c407e9a4b8b4166f2358ef6200fb68d552cc79f2 Mon Sep 17 00:00:00 2001 From: Dombi Attila <83396+dombesz@users.noreply.github.com> Date: Tue, 20 Aug 2024 13:21:10 +0300 Subject: [PATCH 12/26] [#57298] Custom field filter in project list causes internal server error when opening it https://community.openproject.org/work_packages/57298 --- .../queries/filters/shared/custom_fields/base.rb | 2 +- .../projects/filters/custom_field_context.rb | 4 ++-- .../work_packages/filter/custom_field_context.rb | 2 +- spec/features/projects/persisted_lists_spec.rb | 14 +++++++++++++- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/models/queries/filters/shared/custom_fields/base.rb b/app/models/queries/filters/shared/custom_fields/base.rb index fb3f7fba60cd..3128557f134a 100644 --- a/app/models/queries/filters/shared/custom_fields/base.rb +++ b/app/models/queries/filters/shared/custom_fields/base.rb @@ -117,7 +117,7 @@ def error_messages def condition [ - custom_field_context.where_subselect_conditions(custom_field, context), + custom_field_context.where_subselect_conditions, operator_strategy.sql_for_field(values_replaced, CustomValue.table_name, "value") ].compact.join(" AND ") end diff --git a/app/models/queries/projects/filters/custom_field_context.rb b/app/models/queries/projects/filters/custom_field_context.rb index 0adf043ca07d..f93f86deab51 100644 --- a/app/models/queries/projects/filters/custom_field_context.rb +++ b/app/models/queries/projects/filters/custom_field_context.rb @@ -52,9 +52,9 @@ def where_subselect_joins(custom_field) SQL end - def where_subselect_conditions(_custom_field, context) + def where_subselect_conditions # Allow searching projects only with :view_project_attributes permission - allowed_project_ids = Project.allowed_to(context.user, :view_project_attributes) + allowed_project_ids = Project.allowed_to(User.current, :view_project_attributes) .select(:id) <<~SQL.squish #{project_db_table}.id IN (#{allowed_project_ids.to_sql}) diff --git a/app/models/queries/work_packages/filter/custom_field_context.rb b/app/models/queries/work_packages/filter/custom_field_context.rb index b28eef722d81..58e9374498c1 100644 --- a/app/models/queries/work_packages/filter/custom_field_context.rb +++ b/app/models/queries/work_packages/filter/custom_field_context.rb @@ -74,7 +74,7 @@ def where_subselect_joins(custom_field) joins end - def where_subselect_conditions(_custom_field, _context) + def where_subselect_conditions nil end end diff --git a/spec/features/projects/persisted_lists_spec.rb b/spec/features/projects/persisted_lists_spec.rb index 8355faca8846..4e13d3631986 100644 --- a/spec/features/projects/persisted_lists_spec.rb +++ b/spec/features/projects/persisted_lists_spec.rb @@ -31,6 +31,7 @@ RSpec.describe "Persisted lists on projects index page", :js, :with_cuprite do + shared_let(:non_member) { create(:non_member, permissions: %i(view_project_attributes)) } shared_let(:admin) { create(:admin) } shared_let(:user) { create(:user) } @@ -50,7 +51,10 @@ name: "Public project", identifier: "public-project", public: true) - project.custom_field_values = { invisible_custom_field.id => "Secret CF" } + project.custom_field_values = { + invisible_custom_field.id => "Secret CF", + custom_field.id => "Visible CF" + } project.save project end @@ -216,6 +220,7 @@ let!(:persisted_query) do build(:project_query, user:, name: "Persisted query") .where("active", "=", "t") + .where("cf_#{custom_field.id}", "~", ["Visible"]) .select("name") .save! end @@ -398,6 +403,13 @@ projects_page.unmark_query_favorite projects_page.expect_sidebar_filter("Persisted query", selected: true, favored: false) end + + it "loads the query with a custom field filter (Regression#57298)" do + projects_page.set_sidebar_filter("Persisted query") + + projects_page.expect_filters_container_hidden + projects_page.expect_filter_set "cf_#{custom_field.id}" + end end describe "persisted query access" do From 952c8b53be14257dbad9e89fcd29dd63ec2dafe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20G=C3=BCnther?= Date: Wed, 21 Aug 2024 11:03:06 +0200 Subject: [PATCH 13/26] Add note on disabling google auth --- .../authentication/authentication-faq/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/system-admin-guide/authentication/authentication-faq/README.md b/docs/system-admin-guide/authentication/authentication-faq/README.md index f542cce5fe9c..d3a010a9b7d7 100644 --- a/docs/system-admin-guide/authentication/authentication-faq/README.md +++ b/docs/system-admin-guide/authentication/authentication-faq/README.md @@ -16,7 +16,7 @@ The authentication via Google is already activated in the Enterprise cloud. User ## How can I disable the Google authentication? -Disabling the Google based authentication is currently not possible for cloud based installations. +Disabling the Google based authentication currently requires you to reach to [support[at]openproject.com](mailto:support@openproject.com). We will disable the Google login option for you. For on premises installations the functionality can be deactivated the same way it was activated. From 1c6a142006a02ac48148cadb197ee73080ba75b3 Mon Sep 17 00:00:00 2001 From: Andrej Sandorf <77627197+as-op@users.noreply.github.com> Date: Wed, 21 Aug 2024 11:32:38 +0200 Subject: [PATCH 14/26] [#57361] 14.4.0 release notes repeat itself (#16494) + fix typos https://community.openproject.org/work_packages/57361 --- docs/getting-started/my-account/README.md | 2 +- docs/release-notes/14-4-0/README.md | 141 +----------------- .../system-settings/README.md | 2 +- 3 files changed, 6 insertions(+), 139 deletions(-) diff --git a/docs/getting-started/my-account/README.md b/docs/getting-started/my-account/README.md index 3f23bb144d07..953490a28720 100644 --- a/docs/getting-started/my-account/README.md +++ b/docs/getting-started/my-account/README.md @@ -81,7 +81,7 @@ This mode is recommended for users with visuals impairment. In the dropdown menu **Mode** you can pick the color mode. The default setting is the **Light mode**. You can also select the **Dark mode**, which will change the color theme of the OpenProject instance for you. > [!NOTE] -> The dark mode ignores parts of the configured design. Top header and side menu colors are entirely overriden for this mode. Only the accent color and the primary button color are kept, but are calculated to brighter variants. +> The dark mode ignores parts of the configured design. Top header and side menu colors are entirely overridden for this mode. Only the accent color and the primary button color are kept, but are calculated to brighter variants. ![Dark mode in OpenProject](openproject_my_account_dark_mode.png) diff --git a/docs/release-notes/14-4-0/README.md b/docs/release-notes/14-4-0/README.md index 9a1b591c253b..550b292dca5d 100644 --- a/docs/release-notes/14-4-0/README.md +++ b/docs/release-notes/14-4-0/README.md @@ -136,140 +136,7 @@ Clicking on the "Details" link will take the user to the diff view, which is als - Bugfix: Project custom field set to searchable is not searchable \[[#34363](https://community.openproject.org/wp/34363)\] - Bugfix: Unclear that status cannot be updated when required custom field is set \[[#35556](https://community.openproject.org/wp/35556)\] - Bugfix: Missing property in the response of api/v3/work\_packages/{id} JSON (path: \_links/copy) \[[#41053](https://community.openproject.org/wp/41053)\] -- Bugfix: undefined method --- -title: OpenProject 14.4.0 -sidebar_navigation: - title: 14.4.0 -release_version: 14.4.0 -release_date: 2024-08-14 ---- - -# OpenProject 14.4.0 - -Release date: 2024-08-14 - -We released [OpenProject 14.4.0](https://community.openproject.org/versions/2063). The release contains several bug fixes and we recommend updating to the newest version. - -In these Release Notes, we will give an overview of important technical updates as well as important feature changes. At the end, you will find a complete list of all changes and bug fixes. - -## Important technical updates - -### Extend API authentication to accept JWT issued by OpenID provider to other client - -OpenProject 14.4 introduces a new feature that allows OpenID clients, such as Nextcloud servers, to use access tokens obtained from an OpenID provider, like Keycloak, as an authentication mechanism for the OpenProject API. This enhancement **enables users to skip the OAuth grant flow**, streamlining the authentication process. - -With this feature, the OpenProject API will validate access tokens issued by the OpenID provider (Keycloak) by checking the token's signature and authenticating the user using the sub claim value. This integration ensures secure and efficient API authentication for OpenID clients. - -For more details, take a look at our [API documentation](../../api/introduction/#oidc-provider-generated-jwt-as-a-bearer-token). - -### Improve error messages and logs of automatically managed project folders synchronization services/jobs - -OpenProject 14.4 introduces significant enhancements to logging, debugging, and error messages for automatically managed project folders synchronization services and jobs. These improvements aim to provide clearer messages and more detailed logs for both administrators and users. - -Up to now, the system faced issues such as unclear error messages, insufficient log details, and a lack of localized error messages. To address these problems, **the system now provides context-specific error messages** instead of vague ones. For example, instead of "Outbound request destination not found," the system will now display messages like 'The file #{file_link.origin_name} was not found on #{storage_name}', which will also be localized to improve clarity. - -Additionally, the logging structure has been enhanced to provide more detailed, tagged entries for better traceability. - -For more details, see https://community.openproject.org/wp/56861. - -## Important feature changes - -### Personal settings: Dark mode - -Dark mode for OpenProject is finally here! In the '[My account](../../getting-started/my-account/#profile-settings)' section under 'Settings', there is an **option labeled 'Mode' where users can now select 'Dark (Beta).'** – as an alternative to the light mode. When the dark mode is selected, the change applies only to that user, not to the entire instance. - -![News setting for dark mode in OpenProject, displayed in dark mode](openproject-14-4-dark-mode.png) - -Please note that this feature has been tested extensively, and we believe it works well. However, users might encounter issues that we haven't seen. Therefore, it will remain in beta for now, until we resolve all potential errors and ensure there are no issues. - -For more details, see https://community.openproject.org/wp/36233. - -### Project attributes: Separate permissions for viewing and editing - -In OpenProject 14.4, new permissions for managing [project attributes](../../user-guide/projects/project-settings/project-attributes/) provide project admins with more control over who can view and edit these attributes. - -The update adds **two new permissions: 'View project attributes' and 'Edit project attributes'**. 'View project attributes' is added to all roles, while 'Edit project attributes' is added to roles with the 'Edit project' permission. - -![Screenshot showing the two newly added permissions for project attributes](openproject-14-4-project-attributes-permissions-highlighted.png) - -Permissions are now independent, so users with 'Edit project' can lack the new permissions. Users without 'View project attributes' cannot see or search project attributes in the overview, settings, list, exports, API, or Schema API. Users without 'Edit project attributes' cannot modify these attributes but can view them if they have view permission. - -For more details, see https://community.openproject.org/wp/50844. - -### Status-based progress reporting: Freely input % complete values for statuses - -We have improved the status-based progress indicator in OpenProject. As requested by some users, you can now **enter any percentage value in the "% Complete" field**, e.g. 9% or 73%, instead of being limited to 10% increments. Please note that only integer values between 1 and 100 are allowed, so decimal values or non-numeric inputs will not be accepted. - -Here is an example of a new status that triggers a % Complete of 73%: - -![Screenshot showing the OpenProject administration for a new status with % Complete 73%](openproject-14-4-status-percentage-complete.png) - -For more details on status-based progress reporting, see our [system admin guide](../../system-admin-guide/manage-work-packages/work-package-status/). - -### Nextcloud storages: Connection validation - -Last month, we already released a connection validation feature for OneDrive/SharePoint storages. With OpenProject 14.4, we added a connection validation for Nextcloud storages. This feature allows administrators to **verify if the storage works as expected and provides helpful feedback if issues arise**. A new button enables the manual triggering of a connection test and validation of the Nextcloud storage settings. If an error occurs during the test, it will be displayed along with an explanation and helpful information. - -![Screenshot of OpenProject's Connection validation for Nextcloud](openproject_file_storages_recheck_connection_nextcloud.png) - -The validations include checking if the external storage server is reachable, verifying for SSL errors, ensuring the server is accessible, confirming that necessary apps are activated on Nextcloud and that their versions are compatible, and validating the app password. - -Read more about connection validation for Nextcloud in our [system admin guide](../../system-admin-guide/files/external-file-storages/health-status/#connection-validation-for-nextcloud). - -### Project lists: Select/Exclude projects in project list explicitly via filter - -In OpenProject 14.4, users can now **explicitly select or exclude individual projects in the project list, using a filter**. This feature allows users to limit and refine their project lists more precisely. Within the filter section of the project list, there is a new filter called "Project." This filter supports the "is (OR)" and "is not" operators and allows selecting projects via an autocompleter with multiselect capability. - -For example, you can filter your active projects by excluding certain projects: - -![Screenshot of OpenProject 14.4, filtering project lists with 'Project' 'is not'](openproject-14-4-project-lists-filter.png) - -For more details, see https://community.openproject.org/wp/55233. - -### Meetings: Saving a new agenda item does not automatically add another empty one - -In the past, when working with the meeting module in OpenProject, a new agenda item was automatically created as soon as a previous one was saved. This was originally built so that new items could be added to a meeting in quick succession. However, working with it has shown that often no new agenda item was needed at all - but, for example, a work package should be added or another change made. For this reason, OpenProject 14.4 has virtually reversed this feature: **saving a new agenda item no longer creates a new empty one**. - -### Meetings tab on work packages: Display related meetings chronologically - -In OpenProject 14.4, the **meetings tab within work packages now displays related meetings in chronological order**. This feature is designed for users who organize meetings and connect work packages with dynamic meetings, making it easier to see when a work package has been discussed. - -For upcoming meetings, the tab will display them in chronological order with the nearest occurrence first and the most distant last. For past meetings, the tab will display them in reverse chronological order, with the most recent occurrence first and the oldest last. - -### Design: Improve avatar color generation so that users with same names are distinguishable - -Some users share the same name or create several accounts with the same name. To be able to tell them apart, e.g. when looking through search results for that name, we improved the avatar color generation, so that **users with the same name are displayed with different colors**. We recommend uploading an avatar image so that the distinction is even more obvious. - -### Dropdown menu on work packages: Move "Copy link to clipboard" up - -To avoid confusion with the "copy" or "copy to another project" actions, we have moved the "copy link to clipboard" action upwards in the drop-down menu for work packages. This action is now in third place in the work package table view. In the work package detail view, the action is now in first position. - -![Detailed view of a work package, drop down menu with highlighted 'Copy link to clipboard'](openproject-14-4-copy-link.png) - -### Add link to storage provider in storage edit view - -To improve efficiency and access to file storages, OpenProject 14.4 allows administrators to click on a **direct link to the storage provider in the edit view of the storage**. - -In the "General information" section, there is now a link that opens in a new window and leads to the root folder of the storage. For Nextcloud, this link refers to the root folder of the Nextcloud instance. For OneDrive/SharePoint, the link refers to the root folder of the drive ID and also works with "OneDrive Business". - -See https://community.openproject.org/wp/56045 for more information on this feature. - -### Show changes of long text custom fields in the activity similar to changes in the description - -To keep the activity view cleaner when multiple changes are made to long text custom fields, OpenProject 14.4 now **displays updates to long custom fields in a similar format to description updates**. As a user watching the activity, you will see an indication of changes to long text custom fields, making it easier to manage and review activities. - -In the activity tab, updates to long text custom fields will be displayed as in the following example – 'Remarks' being a custom field: - -![Example screenshot showing how changes on a custom field will now look like in the work package activity tab](Custom_field__long_text__changed.png) - -Clicking on the "Details" link will take the user to the diff view, which is also used for work package descriptions and project status explanations. See our [user guide on custom fields](../../user-guide/projects/project-settings/custom-fields/) for more information. - - - -## Bug fixes and changes - - -path' for nil:NilClass when click attanchment \[[#41852](https://community.openproject.org/wp/41852)\] +- Bugfix: 'undefined method path' for nil:NilClass when click attachment \[[#41852](https://community.openproject.org/wp/41852)\] - Bugfix: Required user fields of type Boolean missing asterisk \[[#42325](https://community.openproject.org/wp/42325)\] - Bugfix: Breadcrumb and menu structure is inconsistent for user administration \[[#50109](https://community.openproject.org/wp/50109)\] - Bugfix: "Time 1" label in Email reminders truncated when language=FR \[[#50607](https://community.openproject.org/wp/50607)\] @@ -313,7 +180,7 @@ path' for nil:NilClass when click attanchment \[[#41852](https://community.openp - Bugfix: Some pages of Administration/Projects are missing a breadcrumb \[[#56586](https://community.openproject.org/wp/56586)\] - Bugfix: Some administration pages are missing breadcrumbs and html titles \[[#56587](https://community.openproject.org/wp/56587)\] - Bugfix: Community edition demo videos do not render \[[#56602](https://community.openproject.org/wp/56602)\] -- Bugfix: Background of login screen is inconistent \[[#56608](https://community.openproject.org/wp/56608)\] +- Bugfix: Background of login screen is inconsistent \[[#56608](https://community.openproject.org/wp/56608)\] - Bugfix: \[AppSignal\] TypeError Further errors for other hooks with missing information \[[#56609](https://community.openproject.org/wp/56609)\] - Bugfix: Breadcrumb and menu structure is inconsistent for Email administration \[[#56614](https://community.openproject.org/wp/56614)\] - Bugfix: Breadcrumb and menu structure is inconsistent for Authentication administration \[[#56615](https://community.openproject.org/wp/56615)\] @@ -325,10 +192,10 @@ path' for nil:NilClass when click attanchment \[[#41852](https://community.openp - Bugfix: Dark mode: Wrong text color in Member selection \[[#56805](https://community.openproject.org/wp/56805)\] - Bugfix: Slack Integration page in Admin doesn't have Save button \[[#56813](https://community.openproject.org/wp/56813)\] - Bugfix: Don't blink custom fields form when hiding parts depending on field format \[[#56842](https://community.openproject.org/wp/56842)\] -- Bugfix: Round corners on notification seperator lines \[[#56913](https://community.openproject.org/wp/56913)\] +- Bugfix: Round corners on notification separator lines \[[#56913](https://community.openproject.org/wp/56913)\] - Bugfix: WebAuthn fails on initial registration with activated 2FA security policy \[[#56988](https://community.openproject.org/wp/56988)\] - Bugfix: File names with url-unsafe characters not working \[[#56997](https://community.openproject.org/wp/56997)\] -- Bugfix: OpenProject Dark Mode: selection colour of table rows \[[#57003](https://community.openproject.org/wp/57003)\] +- Bugfix: OpenProject Dark Mode: selection color of table rows \[[#57003](https://community.openproject.org/wp/57003)\] - Bugfix: Impossible to link/create a work package from Nextcloud \[[#57210](https://community.openproject.org/wp/57210)\] - Feature: Dark Mode for OpenProject \[[#36233](https://community.openproject.org/wp/36233)\] - Feature: Theming plugin for Nextcloud Hub integration \[[#55841](https://community.openproject.org/wp/55841)\] diff --git a/docs/system-admin-guide/system-settings/README.md b/docs/system-admin-guide/system-settings/README.md index 776e6124218e..574113031be3 100644 --- a/docs/system-admin-guide/system-settings/README.md +++ b/docs/system-admin-guide/system-settings/README.md @@ -11,7 +11,7 @@ System settings allow you to configure a number of options concerning your OpenP To modify these settings, navigate to **Administration → System settings**. -![System settings in OpenProject adminisration](openproject_system_guide_system_settings.png) +![System settings in OpenProject administration](openproject_system_guide_system_settings.png) ## Overview From eb78ac0abd908327476b38d1f5f989773c702f34 Mon Sep 17 00:00:00 2001 From: Dombi Attila <83396+dombesz@users.noreply.github.com> Date: Wed, 21 Aug 2024 10:42:43 +0300 Subject: [PATCH 15/26] Fix specs --- spec/features/projects/persisted_lists_spec.rb | 3 ++- .../queries/projects/filters/custom_field_filter_spec.rb | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/features/projects/persisted_lists_spec.rb b/spec/features/projects/persisted_lists_spec.rb index 4e13d3631986..826104e26077 100644 --- a/spec/features/projects/persisted_lists_spec.rb +++ b/spec/features/projects/persisted_lists_spec.rb @@ -404,7 +404,8 @@ projects_page.expect_sidebar_filter("Persisted query", selected: true, favored: false) end - it "loads the query with a custom field filter (Regression#57298)" do + it "loads the query with a custom field filter (Regression#57298)", + with_ee: %i[custom_fields_in_projects_list] do projects_page.set_sidebar_filter("Persisted query") projects_page.expect_filters_container_hidden diff --git a/spec/models/queries/projects/filters/custom_field_filter_spec.rb b/spec/models/queries/projects/filters/custom_field_filter_spec.rb index 58dcb804c9e2..f9731f95682e 100644 --- a/spec/models/queries/projects/filters/custom_field_filter_spec.rb +++ b/spec/models/queries/projects/filters/custom_field_filter_spec.rb @@ -319,6 +319,7 @@ describe "#apply_to" do describe "permissions" do let(:user) { build_stubbed(:user) } + current_user { user } it "includes the check for view_project_attributes permission" do projects_query = Project.allowed_to(user, :view_project_attributes) From 8a7a9203e960dc2cdd9050eacb5efb014630da80 Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Thu, 22 Aug 2024 03:08:24 +0000 Subject: [PATCH 16/26] update locales from crowdin [ci skip] --- config/locales/crowdin/fr.seeders.yml | 16 ++++---- config/locales/crowdin/fr.yml | 38 +++++++++---------- config/locales/crowdin/js-fr.yml | 14 +++---- config/locales/crowdin/zh-TW.yml | 2 +- .../storages/config/locales/crowdin/fr.yml | 6 +-- .../storages/config/locales/crowdin/js-fr.yml | 8 ++-- .../config/locales/crowdin/js-fr.yml | 4 +- 7 files changed, 44 insertions(+), 44 deletions(-) diff --git a/config/locales/crowdin/fr.seeders.yml b/config/locales/crowdin/fr.seeders.yml index a783241b5b27..d4e3564dbdfd 100644 --- a/config/locales/crowdin/fr.seeders.yml +++ b/config/locales/crowdin/fr.seeders.yml @@ -74,9 +74,9 @@ fr: item_1: name: Normal item_2: - name: Haut + name: Haute item_3: - name: Immédiat + name: Immédiate projects: demo-project: name: Projet de démonstration @@ -142,7 +142,7 @@ fr: Si vous avez des questions ou si avez besoin d'aide, n'hésitez pas à nous contacter : [support[at]openproject.com](mailto:support@openproject.com). item_5: options: - name: Lots de Travaux + name: Lots de travaux item_6: options: name: Étapes @@ -312,7 +312,7 @@ fr: N'hésitez pas à nous contacter si vous avez des questions ou si vous avez besoin d'aide. N'hésitez pas à nous contacter : [support[at]openproject.com(mailto:support@openproject.com). item_5: options: - name: Lots de Travaux + name: Lots de travaux item_6: options: name: Plan de projet @@ -414,7 +414,7 @@ fr: * L'équipe discute du sprint : ce qui s'est bien passé, ce qui doit être amélioré pour améliorer la productivité pour le prochain sprint ou même avoir plus de plaisir. statuses: item_0: - name: nouveau + name: Nouveau item_1: name: En cous de spécification item_2: @@ -440,7 +440,7 @@ fr: item_12: name: En attente item_13: - name: rejeté + name: Rejeté time_entry_activities: item_0: name: Gestion @@ -449,7 +449,7 @@ fr: item_2: name: Développement item_3: - name: Test + name: En test item_4: name: Support item_5: @@ -466,7 +466,7 @@ fr: item_4: name: Epic item_5: - name: Récit utilisateur + name: User story item_6: name: Bug welcome: diff --git a/config/locales/crowdin/fr.yml b/config/locales/crowdin/fr.yml index 8d016ac34b6e..1ced59d48262 100644 --- a/config/locales/crowdin/fr.yml +++ b/config/locales/crowdin/fr.yml @@ -88,7 +88,7 @@ fr: is_active: actuellement affiché is_inactive: actuellement non affiché antivirus_scan: - not_processed_yet_message: "Le téléchargement est bloqué, car le fichier n'a pas encore été scanné par l'anti-virus. Veuillez réessayer plus tard." + not_processed_yet_message: "Le téléchargement est bloqué, car le fichier n'a pas encore été vérifié par l'anti-virus. Veuillez réessayer plus tard." quarantined_message: "Un virus a été détecté dans le fichier '%{filename}'. Il a été mis en quarantaine et ne peut être téléchargé." deleted_message: "Un virus a été détecté dans le fichier '%{filename}'. Le fichier a été supprimé." deleted_by_admin: "Le fichier en quarantaine '%{filename}' a été supprimé par un administrateur." @@ -244,11 +244,11 @@ fr: #Contains custom strings for options when copying a project that cannot be found elsewhere. members: "Membres du projet" overviews: "Vue d'ensemble du projet" - queries: "Lots de Travaux : vues enregistrées" - wiki_page_attachments: "Pages Wiki : pièces jointes" + queries: "Lots de travaux : vues enregistrées" + wiki_page_attachments: "Pages wiki : pièces jointes" work_package_attachments: "Lots de Travaux : pièces jointes" work_package_categories: "Lots de travaux : catégories" - work_package_file_links: "Lots de Travaux : liens vers des fichiers" + work_package_file_links: "Lots de travaux : liens vers des fichiers" work_package_shares: "Lots de travaux : partages" delete: scheduled: "La suppression a été planifiée et est effectuée en arrière-plan. Vous serez notifié du résultat." @@ -336,10 +336,10 @@ fr: filters: all_shares: "Tous les partages" menu: - all: "Tout" + all: "Tous" invited: "Invité" locked: "Verrouillé" - project_roles: "Rôle du projet" + project_roles: "Rôles du projet" wp_shares: "Partages du lot des travaux" groups: "Groupes" delete_member_dialog: @@ -974,11 +974,11 @@ fr: circular_dependency: "La relation créée un cercle de relations." attributes: to: - error_not_found: "lot de travaux dans la position `à` introuvable ou invisible" - error_readonly: "impossible de modifier le lien d'une relation existante `à`" + error_not_found: "lot de travaux dans la position 'à' introuvable ou invisible" + error_readonly: "impossible de modifier le lien d'une relation existante 'vers'" from: - error_not_found: "lot de travaux dans la position `de` introuvable ou invisible" - error_readonly: "impossible de modifier le lien d'une relation existante `de`" + error_not_found: "lot de travaux dans la position 'depuis' introuvable ou invisible" + error_readonly: "impossible de modifier le lien d'une relation existante 'depuis'" repository: not_available: "Le fournisseur de gestion de contrôle de sources n'est pas disponible" not_whitelisted: "n'est pas autorisé par la configuration." @@ -1034,12 +1034,12 @@ fr: format: "%{message}" due_date: not_start_date: "n'est pas identique à la date de début, bien que cela soit requis pour les jalons." - cannot_be_null: "ne peut pas être défini à NULL car la date de début et la durée sont connues." + cannot_be_null: "ne peut pas être définie à NULL car la date de début et la durée sont connues." duration: larger_than_dates: "est plus grand que l'intervalle entre la date de début et la date de fin." smaller_than_dates: "est plus petit que l'intervalle entre la date de début et la date de fin." not_available_for_milestones: "n'est pas disponible pour les lots de travaux de type jalon." - cannot_be_null: "ne peut pas être défini à NULL car la date de début et la date de fin sont connues." + cannot_be_null: "ne peut pas être définie à NULL car la date de début et la date de fin sont connues." parent: cannot_be_milestone: "ne peut pas être un jalon." cannot_be_self_assigned: "ne peut pas être assigné à lui-même." @@ -1047,7 +1047,7 @@ fr: not_a_valid_parent: "est invalide." start_date: violates_relationships: "peut uniquement valoir %{soonest_start} ou une date ultérieure afin de ne pas violer les relations du lot de travaux." - cannot_be_null: "ne peut pas être défini à NULL car la date de fin et la durée sont connues." + cannot_be_null: "ne peut pas être définie à NULL car la date de fin et la durée sont connues." status_id: status_transition_invalid: "n'est pas valide, car aucune transition valide n'existe de l'ancien vers le nouveau statut pour les rôles de l'utilisateur actuel." status_invalid_in_type: "est invalide car le statut actuel n’existe pas dans ce type." @@ -1093,8 +1093,8 @@ fr: numeric: "numérique (e.g. « 1 »)" special: "spécial (e.g. « % »)" reused: - one: "a déjà été utilisé auparavant. S'il vous plaît, veuillez en choisir un différent." - other: "a déjà été utilisé auparavant. Veuillez faire un choix qui diffère de vos %{count} choix précédents." + one: "a déjà été utilisé. Veuillez choisir un mot de passe différent du précédent." + other: "a déjà été utilisé. Veuillez choisir un mot de passe différent des %{count} précédents." match: confirm: "Confirmez le nouveau mot de passe." description: "La confirmation du mot de passe doit correspondre à celui saisi dans le champ “Nouveau mot de passe”." @@ -1989,7 +1989,7 @@ fr: label_enterprise: "Entreprise" label_enterprise_active_users: "%{current}/%{limit} utilisateurs actifs inscrits" label_enterprise_edition: "Version Entreprise" - label_enterprise_support: "Assistance Enterprise" + label_enterprise_support: "Support Enterprise" label_enterprise_addon: "add-on Enterprise" label_environment: "Environement" label_estimates_and_progress: "Estimations et progression" @@ -2140,7 +2140,7 @@ fr: label_my_queries: "Mes requêtes personnalisées" label_name: "Nom" label_never: "Jamais" - label_new: "nouveau" + label_new: "Nouveau" label_new_features: "Nouvelles fonctionnalités" label_new_statuses_allowed: "Nouveaux statuts autorisés" label_news_singular: "Actualités" @@ -2168,7 +2168,7 @@ fr: label_operator_none: "est vide" label_operator_equals_or: "est (OU)" label_operator_equals_all: "est (ET)" - label_operator_shared_with_user_any: "tout" + label_operator_shared_with_user_any: "tous" label_open_menu: "Ouvrir le menu" label_open_work_packages: "ouverts" label_open_work_packages_plural: "ouverts" @@ -3375,7 +3375,7 @@ fr: unlock_and_reset_failed_logins: "Déverrouiller et réinitialiser les échecs de connexion" version_status_closed: "clôturé" version_status_locked: "verrouillé" - version_status_open: "ouverts" + version_status_open: "ouvert" note: Note note_password_login_disabled: "L'authentification via mot de passe a été désactivé par %{configuration}." warning: Attention diff --git a/config/locales/crowdin/js-fr.yml b/config/locales/crowdin/js-fr.yml index 2a1dcb33c8d7..6ec445696b4a 100644 --- a/config/locales/crowdin/js-fr.yml +++ b/config/locales/crowdin/js-fr.yml @@ -130,17 +130,17 @@ fr: polar_area: "Aire polaire" tabs: graph_settings: "Général" - dataset: "Ensemble de données %{number}%" + dataset: "Ensemble de données %{number}" errors: - could_not_load: "Les données à afficher le graphique n'ont pas pu être chargées. Les permissions nécessaires peuvent être manquantes." + could_not_load: "Les données pour afficher le graphique n'ont pas pu être chargées. Les permissions nécessaires peuvent être manquantes." description_available_columns: "Colonnes disponibles" - description_current_position: "Vous êtes ici :" + description_current_position: "Vous êtes ici : " description_select_work_package: "Sélectionner le lot de travaux #%{id}" description_subwork_package: "Enfant du lot de travaux #%{id}" editor: preview: "Basculer en mode aperçu" source_code: "Basculer en mode source Markdown" - error_saving_failed: "L'enregistrement du document a échoué en raison de l'erreur suivante: %{error}" + error_saving_failed: "L'enregistrement du document a échoué en raison de l'erreur suivante : %{error}" ckeditor_error: "Une erreur s'est produite dans CKEditor" mode: manual: "Basculer en mode source Markdown" @@ -159,7 +159,7 @@ fr: page: "Page du wiki" this_page: "cette page" hint: | - Laissez ce champ vide pour répertorier toutes les pages enfants de la page actuelle. Si vous souhaitez référencer une page différente, indiquez son titre ou slug. + Laissez ce champ vide pour répertorier toutes les pages enfants de la page actuelle. Si vous souhaitez référencer une page différente, indiquez son titre ou son slug. code_block: button: "Insérer le fragment de code" title: "Insérer/modifier le fragment de code" @@ -174,9 +174,9 @@ fr: button: "Inclure le contenu d’une autre page wiki" text: "[Placeholder] Page wiki inclue de" page: "Page du wiki" - not_set: "(page pas encore définie)" + not_set: "(page non encore définie)" hint: | - Incluez le contenu d’une autre page du wiki en indiquant son titre ou slug. + Incluez le contenu d’une autre page du wiki en indiquant son titre ou son slug. Vous pouvez inclure la page wiki d'un autre projet en les séparant par un point-virgule comme dans l’exemple suivant. work_package_button: button: "Insérer un bouton pour créer un lot de travaux" diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index 527cf20bdf35..04f31e8a1bfa 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -3013,7 +3013,7 @@ zh-TW: setting_password_days_valid: "在經過多少天後強制執行密碼變更" setting_password_min_length: "最小長度" setting_password_min_adhered_rules: "必要類別的最小數目" - setting_per_page_options: "每頁顯示項目個數的設置" + setting_per_page_options: "設置每頁顯示個數" setting_plain_text_mail: "純文字郵件(不含 HTML)" setting_protocol: "Protocol" setting_project_gantt_query: "專案含甘特圖檢視" diff --git a/modules/storages/config/locales/crowdin/fr.yml b/modules/storages/config/locales/crowdin/fr.yml index d76db41fdb24..1d452f43a02c 100644 --- a/modules/storages/config/locales/crowdin/fr.yml +++ b/modules/storages/config/locales/crowdin/fr.yml @@ -159,7 +159,7 @@ fr: project_storage: 'Voulez-vous vraiment supprimer %{file_storage} de ce projet ? Pour confirmer cette action, veuillez introduire le nom de l''espace de stockage dans le champ ci-dessous, cela permettra de :' project_storage_delete_result_1: Supprimer tous les liens des lots de travaux de ce projet vers les fichiers et dossiers de cet espace de stockage. project_storage_delete_result_2: Si cet espace de stockage a un dossier de projet géré automatiquement, lui et ses fichiers seront définitivement supprimés. - storage: 'Voulez-vous vraiment supprimer %{file_storage} de ce projet ? Pour confirmer cette action, veuillez saisir le nom de l''espace de stockage dans le champ ci-dessous. Cela va :' + storage: 'Êtes-vous sûr de vouloir supprimer %{file_storage} ? Pour confirmer cette action, veuillez introduire le nom du stockage dans le champ ci-dessous :' storage_delete_result_1: Supprimer toutes les configurations de stockage pour tous les projets utilisant ce stockage. storage_delete_result_2: Supprimer tous les liens des lots de travaux de ce projet vers les fichiers et dossiers dans cet espace de stockage. storage_delete_result_3: Si ce stockage contient des dossiers de projet gérés automatiquement, ceux-ci et les fichiers qu'ils contiennent seront supprimés définitivement. @@ -184,7 +184,7 @@ fr: oauth_applications: Applications OAuth one_drive_oauth: OAuth Azure openproject_oauth: OAuth OpenProject - project_folders: Dossier du projet + project_folders: Dossiers du projet redirect_uri: URI de redirection storage_provider: Fournisseur de stockage health: @@ -269,7 +269,7 @@ fr: label_delete_storage: Supprimer le stockage label_edit_storage: Modifier le stockage label_edit_storage_access_management: Modifier la gestion de l'accès à l'espace de stockage - label_edit_storage_automatically_managed_folders: Editer les dossiers automatiquement gérés + label_edit_storage_automatically_managed_folders: Modifier les dossiers automatiquement gérés label_edit_storage_host: Modifier l'hôte de stockage label_existing_manual_folder: Répertoire existant avec permissions gérées manuellement label_file_storage: Stockage de fichiers diff --git a/modules/storages/config/locales/crowdin/js-fr.yml b/modules/storages/config/locales/crowdin/js-fr.yml index 5bd4e2e5ab88..488bd23401a8 100644 --- a/modules/storages/config/locales/crowdin/js-fr.yml +++ b/modules/storages/config/locales/crowdin/js-fr.yml @@ -11,7 +11,7 @@ fr: login_to: "Connexion à %{storageType}" no_connection: "Aucune connexion à %{storageType}" open_storage: "Ouvrir %{storageType}" - select_location: "Sélectionnez la localisation" + select_location: "Sélectionnez l'emplacement" choose_location: "Choisir emplacement" types: nextcloud: "Nextcloud" @@ -31,7 +31,7 @@ fr: already_existing_body: > Un fichier avec le nom « %{fileName} » existe déjà à l'emplacement où vous essayez de téléverser ce fichier. Que voulez-vous faire ? directory_not_writeable: "Vous n'avez pas la permission d'ajouter des fichiers à ce dossier." - dragging_many_files: "Le téléversement vers %{storageType} ne supporte qu'un seul fichier à la fois." + dragging_many_files: "Le dépôt vers %{storageType} ne supporte qu'un seul fichier à la fois." dragging_folder: "Le téléversement vers %{storageType} ne prend pas en charge les dossiers." empty_folder: "Ce dossier est vide." empty_folder_location_hint: "Cliquez sur le bouton ci-dessous pour téléverser le fichier à cet endroit." @@ -52,7 +52,7 @@ fr: open_location: "Ouvrir le fichier à l'emplacement" remove: "Supprimer le lien de fichier" remove_confirmation: > - Êtes-vous sûr de vouloir dissocier le fichier de ce lot de travaux ? Unlinking n'affecte pas le fichier original et supprime seulement la connexion à ce lot de travaux. + Êtes-vous sûr de vouloir dissocier le fichier de ce lot de travaux ? La suppression du lien n'affecte pas le fichier original et supprime seulement la connexion à ce lot de travaux. remove_short: "Supprimer le lien" select: "Sélectionner les fichiers" select_all: "Tout sélectionner" @@ -76,7 +76,7 @@ fr: nextcloud: > Veuillez vérifier que la dernière version de l'application Nextcloud "OpenProject Integration" est installée et contactez votre administrateur pour plus d'informations. link_uploaded_file_error: > - Une erreur s'est produite lors de la liaison du fichier '%{fileName}' récemment téléversé au lot de travaux %{workPackageId}. + Une erreur s'est produite lors de la liaison du fichier '%{fileName}' récemment déposé sur le lot de travaux %{workPackageId}. tooltip: not_logged_in: "Veuillez vous connecter au stockage pour accéder à ce fichier." view_not_allowed: "Vous n'avez pas la permission de voir ce fichier." diff --git a/modules/team_planner/config/locales/crowdin/js-fr.yml b/modules/team_planner/config/locales/crowdin/js-fr.yml index 666bed3adabe..658122291596 100644 --- a/modules/team_planner/config/locales/crowdin/js-fr.yml +++ b/modules/team_planner/config/locales/crowdin/js-fr.yml @@ -7,9 +7,9 @@ fr: create_label: 'Planificateur d''équipe' create_title: 'Créer un nouveau planificateur d''équipe' unsaved_title: 'Planificateur d''équipe sans nom' - no_data: 'Ajouter des personnes pour configurer votre planificateur d''équipe.' + no_data: 'Ajoutez des personnes pour configurer votre planificateur d''équipe.' add_assignee: 'Ajouter quelqu''un' - remove_assignee: 'Retiré l''assigné' + remove_assignee: 'Retirer l''assigné' two_weeks: '2 semaines' one_week: '1 semaine' four_weeks: '4 semaines' From eb98b082a05457311837ab57e96709574c3e8cf5 Mon Sep 17 00:00:00 2001 From: ulferts Date: Tue, 20 Aug 2024 18:33:26 +0200 Subject: [PATCH 17/26] remove explicit project column from notifications --- .../notifications/create_contract.rb | 1 - app/mailers/digest_mailer.rb | 3 +- app/models/notification.rb | 1 - .../notifications/filters/project_filter.rb | 11 +++ .../group_bys/group_by_project.rb | 10 +++ .../notifications/orders/project_order.rb | 16 +++- .../create_from_model_service.rb | 1 - .../notifications/set_attributes_service.rb | 17 +--- .../service.rb | 1 - ...123011_remove_project_from_notification.rb | 83 +++++++++++++++++++ .../notification_eager_loading_wrapper.rb | 5 +- .../notifications/notification_representer.rb | 19 ++++- .../notifications/create_contract_spec.rb | 4 +- spec/factories/notification_factory.rb | 5 +- .../features/notifications/navigation_spec.rb | 2 - ...fication_center_date_alert_mention_spec.rb | 47 +++++++++++ .../notification_center_date_alerts_spec.rb | 24 ++---- .../notification_center_sidemenu_spec.rb | 6 -- .../notification_center_spec.rb | 12 +-- .../notification_center/split_screen_spec.rb | 2 - .../tabs/activity_notifications_spec.rb | 1 - ...notification_representer_rendering_spec.rb | 1 - spec/mailers/digest_mailer_spec.rb | 31 +++---- spec/models/journal_spec.rb | 3 +- .../notifications/scopes/visible_spec.rb | 1 - .../notifications/notification_query_spec.rb | 5 +- .../bulk_read_ian_resource_spec.rb | 6 +- .../bulk_unread_ian_resource_spec.rb | 7 +- .../v3/notifications/details_resource_spec.rb | 4 +- .../v3/notifications/index_resource_spec.rb | 16 +--- .../notifications/read_ian_resource_spec.rb | 3 +- .../v3/notifications/show_resource_spec.rb | 1 - .../create_from_journal_job_shared.rb | 1 - .../create_service_intergration_spec.rb | 2 - .../set_attributes_service_spec.rb | 7 +- .../delete_service_integration_spec.rb | 3 +- 36 files changed, 230 insertions(+), 132 deletions(-) create mode 100644 db/migrate/20240820123011_remove_project_from_notification.rb create mode 100644 spec/features/notifications/notification_center/notification_center_date_alert_mention_spec.rb diff --git a/app/contracts/notifications/create_contract.rb b/app/contracts/notifications/create_contract.rb index 712884a2b82d..f58c2b0be100 100644 --- a/app/contracts/notifications/create_contract.rb +++ b/app/contracts/notifications/create_contract.rb @@ -31,7 +31,6 @@ class CreateContract < ::ModelContract attribute :recipient attribute :subject attribute :reason - attribute :project attribute :actor attribute :resource attribute :journal diff --git a/app/mailers/digest_mailer.rb b/app/mailers/digest_mailer.rb index 90bbb5e8cd0f..f0b51bc28cf3 100644 --- a/app/mailers/digest_mailer.rb +++ b/app/mailers/digest_mailer.rb @@ -82,10 +82,9 @@ def work_packages(recipient_id, notification_ids) def load_notifications(notification_ids) Notification .where(id: notification_ids) - .includes(:project, :resource) + .includes(:resource) .reject do |notification| notification.resource.nil? || - notification.project.nil? || (notification.journal.nil? && !notification.date_alert?) end end diff --git a/app/models/notification.rb b/app/models/notification.rb index f38a59e1dfdc..64034e9b445c 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -48,7 +48,6 @@ class Notification < ApplicationRecord belongs_to :recipient, class_name: "User" belongs_to :actor, class_name: "User" - belongs_to :project belongs_to :journal belongs_to :resource, polymorphic: true diff --git a/app/models/queries/notifications/filters/project_filter.rb b/app/models/queries/notifications/filters/project_filter.rb index 258ac5b3e54e..22792161b882 100644 --- a/app/models/queries/notifications/filters/project_filter.rb +++ b/app/models/queries/notifications/filters/project_filter.rb @@ -28,4 +28,15 @@ class Queries::Notifications::Filters::ProjectFilter < Queries::Notifications::Filters::NotificationFilter include Queries::Filters::Shared::ProjectFilter::Optional + + # This is currently work package specific same as all the other parts of the NotificationQuery + self.model = WorkPackage + + def joins + <<~SQL.squish + JOIN #{WorkPackage.table_name} + ON #{WorkPackage.table_name}.id = #{Notification.table_name}.resource_id + AND #{Notification.table_name}.resource_type = 'WorkPackage' + SQL + end end diff --git a/app/models/queries/notifications/group_bys/group_by_project.rb b/app/models/queries/notifications/group_bys/group_by_project.rb index 7e3536348254..19eaba9f1857 100644 --- a/app/models/queries/notifications/group_bys/group_by_project.rb +++ b/app/models/queries/notifications/group_bys/group_by_project.rb @@ -33,6 +33,16 @@ def self.key :project end + def joins + # Only Notifications for work_packages are currently supported via the query. + # E.g. the visible statement used in the query is WorkPackage specific. + <<~SQL.squish + JOIN work_packages + ON notifications.resource_id = work_packages.id + AND notifications.resource_type = 'WorkPackage' + SQL + end + def name :project_id end diff --git a/app/models/queries/notifications/orders/project_order.rb b/app/models/queries/notifications/orders/project_order.rb index 00501fb174e4..460bd12182a7 100644 --- a/app/models/queries/notifications/orders/project_order.rb +++ b/app/models/queries/notifications/orders/project_order.rb @@ -34,15 +34,23 @@ def self.key end def joins - :project + <<~SQL.squish + JOIN #{WorkPackage.table_name} work_packages_order + ON work_packages_order.id = #{Notification.table_name}.resource_id + AND #{Notification.table_name}.resource_type = 'WorkPackage' + JOIN #{Project.table_name} + ON #{Project.table_name}.id = work_packages_order.project_id + SQL end protected def order(scope) - order_string = "projects.name" - order_string += " DESC" if direction == :desc + with_raise_on_invalid do + order_string = "#{Project.table_name}.name" + order_string += " DESC" if direction == :desc - scope.order(order_string) + scope.order(order_string) + end end end diff --git a/app/services/notifications/create_from_model_service.rb b/app/services/notifications/create_from_model_service.rb index 9f42b1a31f17..3b067d91c1f2 100644 --- a/app/services/notifications/create_from_model_service.rb +++ b/app/services/notifications/create_from_model_service.rb @@ -106,7 +106,6 @@ def update_or_create_notification(recipient_id, reason) def create_notification(recipient_id, reason) notification_attributes = { recipient_id:, - project:, resource:, journal:, actor: user_with_fallback, diff --git a/app/services/notifications/set_attributes_service.rb b/app/services/notifications/set_attributes_service.rb index e16e0c6ac130..5ff6529c60a0 100644 --- a/app/services/notifications/set_attributes_service.rb +++ b/app/services/notifications/set_attributes_service.rb @@ -27,20 +27,5 @@ #++ module Notifications - class SetAttributesService < ::BaseServices::SetAttributes - private - - def set_default_attributes(params) - super - - set_default_project unless model.project - end - - ## - # Try to determine the project context from the journal (if any) - # or the resource if it has a project set - def set_default_project - model.project = model.journal&.project || model.resource.try(:project) - end - end + class SetAttributesService < ::BaseServices::SetAttributes; end end diff --git a/app/workers/notifications/create_date_alerts_notifications_job/service.rb b/app/workers/notifications/create_date_alerts_notifications_job/service.rb index d3d8f2b7bdec..90b6469c983a 100644 --- a/app/workers/notifications/create_date_alerts_notifications_job/service.rb +++ b/app/workers/notifications/create_date_alerts_notifications_job/service.rb @@ -70,7 +70,6 @@ def create_date_alert_notification(user, work_package, reason) create_service = Notifications::CreateService.new(user:) create_service.call( recipient_id: user.id, - project_id: work_package.project_id, resource: work_package, reason: ) diff --git a/db/migrate/20240820123011_remove_project_from_notification.rb b/db/migrate/20240820123011_remove_project_from_notification.rb new file mode 100644 index 000000000000..107084f70f08 --- /dev/null +++ b/db/migrate/20240820123011_remove_project_from_notification.rb @@ -0,0 +1,83 @@ +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +class RemoveProjectFromNotification < ActiveRecord::Migration[7.1] + def change + reversible do |direction| + direction.down do + execute <<~SQL.squish + UPDATE notifications + SET project_id = work_package_journals.project_id + FROM journals + JOIN work_package_journals + ON journals.data_id = work_package_journals.id AND journals.data_type = 'Journal::WorkPackageJournal' + WHERE notifications.journal_id = journals.id AND notifications.resource_type = 'WorkPackage' + SQL + + execute <<~SQL.squish + UPDATE notifications + SET project_id = forums.project_id + FROM journals + JOIN message_journals + ON journals.data_id = message_journals.id AND journals.data_type = 'Journal::MessageJournal' + JOIN forums ON message_journals.forum_id = forums.id + WHERE notifications.journal_id = journals.id AND notifications.resource_type = 'Message' + SQL + + execute <<~SQL.squish + UPDATE notifications + SET project_id = wikis.project_id + FROM wiki_pages + JOIN wikis + ON wiki_pages.wiki_id = wikis.id + WHERE notifications.resource_id = wiki_pages.id AND notifications.resource_type = 'WikiPage' + SQL + + execute <<~SQL.squish + UPDATE notifications + SET project_id = news_journals.project_id + FROM journals + JOIN news_journals + ON journals.data_id = news_journals.id AND journals.data_type = 'Journal::NewsJournal' + WHERE notifications.journal_id = journals.id AND notifications.resource_type = 'News' + SQL + + execute <<~SQL.squish + UPDATE notifications + SET project_id = news.project_id + FROM comments + JOIN news + ON comments.commented_id = news.id AND comments.commented_type = 'News' + WHERE notifications.resource_id = comments.id AND notifications.resource_type = 'Comment' + SQL + end + end + + remove_reference :notifications, :project + end +end diff --git a/lib/api/v3/notifications/notification_eager_loading_wrapper.rb b/lib/api/v3/notifications/notification_eager_loading_wrapper.rb index 886e09cdd950..1e3ac896ee8f 100644 --- a/lib/api/v3/notifications/notification_eager_loading_wrapper.rb +++ b/lib/api/v3/notifications/notification_eager_loading_wrapper.rb @@ -44,7 +44,10 @@ def wrap(notifications) # because it is a polymorphic association. That being as it is, currently only # work packages are assigned. def set_resource(notifications) - work_packages_by_id = WorkPackage.where(id: notifications.pluck(:resource_id).uniq).index_by(&:id) + work_packages_by_id = WorkPackage + .includes(:project) + .where(id: notifications.pluck(:resource_id).uniq) + .index_by(&:id) notifications.each do |notification| notification.resource = work_packages_by_id[notification.resource_id] diff --git a/lib/api/v3/notifications/notification_representer.rb b/lib/api/v3/notifications/notification_representer.rb index 05dc370f36c9..5c4b5a7a3637 100644 --- a/lib/api/v3/notifications/notification_representer.rb +++ b/lib/api/v3/notifications/notification_representer.rb @@ -77,8 +77,6 @@ class NotificationRepresenter < ::API::Decorators::Single skip_render: ->(*) { represented.actor.nil? }, v3_path: :user - associated_resource :project - associated_resource :journal, as: :activity, representer: ::API::V3::Activities::ActivityRepresenter, @@ -87,11 +85,26 @@ class NotificationRepresenter < ::API::Decorators::Single polymorphic_resource :resource + resource :project, + getter: ->(*) { + ::API::V3::Projects::ProjectRepresenter + .create(represented.resource.project, current_user:, embed_links:) + }, + link: ->(*) { + { + href: api_v3_paths.project(represented.resource.project.id), + title: represented.resource.project.name + } + }, + setter: ->(*) { + raise NotImplementedError + } + def _type "Notification" end - self.to_eager_load = %i[project actor journal] + self.to_eager_load = %i[actor journal] end end end diff --git a/spec/contracts/notifications/create_contract_spec.rb b/spec/contracts/notifications/create_contract_spec.rb index 3a3c6d79e610..aa78226d4817 100644 --- a/spec/contracts/notifications/create_contract_spec.rb +++ b/spec/contracts/notifications/create_contract_spec.rb @@ -37,7 +37,6 @@ end end - let(:notification_context) { build_stubbed(:project) } let(:notification_resource) { build_stubbed(:journal) } let(:notification_recipient) { build_stubbed(:user) } let(:notification_subject) { "Some text" } @@ -46,8 +45,7 @@ let(:notification_mail_reminder_sent) { false } let(:notification) do - Notification.new(project: notification_context, - recipient: notification_recipient, + Notification.new(recipient: notification_recipient, subject: notification_subject, reason: notification_reason, resource: notification_resource, diff --git a/spec/factories/notification_factory.rb b/spec/factories/notification_factory.rb index 5510f706a359..587e50d87619 100644 --- a/spec/factories/notification_factory.rb +++ b/spec/factories/notification_factory.rb @@ -6,11 +6,10 @@ mail_alert_sent { false } reason { :mentioned } recipient factory: :user - project - resource { association :work_package, project: } + resource { association :work_package } trait :for_milestone do - resource { association :work_package, :is_milestone, project: } + resource { association :work_package, :is_milestone } end # journal and actor are not listed by intend. # They will be set in the after_build callback. diff --git a/spec/features/notifications/navigation_spec.rb b/spec/features/notifications/navigation_spec.rb index 31dcff23a42b..3fc67fa886fe 100644 --- a/spec/features/notifications/navigation_spec.rb +++ b/spec/features/notifications/navigation_spec.rb @@ -12,7 +12,6 @@ shared_let(:notification) do create(:notification, recipient:, - project:, resource: work_package, journal: work_package.journals.last) end @@ -20,7 +19,6 @@ shared_let(:second_notification) do create(:notification, recipient:, - project:, resource: second_work_package, journal: second_work_package.journals.last) end diff --git a/spec/features/notifications/notification_center/notification_center_date_alert_mention_spec.rb b/spec/features/notifications/notification_center/notification_center_date_alert_mention_spec.rb new file mode 100644 index 000000000000..9c8d6881150c --- /dev/null +++ b/spec/features/notifications/notification_center/notification_center_date_alert_mention_spec.rb @@ -0,0 +1,47 @@ +require "spec_helper" +require "features/page_objects/notification" + +RSpec.describe "Notification center date alert and mention", + :js, + :with_cuprite, + with_settings: { journal_aggregation_time_minutes: 0 } do + shared_let(:project) { create(:project) } + shared_let(:actor) { create(:user, firstname: "Actor", lastname: "User") } + shared_let(:user) do + create(:user, + member_with_permissions: { project => %w[view_work_packages] }) + end + shared_let(:work_package) { create(:work_package, project:, due_date: 1.day.ago) } + + shared_let(:notification_mention) do + create(:notification, + reason: :mentioned, + recipient: user, + resource: work_package, + actor:) + end + + shared_let(:notification_date_alert) do + create(:notification, + reason: :date_alert_due_date, + recipient: user, + resource: work_package) + end + + let(:center) { Pages::Notifications::Center.new } + + before do + login_as user + visit notifications_center_path + wait_for_reload + end + + context "with date alerts ee", with_ee: %i[date_alerts] do + it "shows only the date alert time, not the mentioned author" do + center.within_item(notification_date_alert) do + expect(page).to have_text("Date alert, Mentioned") + expect(page).to have_no_text("Actor user") + end + end + end +end diff --git a/spec/features/notifications/notification_center/notification_center_date_alerts_spec.rb b/spec/features/notifications/notification_center/notification_center_date_alerts_spec.rb index 5e3399abc6aa..7787e3e51e1f 100644 --- a/spec/features/notifications/notification_center/notification_center_date_alerts_spec.rb +++ b/spec/features/notifications/notification_center/notification_center_date_alerts_spec.rb @@ -90,16 +90,14 @@ def create_alertable(**attributes) create(:notification, reason: :date_alert_due_date, recipient: user, - resource: milestone_wp_future, - project:) + resource: milestone_wp_future) end shared_let(:notification_wp_start_past) do create(:notification, reason: :date_alert_start_date, recipient: user, - resource: wp_start_past, - project:) + resource: wp_start_past) end # notification created by CreateDateAlertsNotificationsJob @@ -121,30 +119,26 @@ def create_alertable(**attributes) create(:notification, reason: :date_alert_due_date, recipient: user, - resource: wp_double_notification, - project:) + resource: wp_double_notification) end shared_let(:notification_wp_double_mention) do create(:notification, reason: :mentioned, recipient: user, - resource: wp_double_notification, - project:) + resource: wp_double_notification) end shared_let(:notification_wp_double_alerts) do due = create(:notification, reason: :date_alert_due_date, recipient: user, - resource: wp_double_alert, - project:) + resource: wp_double_alert) start = create(:notification, reason: :date_alert_start_date, recipient: user, - resource: wp_double_alert, - project:) + resource: wp_double_alert) [start, due] end @@ -153,16 +147,14 @@ def create_alertable(**attributes) create(:notification, reason: :date_alert_due_date, recipient: user, - resource: wp_unset_date, - project:) + resource: wp_unset_date) end shared_let(:notification_wp_due_today) do create(:notification, reason: :date_alert_due_date, recipient: user, - resource: wp_due_today, - project:) + resource: wp_due_today) end let(:center) { Pages::Notifications::Center.new } diff --git a/spec/features/notifications/notification_center/notification_center_sidemenu_spec.rb b/spec/features/notifications/notification_center/notification_center_sidemenu_spec.rb index eabb80abcb7e..08c9bfdaa642 100644 --- a/spec/features/notifications/notification_center/notification_center_sidemenu_spec.rb +++ b/spec/features/notifications/notification_center/notification_center_sidemenu_spec.rb @@ -28,7 +28,6 @@ let(:notification_watched) do create(:notification, recipient:, - project:, resource: work_package, reason: :watched) end @@ -36,7 +35,6 @@ let(:notification_assigned) do create(:notification, recipient:, - project: project2, resource: work_package2, reason: :assigned) end @@ -44,7 +42,6 @@ let(:notification_responsible) do create(:notification, recipient:, - project: project3, resource: work_package3, reason: :responsible) end @@ -52,7 +49,6 @@ let(:notification_mentioned) do create(:notification, recipient:, - project: project3, resource: work_package4, reason: :mentioned) end @@ -60,7 +56,6 @@ let(:notification_date) do create(:notification, recipient:, - project: project3, resource: work_package5, reason: :date_alert_start_date) end @@ -68,7 +63,6 @@ let(:notification_shared) do create(:notification, recipient:, - project: project3, resource: work_package6, reason: :shared) end diff --git a/spec/features/notifications/notification_center/notification_center_spec.rb b/spec/features/notifications/notification_center/notification_center_spec.rb index 040fea93b4f5..1f40a3b7bc67 100644 --- a/spec/features/notifications/notification_center/notification_center_spec.rb +++ b/spec/features/notifications/notification_center/notification_center_spec.rb @@ -99,9 +99,10 @@ center.expect_bell_count 0 end - context "with more the 100 notifications" do + context "with more than 100 notifications" do let(:notifications) do - attributes = { recipient:, project: project1, resource: work_package } + attributes = { recipient:, resource: work_package } + create_list(:notification, 100, attributes.merge(reason: :mentioned)) + create_list(:notification, 105, attributes.merge(reason: :watched)) end @@ -192,7 +193,6 @@ reason: :commented, recipient:, resource: work_package3, - project: project1, actor: other_user, journal: work_package3.journals.reload.last, read_ian: true) @@ -259,7 +259,6 @@ reason: :date_alert_start_date, recipient:, resource: starting_soon_work_package, - project: project1, read_ian: false) end let(:due_date_notification) do @@ -267,7 +266,6 @@ reason: :date_alert_due_date, recipient:, resource: ending_soon_work_package, - project: project1, read_ian: false) end let(:overdue_date_notification) do @@ -275,7 +273,6 @@ reason: :date_alert_due_date, recipient:, resource: overdue_milestone_work_package, - project: project1, read_ian: false) end @@ -312,8 +309,7 @@ create(:notification, reason: :mentioned, recipient:, - resource: overdue_milestone_work_package, - project: project1) + resource: overdue_milestone_work_package) # We need to wait for the bell to poll for updates sleep 15 diff --git a/spec/features/notifications/notification_center/split_screen_spec.rb b/spec/features/notifications/notification_center/split_screen_spec.rb index f5a2c8bd407b..6acaea91a3f6 100644 --- a/spec/features/notifications/notification_center/split_screen_spec.rb +++ b/spec/features/notifications/notification_center/split_screen_spec.rb @@ -16,7 +16,6 @@ shared_let(:notification) do create(:notification, recipient:, - project:, resource: work_package, journal: work_package.journals.last) end @@ -24,7 +23,6 @@ shared_let(:second_notification) do create(:notification, recipient:, - project:, resource: second_work_package, journal: second_work_package.journals.last) end diff --git a/spec/features/work_packages/tabs/activity_notifications_spec.rb b/spec/features/work_packages/tabs/activity_notifications_spec.rb index 80b45c45c492..6d54dba9c597 100644 --- a/spec/features/work_packages/tabs/activity_notifications_spec.rb +++ b/spec/features/work_packages/tabs/activity_notifications_spec.rb @@ -21,7 +21,6 @@ shared_let(:notification) do create(:notification, recipient: admin, - project:, resource: work_package, journal: work_package.journals.last) end diff --git a/spec/lib/api/v3/notifications/notification_representer_rendering_spec.rb b/spec/lib/api/v3/notifications/notification_representer_rendering_spec.rb index 595e2e779bb1..7c7df7abe38b 100644 --- a/spec/lib/api/v3/notifications/notification_representer_rendering_spec.rb +++ b/spec/lib/api/v3/notifications/notification_representer_rendering_spec.rb @@ -43,7 +43,6 @@ let(:notification) do build_stubbed(:notification, recipient:, - project:, resource:, journal:, actor:, diff --git a/spec/mailers/digest_mailer_spec.rb b/spec/mailers/digest_mailer_spec.rb index 10c1b341fa9b..f3d14bd86677 100644 --- a/spec/mailers/digest_mailer_spec.rb +++ b/spec/mailers/digest_mailer_spec.rb @@ -60,8 +60,7 @@ [build_stubbed(:notification, resource: work_package, reason: :commented, - journal:, - project: project1)].tap do |notifications| + journal:)].tap do |notifications| allow(Notification) .to receive(:where) .and_return(notifications) @@ -144,8 +143,7 @@ create(:notification, reason: :date_alert_start_date, recipient:, - resource: work_package, - project: project1) + resource: work_package) end it "matches generated text" do @@ -161,8 +159,7 @@ create(:notification, reason: :date_alert_start_date, recipient:, - resource: work_package, - project: project1) + resource: work_package) end it "matches generated text" do @@ -178,8 +175,7 @@ create(:notification, reason: :date_alert_due_date, recipient:, - resource: work_package, - project: project1) + resource: work_package) end it "matches generated text" do @@ -195,8 +191,7 @@ create(:notification, reason: :date_alert_due_date, recipient:, - resource: work_package, - project: project1) + resource: work_package) end it "matches generated text" do @@ -213,8 +208,7 @@ create(:notification, reason: :date_alert_due_date, recipient:, - resource: work_package, - project: project1) + resource: work_package) end it "matches generated text" do @@ -231,8 +225,7 @@ create(:notification, reason: :date_alert_due_date, recipient:, - resource: work_package, - project: project1) + resource: work_package) end it "matches generated text" do @@ -246,8 +239,7 @@ create(:notification, reason: :date_alert_due_date, recipient:, - resource: work_package, - project: project1) + resource: work_package) end it "matches generated text" do @@ -263,8 +255,7 @@ create(:notification, reason: :date_alert_due_date, recipient:, - resource: work_package, - project: project1) + resource: work_package) end it "matches generated text" do @@ -280,8 +271,7 @@ create(:notification, reason: :date_alert_due_date, recipient:, - resource: work_package, - project: project1) + resource: work_package) end it "matches generated text" do @@ -296,7 +286,6 @@ reason: :mentioned, recipient:, resource: work_package, - project: project1, journal: nil) end diff --git a/spec/models/journal_spec.rb b/spec/models/journal_spec.rb index e2db69c24703..da4d53c14125 100644 --- a/spec/models/journal_spec.rb +++ b/spec/models/journal_spec.rb @@ -41,8 +41,7 @@ let!(:notification) do create(:notification, journal:, - resource: work_package, - project: work_package.project) + resource: work_package) end it "has a notifications association" do diff --git a/spec/models/notifications/scopes/visible_spec.rb b/spec/models/notifications/scopes/visible_spec.rb index 56cb6aec5f20..29c4346b9ad5 100644 --- a/spec/models/notifications/scopes/visible_spec.rb +++ b/spec/models/notifications/scopes/visible_spec.rb @@ -39,7 +39,6 @@ let(:notification) do create(:notification, - project:, resource: work_package, recipient: notification_recipient) end diff --git a/spec/models/queries/notifications/notification_query_spec.rb b/spec/models/queries/notifications/notification_query_spec.rb index e7bcf510582a..19ffbe23a9f4 100644 --- a/spec/models/queries/notifications/notification_query_spec.rb +++ b/spec/models/queries/notifications/notification_query_spec.rb @@ -34,7 +34,7 @@ shared_let(:recipient) { create(:user, member_with_permissions: { project => %i[view_work_packages] }) } shared_let(:work_package) { create(:work_package, project:) } - shared_let(:notification) { create(:notification, recipient:, project:, resource: work_package) } + shared_let(:notification) { create(:notification, recipient:, resource: work_package) } let(:instance) { described_class.new(user: recipient) } let(:base_scope) { Notification.visible(recipient).recipient(recipient) } @@ -188,6 +188,9 @@ describe "#results" do it "is the same as handwriting the query" do expected = base_scope + .joins("JOIN work_packages " \ + "ON notifications.resource_id = work_packages.id " \ + "AND notifications.resource_type = 'WorkPackage'") .group(:project_id) .order(project_id: :asc) .select(:project_id, Arel.sql("COUNT(*)")) diff --git a/spec/requests/api/v3/notifications/bulk_read_ian_resource_spec.rb b/spec/requests/api/v3/notifications/bulk_read_ian_resource_spec.rb index 4844fbaf6550..0673b1306e4f 100644 --- a/spec/requests/api/v3/notifications/bulk_read_ian_resource_spec.rb +++ b/spec/requests/api/v3/notifications/bulk_read_ian_resource_spec.rb @@ -39,9 +39,9 @@ shared_let(:work_package) { create(:work_package, project:) } - shared_let(:notification1) { create(:notification, recipient:, project:, resource: work_package) } - shared_let(:notification2) { create(:notification, recipient:, project:, resource: work_package) } - shared_let(:notification3) { create(:notification, recipient:, project:, resource: work_package) } + shared_let(:notification1) { create(:notification, recipient:, resource: work_package) } + shared_let(:notification2) { create(:notification, recipient:, resource: work_package) } + shared_let(:notification3) { create(:notification, recipient:, resource: work_package) } shared_let(:other_user_notification) { create(:notification, recipient: other_recipient) } let(:filters) { nil } diff --git a/spec/requests/api/v3/notifications/bulk_unread_ian_resource_spec.rb b/spec/requests/api/v3/notifications/bulk_unread_ian_resource_spec.rb index 870c90ae6a25..06369d9bb4c9 100644 --- a/spec/requests/api/v3/notifications/bulk_unread_ian_resource_spec.rb +++ b/spec/requests/api/v3/notifications/bulk_unread_ian_resource_spec.rb @@ -38,19 +38,18 @@ shared_let(:recipient) { create(:user, member_with_permissions: { project => %i[view_work_packages] }) } shared_let(:other_recipient) { create(:user) } shared_let(:notification1) do - create(:notification, recipient:, project:, resource: work_package, read_ian: true) + create(:notification, recipient:, resource: work_package, read_ian: true) end shared_let(:notification2) do - create(:notification, recipient:, project:, resource: work_package, read_ian: true) + create(:notification, recipient:, resource: work_package, read_ian: true) end shared_let(:notification3) do - create(:notification, recipient:, project:, resource: work_package, read_ian: true) + create(:notification, recipient:, resource: work_package, read_ian: true) end shared_let(:other_user_notification) do create(:notification, recipient: other_recipient, read_ian: true, - project:, resource: work_package) end diff --git a/spec/requests/api/v3/notifications/details_resource_spec.rb b/spec/requests/api/v3/notifications/details_resource_spec.rb index e374c098cabf..3f4d96036a25 100644 --- a/spec/requests/api/v3/notifications/details_resource_spec.rb +++ b/spec/requests/api/v3/notifications/details_resource_spec.rb @@ -51,8 +51,8 @@ member_with_permissions: { project => %i[view_work_packages] }) end - let(:notification) { create(:notification, recipient:, resource:, project:, reason:) } - let(:milestone_notification) { create(:notification, recipient:, resource: milestone_resource, project:, reason:) } + let(:notification) { create(:notification, recipient:, resource:, reason:) } + let(:milestone_notification) { create(:notification, recipient:, resource: milestone_resource, reason:) } let(:reason) { :date_alert_start_date } # We have 1 detail item at maximum, and the id is coming diff --git a/spec/requests/api/v3/notifications/index_resource_spec.rb b/spec/requests/api/v3/notifications/index_resource_spec.rb index 8fe6639b26b3..de00846149f5 100644 --- a/spec/requests/api/v3/notifications/index_resource_spec.rb +++ b/spec/requests/api/v3/notifications/index_resource_spec.rb @@ -41,15 +41,13 @@ create(:notification, recipient:, resource: work_package, - project: work_package.project, journal: work_package.journals.first) end shared_let(:date_alert_notification) do create(:notification, recipient:, reason: :date_alert_start_date, - resource: work_package, - project: work_package.project) + resource: work_package) end let(:filters) { nil } @@ -104,7 +102,6 @@ shared_let(:other_resource_notification) do create(:notification, recipient:, - project: work_package.project, resource: other_work_package) end @@ -139,8 +136,7 @@ shared_let(:other_project_notification) do create(:notification, recipient:, - resource: other_work_package, - project: other_project) + resource: other_work_package) end let(:filters) do @@ -165,7 +161,6 @@ reason: :assigned, recipient:, resource: work_package, - project: work_package.project, journal: work_package.journals.first) end shared_let(:responsible_notification) do @@ -173,7 +168,6 @@ reason: :responsible, recipient:, resource: work_package, - project: work_package.project, journal: work_package.journals.first) end @@ -245,7 +239,6 @@ read_ian: nil, recipient:, resource: wiki_page, - project: wiki_page.wiki.project, journal: wiki_page.journals.first) end @@ -260,7 +253,6 @@ recipient:, reason: :responsible, resource: work_package, - project: work_package.project, journal: work_package.journals.first) end @@ -268,8 +260,7 @@ create(:notification, recipient:, reason: :date_alert_due_date, - resource: work_package, - project: work_package.project) + resource: work_package) end let(:send_request) do @@ -305,7 +296,6 @@ shared_let(:other_project_notification) do create(:notification, resource: work_package2, - project: other_project, recipient:, reason: :responsible, journal: work_package2.journals.first) diff --git a/spec/requests/api/v3/notifications/read_ian_resource_spec.rb b/spec/requests/api/v3/notifications/read_ian_resource_spec.rb index cd63f2feba7e..77f6ae0cda87 100644 --- a/spec/requests/api/v3/notifications/read_ian_resource_spec.rb +++ b/spec/requests/api/v3/notifications/read_ian_resource_spec.rb @@ -41,8 +41,7 @@ shared_let(:notification) do create(:notification, recipient:, - resource: work_package, - project:) + resource: work_package) end let(:send_read) do diff --git a/spec/requests/api/v3/notifications/show_resource_spec.rb b/spec/requests/api/v3/notifications/show_resource_spec.rb index 82a8310bfa14..6d6c805220dd 100644 --- a/spec/requests/api/v3/notifications/show_resource_spec.rb +++ b/spec/requests/api/v3/notifications/show_resource_spec.rb @@ -45,7 +45,6 @@ shared_let(:notification) do create(:notification, recipient:, - project:, resource:, journal: resource.journals.last) end diff --git a/spec/services/notifications/create_from_journal_job_shared.rb b/spec/services/notifications/create_from_journal_job_shared.rb index bb4b9e78fa8f..bc7196050def 100644 --- a/spec/services/notifications/create_from_journal_job_shared.rb +++ b/spec/services/notifications/create_from_journal_job_shared.rb @@ -92,7 +92,6 @@ expect(notifications_service) .to have_received(:call) .with({ recipient_id: recipient.id, - project:, actor: sender, journal:, resource: }.merge(notification_channel_reasons)) diff --git a/spec/services/notifications/create_service_intergration_spec.rb b/spec/services/notifications/create_service_intergration_spec.rb index adf33810063e..af182079cf28 100644 --- a/spec/services/notifications/create_service_intergration_spec.rb +++ b/spec/services/notifications/create_service_intergration_spec.rb @@ -30,7 +30,6 @@ RSpec.describe Notifications::CreateService, "integration", type: :model do let(:work_package) { create(:work_package) } - let(:project) { work_package.project } let(:journal) { work_package.journals.first } let(:instance) { described_class.new(user: actor) } let(:attributes) { {} } @@ -47,7 +46,6 @@ let(:attributes) do { recipient:, - project:, resource: work_package, journal:, actor:, diff --git a/spec/services/notifications/set_attributes_service_spec.rb b/spec/services/notifications/set_attributes_service_spec.rb index 673261eec66b..5c364106966b 100644 --- a/spec/services/notifications/set_attributes_service_spec.rb +++ b/spec/services/notifications/set_attributes_service_spec.rb @@ -69,8 +69,7 @@ reason:, resource: journable, journal:, - subject: event_subject, - project: + subject: event_subject } end @@ -86,12 +85,11 @@ .to be_success end - it "sets the attributes add adds default values" do + it "sets the attributes" do subject expect(event.attributes.compact.symbolize_keys) .to eql({ - project_id: project.id, reason: "mentioned", journal_id: journal.id, recipient_id: 1, @@ -126,7 +124,6 @@ expect(event.attributes.compact.symbolize_keys) .to eql({ - project_id: project.id, reason: "mentioned", resource_id: journable.id, resource_type: "WorkPackage", diff --git a/spec/services/work_packages/delete_service_integration_spec.rb b/spec/services/work_packages/delete_service_integration_spec.rb index cde517d194e6..37a3b67ffb3e 100644 --- a/spec/services/work_packages/delete_service_integration_spec.rb +++ b/spec/services/work_packages/delete_service_integration_spec.rb @@ -100,8 +100,7 @@ create(:notification, recipient: user, actor: user, - resource: work_package, - project:) + resource: work_package) end let(:instance) do From 3a0942deb194cc91c624412548e1bca2ec67ba69 Mon Sep 17 00:00:00 2001 From: Maya Berdygylyjova Date: Thu, 22 Aug 2024 11:58:18 +0200 Subject: [PATCH 18/26] Update system admin guie (#16506) --- docs/system-admin-guide/backup/README.md | 16 +++++++++++----- .../backup/administration-backup-2034314.png | Bin 71602 -> 0 bytes docs/system-admin-guide/backup/backup-code.png | Bin 101264 -> 0 bytes .../backup/create-backup-token.png | Bin 43756 -> 0 bytes .../openproject_system_guide_backup_tocken.png | Bin 0 -> 31294 bytes ...oject_system_guide_backup_token_confirm.png | Bin 0 -> 41924 bytes ...oject_system_guide_backup_token_success.png | Bin 0 -> 118990 bytes docs/system-admin-guide/design/README.md | 2 +- 8 files changed, 12 insertions(+), 6 deletions(-) delete mode 100644 docs/system-admin-guide/backup/administration-backup-2034314.png delete mode 100644 docs/system-admin-guide/backup/backup-code.png delete mode 100644 docs/system-admin-guide/backup/create-backup-token.png create mode 100644 docs/system-admin-guide/backup/openproject_system_guide_backup_tocken.png create mode 100644 docs/system-admin-guide/backup/openproject_system_guide_backup_token_confirm.png create mode 100644 docs/system-admin-guide/backup/openproject_system_guide_backup_token_success.png diff --git a/docs/system-admin-guide/backup/README.md b/docs/system-admin-guide/backup/README.md index a50a28ac35ef..8ee9e1258f36 100644 --- a/docs/system-admin-guide/backup/README.md +++ b/docs/system-admin-guide/backup/README.md @@ -13,19 +13,25 @@ Unless disabled via the [configuration](../../installation-and-operations/config You can yourself create backups of your OpenProject installation. Go to *Administration* and *Backup* to get started. -![administration-backup](administration-backup-2034314.png) - To be able to create a backup, a so called _backup token_ has to be generated first. This is supposed to add another level of security since backing up the whole installation includes sensitive data. You will then need to create a backup token by clicking **+ Backup token**. -![create-backup-token](create-backup-token.png) +![Create a backup token in OpenProject administration](openproject_system_guide_backup_tocken.png) + +You will be asked to enter **create** to confirm that you wish to create a token. + +![Confirm creating a backup token in OpenProject](openproject_system_guide_backup_token_confirm.png) + +In the next step you will be asked to confirm your password. -You will be asked to confirm your password when you try to generate or reset a token. The _backup token_ will only be displayed once after it has been generated. Make sure you store it in a safe place. +> [!IMPORTANT] +> +> The _backup token_ will only be displayed **once** after it has been generated. Make sure you store it in a safe place. The system generates the token which you then fill in where requested in the field below. Then you can press the **Request backup** button -![backup-code](backup-code.png) +![Success backup token generation message in OpenProject](openproject_system_guide_backup_token_success.png) Each time you request a backup this token has to be provided. This also applies when requesting a backup via the API where on top of the API token the _backup token_ will have to be provided as well. diff --git a/docs/system-admin-guide/backup/administration-backup-2034314.png b/docs/system-admin-guide/backup/administration-backup-2034314.png deleted file mode 100644 index 33e932f9a33236385c5d6e277afa5a8c3c7a9944..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71602 zcmc$`WmFv9)-H+!f=dYQ1Shz=OCtd)4FnHC5?q370tAQP1h;OW8w=971$PMz1c%@d z+$|j5{oTFK`Nq9J&iQf2sj+(0(z)iG&$Cul&93f9omZ;(I8-<&C@A}++ zi9HtjV-3OSa}yL4v|}Aju=4r&`Ptdo!^6YX)z!_-&HdlMSGV_sCRq&c3x#`R1x3XL zM8t%}#d!sV`GrN_T3Vl+oN)6Ca`E!>e}oH(NzmF9yq|R9;N~4Z8WWX}l8}~_mRDrs z;+9uZ(b55w)zm?nuK+y*10!P-v$uARPR?#0sVwuYKiD#}akzVWe-8Z;77^*==YMc; z5D@fvcw}^UcXxAZD=H?oyQlX@XXnJk ^DwYBxx+1b{%wt<1cy88Ok^70ZGJS#h= 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 am?#26OAEgEToVKR2U1X%FOf9~_ diff --git a/docs/system-admin-guide/backup/backup-code.png b/docs/system-admin-guide/backup/backup-code.png deleted file mode 100644 index 03019b61b51d65e37827f8d4a24cb43f3a169a48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101264 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 GH~$CK_ui%e diff --git a/docs/system-admin-guide/backup/create-backup-token.png b/docs/system-admin-guide/backup/create-backup-token.png deleted file mode 100644 index d610a20cfe4d5dc1ef1660eb9ec21686af9535fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43756 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 z 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Μ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 z

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 literal 0 HcmV?d00001 diff --git a/docs/system-admin-guide/design/README.md b/docs/system-admin-guide/design/README.md index 405ebc57a302..fed0d3b21a9d 100644 --- a/docs/system-admin-guide/design/README.md +++ b/docs/system-admin-guide/design/README.md @@ -67,7 +67,7 @@ Aside from uploading logos and icons, you can also customize the colors used wit To do this change the color values (entered as color hex code) in the *Advanced settings* section. In order to find the right hex code for a color, you can use a website, such as [color-hex.com](https://www.color-hex.com/). You can see the selected color in the preview area next to the color hex code. Therefore, it is possible to see the selected color before saving the changes. -> ![TIP] +> [!TIP] > If the button color you select is too light to have white text on top of it, the icon and text color will be displayed in black instead. ![Advanced color settings in OpenProject](openproject_system_guide_design_advanced_settings_primer.png) From d1b343d593f39969161927d1dbe1c22b384cfa0b Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Fri, 23 Aug 2024 03:08:10 +0000 Subject: [PATCH 19/26] update locales from crowdin [ci skip] --- config/locales/crowdin/de.yml | 2 +- config/locales/crowdin/js-tr.yml | 6 ++--- config/locales/crowdin/js-zh-TW.yml | 2 +- config/locales/crowdin/sv.yml | 4 ++-- config/locales/crowdin/tr.yml | 24 +++++++++---------- config/locales/crowdin/zh-TW.yml | 4 ++-- .../costs/config/locales/crowdin/zh-TW.yml | 2 +- .../grids/config/locales/crowdin/js-tr.yml | 4 ++-- modules/meeting/config/locales/crowdin/tr.yml | 2 +- 9 files changed, 25 insertions(+), 25 deletions(-) diff --git a/config/locales/crowdin/de.yml b/config/locales/crowdin/de.yml index 7fb338b4eac4..ecced0f90689 100644 --- a/config/locales/crowdin/de.yml +++ b/config/locales/crowdin/de.yml @@ -1148,7 +1148,7 @@ de: status: "Arbeitspaket-Status" token/api: one: Zugangs-Token - other: Access tokens + other: Zugangs-Token type: "Typ" user: "Benutzer" version: "Version" diff --git a/config/locales/crowdin/js-tr.yml b/config/locales/crowdin/js-tr.yml index e16ec4cf01ba..7c881b8e22ed 100644 --- a/config/locales/crowdin/js-tr.yml +++ b/config/locales/crowdin/js-tr.yml @@ -436,7 +436,7 @@ tr: label_expand_project_menu: "Proje menüsünü genişlet" label_export: "Dışarı aktar" label_export_preparing: "İhracat hazırlanıyor ve kısa süre içinde indirilecek." - label_favorites: "Favorites" + label_favorites: "Favoriler" label_filename: "Dosya" label_filesize: "Boyutu" label_general: "Genel" @@ -546,7 +546,7 @@ tr: label_unwatch_work_package: "İş pakaketini izlemeyi bırak" label_uploaded_by: "Yükleyen" label_default_queries: "Varsayılan" - label_starred_queries: "Sık Kullanılan" + label_starred_queries: "Favorilere Ekle" label_global_queries: "Genel" label_custom_queries: "Özel" label_columns: "Sütunlar" @@ -1287,7 +1287,7 @@ tr: content: >- The status '%{status_name}' has been configured to be excluded from hierarchy totals of Work, Remaining work, and % Complete. The totals do not take this value into account. favorite_projects: - no_results: "You have no favorite projects" + no_results: "Favori projeniz yok" no_results_subtext: "Add one or multiple projects as favorite through their overview or in a project list." include_projects: toggle_title: "Projeleri dahil et" diff --git a/config/locales/crowdin/js-zh-TW.yml b/config/locales/crowdin/js-zh-TW.yml index 58e4b757239a..a4d6dfe08db2 100644 --- a/config/locales/crowdin/js-zh-TW.yml +++ b/config/locales/crowdin/js-zh-TW.yml @@ -905,7 +905,7 @@ zh-TW: copy: "整批複製" delete: "整批刪除" button_clear: "清除" - comment_added: "成功發表意見。" + comment_added: "留言成功" comment_send_failed: "發生錯誤。無法留言。" comment_updated: "留言已成功更新。" confirm_edit_cancel: "是否確定取消編輯中的工作項目" diff --git a/config/locales/crowdin/sv.yml b/config/locales/crowdin/sv.yml index 47256ca96639..6fd794445efc 100644 --- a/config/locales/crowdin/sv.yml +++ b/config/locales/crowdin/sv.yml @@ -2099,7 +2099,7 @@ sv: label_custom_touch_icon: "Anpassad touch-ikon" label_logout: "Logga ut" label_main_menu: "Sidomenyn" - label_manage: "Manage" + label_manage: "Hantera" label_manage_groups: "Hantera grupper" label_managed_repositories_vendor: "Hanterade %{vendor} databaser" label_max_size: "Maximal storlek" @@ -3014,7 +3014,7 @@ sv: setting_display_subprojects_work_packages: "Visa arbetspaket för delprojekt på huvudprojekt som standard" setting_duration_format: "Duration format" setting_duration_format_hours_only: "Hours only" - setting_duration_format_days_and_hours: "Days and hours" + setting_duration_format_days_and_hours: "Dagar och timmar" setting_duration_format_instructions: "This defines how Work, Remaining work, and Time spent durations are displayed." setting_emails_footer: "E-post sidfot" setting_emails_header: "E-post sidhuvud" diff --git a/config/locales/crowdin/tr.yml b/config/locales/crowdin/tr.yml index 941134327e04..e6cfca739574 100644 --- a/config/locales/crowdin/tr.yml +++ b/config/locales/crowdin/tr.yml @@ -263,16 +263,16 @@ tr: no_results_title_text: Şu anda hiç proje bulunmamakta no_results_content_text: Yeni bir proje oluşturun lists: - active: "Active projects" + active: "Aktif projeler" my: "Projelerim" - favored: "Favorite projects" - archived: "Archived projects" + favored: "Favori projeler" + archived: "Arşivlenmiş projeler" shared: "Shared project lists" my_lists: "My project lists" new: - placeholder: "New project list" + placeholder: "Yeni proje listesi" delete_modal: - title: "Delete project list" + title: "Proje listesini sil" text: "This action will not delete any project the list contains. Are you sure you want to delete this project list?" settings: change_identifier: Dil Tanımlayıcı değiştir @@ -291,7 +291,7 @@ tr: title: "Proje öznitelikleri" description: 'These project attributes will be displayed in your project overview page under their respective sections. You can enable or disable individual attributes. Project attributes and sections are defined in the administration settings by the administrator of the instance. ' filter: - label: "Search project attribute" + label: "Proje özniteliğini ara" actions: label_enable_single: "Active in this project, click to disable" label_disable_single: "Inactive in this project, click to enable" @@ -334,16 +334,16 @@ tr: columns: shared: "Shared" filters: - all_shares: "All shares" + all_shares: "Tüm paylaşımlar" menu: all: "Hepsi" - invited: "Invited" + invited: "Davet Edildi" locked: "Kilitlendi" - project_roles: "Project roles" + project_roles: "Proje Rolleri" wp_shares: "Work package shares" groups: "Gruplar" delete_member_dialog: - title: "Remove member" + title: "Üyeyi çıkart" will_remove_the_users_role: "This will remove the user’s role from this project." will_remove_the_groups_role: "This will remove the group role from this project." however_work_packages_shared_with_user_html: @@ -1327,7 +1327,7 @@ tr: button_edit: "Düzenle" button_edit_associated_wikipage: "İlişkili Wiki sayfasını düzenle: %{page_title}" button_expand_all: "Tümünü genişlet" - button_favorite: "Add to favorites" + button_favorite: "Favorilere Ekle" button_filter: "Filtre" button_generate: "Üretmek" button_list: "Liste" @@ -1355,7 +1355,7 @@ tr: button_unarchive: "Arşivden çıkar" button_uncheck_all: "Tüm işaretleri kaldır" button_unlock: "Kilidi kaldır" - button_unfavorite: "Remove from favorites" + button_unfavorite: "Favorilerden çıkar" button_unwatch: "İzleme" button_update: "Güncelle" button_upgrade: "Yükselt" diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index 04f31e8a1bfa..2180ff6297f0 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -1880,7 +1880,7 @@ zh-TW: label_collapsed_click_to_show: "已收合。按一下以顯示" label_configuration: 組態 label_comment_add: "新增留言" - label_comment_added: "新增內容" + label_comment_added: "新增留言" label_comment_delete: "刪除留言" label_comment_plural: "留言" label_commits_per_author: "每個作者的Commit" @@ -2109,7 +2109,7 @@ zh-TW: label_new_statuses_allowed: "允許的新狀態" label_news_singular: "最新消息" label_news_added: "有最新消息" - label_news_comment_added: "最新消息新增留言" + label_news_comment_added: "「最新消息」有新留言" label_news_latest: "最新消息" label_news_new: "增加消息" label_news_edit: "編輯消息" diff --git a/modules/costs/config/locales/crowdin/zh-TW.yml b/modules/costs/config/locales/crowdin/zh-TW.yml index 80f7b610e6f8..91ce28cb4c18 100644 --- a/modules/costs/config/locales/crowdin/zh-TW.yml +++ b/modules/costs/config/locales/crowdin/zh-TW.yml @@ -117,7 +117,7 @@ zh-TW: label_yes: "是" notice_something_wrong: "發生錯誤,請重試。" notice_successful_restore: "復原成功。" - notice_successful_lock: "鎖定成功。" + notice_successful_lock: "停用成功。" notice_cost_logged_successfully: '單位成本紀錄成功。' permission_edit_cost_entries: "編輯自己紀錄的單位成本" permission_edit_own_cost_entries: "編輯自己紀錄的單位成本" diff --git a/modules/grids/config/locales/crowdin/js-tr.yml b/modules/grids/config/locales/crowdin/js-tr.yml index 39c839699ecb..e1b9408593a8 100644 --- a/modules/grids/config/locales/crowdin/js-tr.yml +++ b/modules/grids/config/locales/crowdin/js-tr.yml @@ -43,8 +43,8 @@ tr: title: 'Alt Projeler' no_results: 'Alt proje yok.' project_favorites: - title: 'Favorite projects' - no_results: 'You currently have no favorite projects. Click on the star icon in the project dashboard to add one to your favorites.' + title: 'Favori projeler' + no_results: 'Şu anda favori projeniz yok. Favorilerinize bir proje eklemek için proje kontrol panelindeki yıldız simgesine tıklayın.' time_entries_current_user: title: 'Geçirdiğim zaman' displayed_days: 'Widget''te görüntülenen günler:' diff --git a/modules/meeting/config/locales/crowdin/tr.yml b/modules/meeting/config/locales/crowdin/tr.yml index 1ab5a65c26ef..726ddcb7deb2 100644 --- a/modules/meeting/config/locales/crowdin/tr.yml +++ b/modules/meeting/config/locales/crowdin/tr.yml @@ -71,7 +71,7 @@ tr: updated: "changed from %{old_value} to %{value}" updated_html: "changed from %{old_value} to %{value}" position: - updated: "reordered" + updated: "yeniden sıralandı" work_package: updated: "changed from %{old_value} to %{value}" updated_html: "changed from %{old_value} to %{value}" From c6f3b5d3271b0a84f9803730bfb45bbb626cb61a Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Sat, 24 Aug 2024 03:07:37 +0000 Subject: [PATCH 20/26] update locales from crowdin [ci skip] --- config/locales/crowdin/zh-TW.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index 2180ff6297f0..b909d7eebf78 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -2675,7 +2675,7 @@ zh-TW: permission_change_wiki_parent_page: "更改上層 Wiki 頁面" permission_change_work_package_status: "變更工作項目狀態" permission_change_work_package_status_explanation: "允許在不編輯工作包權限的情況下更改狀態" - permission_comment_news: "最新消息留言" + permission_comment_news: "在「最新消息」留言" permission_commit_access: "讀/寫 權限版本庫 (Commit)" permission_copy_projects: "複製專案" permission_copy_work_packages: "複製工作項目" @@ -3223,7 +3223,7 @@ zh-TW: text_no_roles_defined: 沒有定義的角色 text_no_access_tokens_configurable: "沒有存取權杖(Token)可以被設定" text_no_configuration_data: "角色,類型,工作項目狀態與工作流程都尚未設定。\n強烈建議先載入預設值,然後再修改它們。" - text_no_notes: "這個工作項目沒有評論" + text_no_notes: "這個工作項目沒有留言" text_notice_too_many_values_are_inperformant: "注意: 每頁顯示超過100個項目會增加頁面載入時間。" text_notice_security_badge_displayed_html: > 注:如果啓用,這會在 %{information_panel_label} 管理面板中和首頁上顯示一個包含您的安裝狀態的徽章。徽章僅向管理員顯示。
徽章將根據官方的 OpenProject 版本數據庫檢查您當前的 OpenProject 版本,提醒您是否存在任何更新或已知漏洞。如需詳細瞭解檢查可以提供哪些信息,需要哪些數據來提供可用更新,以及如何禁用此檢查,請訪問配置文檔。 From 49998b585676766c95ad54708ad8b41f09ceb8b9 Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Sun, 25 Aug 2024 03:07:02 +0000 Subject: [PATCH 21/26] update locales from crowdin [ci skip] --- config/locales/crowdin/js-ro.yml | 48 ++++++------- config/locales/crowdin/ro.yml | 70 +++++++++---------- .../avatars/config/locales/crowdin/js-ro.yml | 4 +- .../backlogs/config/locales/crowdin/ro.yml | 2 +- modules/bim/config/locales/crowdin/ro.yml | 4 +- .../boards/config/locales/crowdin/js-ro.yml | 2 +- modules/budgets/config/locales/crowdin/ro.yml | 6 +- modules/costs/config/locales/crowdin/ro.yml | 4 +- .../grids/config/locales/crowdin/js-ro.yml | 2 +- modules/meeting/config/locales/crowdin/ro.yml | 2 +- modules/meeting/config/locales/crowdin/tr.yml | 18 ++--- .../reporting/config/locales/crowdin/ro.yml | 4 +- .../config/locales/crowdin/js-ro.yml | 6 +- .../config/locales/crowdin/ro.yml | 12 ++-- .../config/locales/crowdin/ro.yml | 4 +- 15 files changed, 94 insertions(+), 94 deletions(-) diff --git a/config/locales/crowdin/js-ro.yml b/config/locales/crowdin/js-ro.yml index 0086d2554976..e5a5a2573586 100644 --- a/config/locales/crowdin/js-ro.yml +++ b/config/locales/crowdin/js-ro.yml @@ -22,9 +22,9 @@ ro: js: ajax: - hide: "Ascundere" - loading: "Încărcare…" - updating: "Actualizare…" + hide: "Ascunde" + loading: "Se încarcă…" + updating: "Se actualizează…" attachments: delete: "Șterge atașament" delete_confirmation: | @@ -40,7 +40,7 @@ ro: type_to_search: "Introduceți textul de căutat" autocomplete_select: placeholder: - multi: 'Adăugaţi "%{name}"' + multi: 'Adaugă ”%{name}”' single: 'Selectaţi "%{name}"' remove: "Elminaţi \"%{name}\"" active: "Activ %{label} %{name}" @@ -98,16 +98,16 @@ ro: button_show_gantt: "Arată vizualizarea Gantt" button_show_fullscreen: "Arată vizualizarea pe tot ecranul" button_more_actions: "Mai multe actiuni" - button_quote: "Citare" - button_save: "Salvare" + button_quote: "Citat" + button_save: "Salvează" button_settings: "Setări" - button_uncheck_all: "Deselecteaza tot" - button_update: "Actualizare" - button_export-pdf: "Descărcare PDF" - button_export-atom: "Descărcare Atom" - button_create: "Creare" + button_uncheck_all: "Deselectează tot" + button_update: "Actualizează" + button_export-pdf: "Descarcă PDF" + button_export-atom: "Descarcă Atom" + button_create: "Creează" card: - add_new: "Adăugați un nou card" + add_new: "Adaugă card nou" highlighting: inline: "Evidențiați în linie:" entire_card_by: "Întreaga carte de" @@ -213,11 +213,11 @@ ro: label_company: "Companie" label_first_name: "Prenume" label_last_name: "Nume" - label_domain: "domeniu" + label_domain: "Domeniu" label_subscriber: "Abonat" label_maximum_users: "Număr maxim de utilizatori activi" - label_starts_at: "Începe de la" - label_expires_at: "Expiră la" + label_starts_at: "Începe în" + label_expires_at: "Expiră în" receive_newsletter: Doresc să primesc buletinul informativ OpenProject. taken_domain: Nu poate exista decât un singur proces activ pe domeniu. domain_mismatch: Numele de gazdă al solicitării curente nu se potrivește cu numele de gazdă configurat. Vă rugăm să verificați de două ori setările sistemului. @@ -315,7 +315,7 @@ ro: bar: "Etichete de bare" left: "Stânga" right: "Dreapta" - farRight: "Extrema dreaptă" + farRight: "Extremă dreaptă" description: > Selectați atributele pe care doriți să le afișați în pozițiile respective ale graficului Gantt tot timpul. Țineți cont că atunci când planează deasupra unui element, etichetele sale vor fi afișate în locul acestor atribute. button_activate: "Grafic Gantt" @@ -402,7 +402,7 @@ ro: label_avatar: "Avatar" label_between: "între" label_board: "Tablă" - label_board_locked: "Închis" + label_board_locked: "Blocat" label_board_plural: "Panouri" label_board_sticky: "Lipicios" label_change: "Modificare" @@ -446,7 +446,7 @@ ro: label_group_by: "Grupare după" label_group_plural: "Grupuri" label_hide_attributes: "Arată mai puţin" - label_hide_column: "Ascundere coloana" + label_hide_column: "Ascunde coloana" label_hide_project_menu: "Închideți meniul proiectului" label_in: "în" label_in_less_than: "în mai puțin de" @@ -534,7 +534,7 @@ ro: label_children_derived_duration: "Durata derivată a pachetului de lucru pentru copii" label_warning: "Avertizare" label_work_package: "Pachet de lucru" - label_work_package_parent: "Pachetul de lucru părinte" + label_work_package_parent: "Pachet de lucru părinte" label_work_package_plural: "Pachete de lucru" label_watch: "Monitorizare" label_watch_work_package: "Urmăriți pachetul de lucru" @@ -624,7 +624,7 @@ ro: commented: "Cu comentarii" processed: "Processed" prioritized: "Prioritized" - dateAlert: "Alertă de dată" + dateAlert: "Alertă dată" shared: "Partajat" date_alerts: milestone_date: "Dată etapă" @@ -668,7 +668,7 @@ ro: title: "Setări de notificare" notify_me: "Anunta-ma" reminders: - no_notification: Nici o notificare + no_notification: Nicio notificare timeframes: normal: PT0S: în aceeași zi @@ -676,14 +676,14 @@ ro: P3D: Cu 3 zile înainte P7D: ' cu o săptămână înainte ' overdue: - P1D: în fiecare zi + P1D: zilnic P3D: la fiecare 3 zile P7D: săptămânal reasons: mentioned: title: "Menţionat" description: "Primește o notificare de fiecare dată când cineva mă menționează oriunde" - assignee: "Responsabil" + assignee: "Executant" responsible: "Responsabil" shared: "Partajat" watched: "Observator" @@ -700,7 +700,7 @@ ro: title: "Neparticipantă" description: "Notificări suplimentare pentru activitățile din toate proiectele." date_alerts: - title: "Alerte date" + title: "Alerte dăți" description: "Notificări automate atunci când se apropie date importante pentru pachetele de lucru deschise în care sunteți implicat (desemnat, responsabil sau observator)." teaser_text: "Cu alertele de date, veți fi notificat cu privire la următoarele date de început sau de sfârșit, astfel încât să nu ratați sau să uitați niciodată un termen limită important." overdue: În caz de întârziere diff --git a/config/locales/crowdin/ro.yml b/config/locales/crowdin/ro.yml index 77da7fbfc3ed..9a3ecc2d4cfb 100644 --- a/config/locales/crowdin/ro.yml +++ b/config/locales/crowdin/ro.yml @@ -338,7 +338,7 @@ ro: menu: all: "Toate" invited: "Invitat" - locked: "Închis" + locked: "Blocat" project_roles: "Roluri proiect" wp_shares: "Partajări pachete de lucru" groups: "Grupuri" @@ -1187,9 +1187,9 @@ ro: field_erroneous_label: "Acest câmp este invalid: %{full_errors}\nTrebuie introdusă o valoare validă." activity: item: - created_by_on: "creat de %{user} la %{datetime}" + created_by_on: "creat de %{user} în %{datetime}" created_by_on_time_entry: "time logged by %{user} on %{datetime}" - created_on: "creat pe %{datetime}" + created_on: "creat în %{datetime}" created_on_time_entry: "time logged on %{datetime}" updated_by_on: "actualizat de %{user} la %{datetime}" updated_by_on_time_entry: "logged time updated by %{user} on %{datetime}" @@ -1277,7 +1277,7 @@ ro: title: "Titlu" type: "Tip" updated_at: "Actualizat pe" - updated_on: "Actualizat pe" + updated_on: "Actualizat în" uploader: "Autor" user: "Utilizator" value: "Valoare" @@ -1291,8 +1291,8 @@ ro: label_reset_token: "Resetează token backup" label_token_users: "Următorii utilizatori au tokeni de backup activi" reset_token: - action_create: Creare - action_reset: Resetare + action_create: Creează + action_reset: Resetează heading_reset: "Resetează token backup" heading_create: "Creează token backup" implications: > @@ -1313,7 +1313,7 @@ ro: limit_reached: Puteţi face doar %{limit} copii de rezervă pe zi. button_actions: "Acțiuni" button_add: "Adăugare" - button_add_comment: "Adăugare comentariu" + button_add_comment: "Adăugă comentariu" button_add_member: Adăugare participant button_add_watcher: "Adăugare observator" button_annotate: "Adnotare" @@ -1330,9 +1330,9 @@ ro: button_close: "Închide" button_collapse_all: "Restrângere totală" button_configure: "Configurare" - button_continue: "Continuaţi" + button_continue: "Continuă" button_copy: "Copiere" - button_copy_to_clipboard: "Copiere în clipboard" + button_copy_to_clipboard: "Copiază în clipboard" button_copy_link_to_clipboard: "Copy link to clipboard" button_copy_and_follow: "Copiere și continuare" button_create: "Creare" @@ -1346,7 +1346,7 @@ ro: button_edit_associated_wikipage: "Editare pagină wiki asociată: %{page_title}" button_expand_all: "Extindere totală" button_favorite: "Adaugă la favorite" - button_filter: "Filtrare" + button_filter: "Filtrează" button_generate: "Generare" button_list: "Listă" button_lock: "Blocare" @@ -1363,8 +1363,8 @@ ro: button_reset: "Resetare" button_rollback: "Revenire la această versiune" button_save: "Salvare" - button_save_as: "Salvare ca" - button_apply_changes: "Aplica modificariile" + button_save_as: "Salvează ca" + button_apply_changes: "Aplică modificările" button_save_back: "Salvare și înapoi" button_show: "Afişare" button_sort: "Sortare" @@ -1907,12 +1907,12 @@ ro: label_available_projects: "Proiecte disponibile" label_api_doc: "Documentație API" label_backup: "Backup" - label_backup_code: "Cod de rezervă" + label_backup_code: "Cod copie de rezervă" label_between: "între" label_blocked_by: "blocat de" label_blocks: "blochează" label_blog: "Blog" - label_forums_locked: "Închis" + label_forums_locked: "Blocat" label_forum_new: "Forum nou" label_forum_plural: "Forumuri" label_forum_sticky: "Lipicios" @@ -1926,7 +1926,7 @@ ro: label_calendars_and_dates: "Calendare și dăți" label_calendar_show: "Afișare calendar" label_category: "Categorie" - label_consent_settings: "Consimţământul utilizatorului" + label_consent_settings: "Consimțământ utilizator" label_wiki_menu_item: Meniu wiki label_select_main_menu_item: Selectare meniu wiki nou label_required_disk_storage: "Necesar spațiu pe disc" @@ -1957,7 +1957,7 @@ ro: label_comment_plural: "Comentarii" label_commits_per_author: "Încărcări pe autor" label_commits_per_month: "Încărcări pe lună" - label_confirmation: "Confirmare parolă" + label_confirmation: "Confirmare" label_contains: "conţine" label_content: "Conținut" label_color_plural: "Culori" @@ -1978,7 +1978,7 @@ ro: label_custom_style: "Design" label_dashboard: "Panou de control" label_database_version: "Versiunea PostgreSQL" - label_date: "Dată" + label_date: "Data" label_date_and_time: "Data" label_date_format: "Format dată" label_date_from: "Din" @@ -2047,7 +2047,7 @@ ro: label_feeds_access_key: "Cheie de acces RSS" label_feeds_access_key_created_on: "Cheia de acces RSS a fost creată acum %{value}" label_feeds_access_key_type: "RSS" - label_file_plural: "Fişiere" + label_file_plural: "Fișiere" label_filter_add: "Adăugare filtru" label_filter: "Filtre" label_filter_plural: "Filtre" @@ -2063,14 +2063,14 @@ ro: label_generate_key: "Generare cheie" label_git_path: "Calea catre directorul .git" label_greater_or_equal: ">=" - label_group_by: "Grupare după" + label_group_by: "Grupează după" label_group_new: "Grupare nouă" label_group: "Grup" label_group_named: "Grup %{name}" label_group_plural: "Grupuri" label_help: "Asistenţă" label_here: aici - label_hide: "Ascundere" + label_hide: "Ascunde" label_history: "Istoric" label_hierarchy_leaf: "Frunză de ierarhie" label_home: "Pagina de start" @@ -2086,14 +2086,14 @@ ro: label_include_sub_projects: Include sub-projects label_index_by_date: "Indexare după dată" label_index_by_title: "Indexare după titlu" - label_information: "Informații" + label_information: "Informație" label_information_plural: "Informații" label_installation_guides: "Ghiduri de instalare" label_integer: "Număr întreg" label_internal: "Intern" label_introduction_video: "Video de introducere" label_invite_user: "Invitare utilizator" - label_share: "Distribuiți" + label_share: "Distribuie" label_share_project_list: "Distribuie lista de proiecte" label_share_work_package: "Share work package" label_show_hide: "Afișare/ascundere" @@ -2520,10 +2520,10 @@ ro: other: "Există %{count} mai multe pachete de lucru cu notificări." open_in_browser: "Open in browser" reason: - watched: "Văzut" + watched: "Urmărit" assigned: "Alocat" responsible: "Responsabil" - mentioned: "Menţionat" + mentioned: "Menționat" shared: "Partajat" subscribed: "toate" prefix: "Primită din cauza setării de notificare: %{reason}" @@ -2641,7 +2641,7 @@ ro: more_actions: "Mai multe acțiuni" noscript_description: "Trebuie să activaţi JavaScript pentru a utiliza OpenProject!" noscript_heading: "JavaScript dezactivat" - noscript_learn_more: "Aflați mai multe" + noscript_learn_more: "Află mai multe" notice_accessibility_mode: Modul accesibilitate poate fi activat în contul tău [settings](url). notice_account_activated: "Contul a fost activat. Vă puteți autentifica acum." notice_account_already_activated: Contul a fost activat deja. @@ -3366,7 +3366,7 @@ ro: configure_view: heading: Configurați vizualizarea columns: - input_label: "Adaugați coloane" + input_label: "Adaugă coloane" input_placeholder: "Select a column" drag_area_label: "Manage and reorder columns" sort_by: @@ -3409,11 +3409,11 @@ ro: status_change: "Schimbare de stare" text_change_disabled_for_provider_login: "Numele este setat de furnizorul de logare și, prin urmare, nu poate fi modificat." text_change_disabled_for_ldap_login: "The name and email is set by LDAP and can thus not be changed." - unlock: "Deblocare" + unlock: "Deblochează" unlock_and_reset_failed_logins: "Deblocare şi resetare autentificări eşuate" version_status_closed: "închis" version_status_locked: "blocat" - version_status_open: "deschise" + version_status_open: "deschis" note: Notă note_password_login_disabled: "Autentificarea cu parolă a fost dezactivată prin %{configuration}." warning: Avertizare @@ -3463,9 +3463,9 @@ ro: permissions: comment: "Comentariu" comment_description: "Can view and comment this work package." - edit: "Editare" + edit: "Editează" edit_description: "Can view, comment and edit this work package." - view: "Vizualizare" + view: "Vizualizează" view_description: "Can view this work package." sharing: count: @@ -3485,8 +3485,8 @@ ro: label_search: "Caută utilizatori pentru a invita" label_search_placeholder: "Caută după utilizator sau adresă de e-mail" label_toggle_all: "Toggle all shares" - remove: "Eliminare" - share: "Distribuiți" + remove: "Elimină" + share: "Distribuie" text_empty_search_description: "Nu sunt utilizatori cu criteriile curente de filtrare." text_empty_search_header: "Nu am putut găsi niciun rezultat potrivit." text_empty_state_description: "The %{entity} has not been shared with anyone yet." @@ -3528,9 +3528,9 @@ ro: header: "Nepartajat: Privat" description: "This project list has not been shared with anyone yet. Only you can access this list." permissions: - view: "Vizualizare" + view: "Vizualizează" view_description: "Can view this project list." - edit: "Editare" + edit: "Editează" edit_description: "Can view, share and edit this project list." upsale: message: "Sharing project lists with individual users is an enterprise add-on." @@ -3539,7 +3539,7 @@ ro: Days that are not selected are skipped when scheduling work packages (and not included in the day count). These can be overridden at a work-package level. instance_wide_info: > Dates added to the list below are considered non-working and skipped when scheduling work packages. - change_button: "Modificarea zilelor lucrătoare" + change_button: "Modifică zilelor lucrătoare" warning: > Schimbarea zilelor din săptămână care sunt considerate zile lucrătoare sau zile nelucrătoare poate afecta zilele de începere și sfârșit ale tuturor pachetelor de lucru în toate proiectele, în acest caz. journal_note: diff --git a/modules/avatars/config/locales/crowdin/js-ro.yml b/modules/avatars/config/locales/crowdin/js-ro.yml index c5906280053f..bfb90f6c1489 100644 --- a/modules/avatars/config/locales/crowdin/js-ro.yml +++ b/modules/avatars/config/locales/crowdin/js-ro.yml @@ -1,8 +1,8 @@ #English strings go here ro: js: - label_preview: 'Previzualizare' - button_update: 'Actualizare' + label_preview: 'Previzualizează' + button_update: 'Actualizează' avatars: label_choose_avatar: "Alegeți Avatar din fișier" uploading_avatar: "Se încarcă avatarul tău." diff --git a/modules/backlogs/config/locales/crowdin/ro.yml b/modules/backlogs/config/locales/crowdin/ro.yml index dc06ee404cd4..02d30e2bb6df 100644 --- a/modules/backlogs/config/locales/crowdin/ro.yml +++ b/modules/backlogs/config/locales/crowdin/ro.yml @@ -75,7 +75,7 @@ ro: unassigned: "Neasociate" x_more: "%{count} mai mult..." backlogs_active: "activ" - backlogs_any: "Oricare" + backlogs_any: "oricare" backlogs_inactive: "Proiectul nu prezintă nicio activitate" backlogs_points_burn_direction: "Arderea punctelor în sus/jos" backlogs_product_backlog: "Fișa produsului" diff --git a/modules/bim/config/locales/crowdin/ro.yml b/modules/bim/config/locales/crowdin/ro.yml index f8c2cf4880d9..b4849f12e35e 100644 --- a/modules/bim/config/locales/crowdin/ro.yml +++ b/modules/bim/config/locales/crowdin/ro.yml @@ -23,7 +23,7 @@ ro: bcf_xml: xml_file: 'Fișier BCF XML' import_title: 'Importă' - export: 'Exportare' + export: 'Exportă' import_update_comment: '(Actualizat în BCF import)' import_failed: 'Nu se poate importa fișierul BCF: %{error}' import_failed_unsupported_bcf_version: 'Nu a reușit să citească fișierul BCF: Versiunea BCF nu este acceptată. Vă rugăm să vă asigurați că versiunea este cel puțin %{minimal_version} sau mai mare.' @@ -81,7 +81,7 @@ ro: attributes: bim/ifc_models/ifc_model: ifc_attachment: "Fișier IFC" - is_default: "Modelul implicit" + is_default: "Model implicit" attachments: "Fișier IFC" errors: models: diff --git a/modules/boards/config/locales/crowdin/js-ro.yml b/modules/boards/config/locales/crowdin/js-ro.yml index d3cbfa4f6522..25a24abff247 100644 --- a/modules/boards/config/locales/crowdin/js-ro.yml +++ b/modules/boards/config/locales/crowdin/js-ro.yml @@ -20,7 +20,7 @@ ro: unlock_version: 'Versiunea de deblocare' edit_version: 'Editați versiunea' show_version: 'Arată versiunea' - locked: 'Închis' + locked: 'Blocat' closed: 'Închis' new_board: 'Bord nou' add_list: 'Adăugați lista la bord' diff --git a/modules/budgets/config/locales/crowdin/ro.yml b/modules/budgets/config/locales/crowdin/ro.yml index 033aadf692c7..101e9a25cb20 100644 --- a/modules/budgets/config/locales/crowdin/ro.yml +++ b/modules/budgets/config/locales/crowdin/ro.yml @@ -54,7 +54,7 @@ ro: caption_labor: "Muncă" caption_labor_costs: "Costurile reale ale forței de muncă" caption_material_costs: "Costuri unitare reale" - budgets_title: "Bugetele" + budgets_title: "Bugete" events: budget: "Buget editat" help_click_to_edit: "Câmpul %s este gol. Click aici pentru a-l edita." @@ -62,7 +62,7 @@ ro: help_override_rate: "Introduceți o valoare aici pentru a înlocui rata implicită." label_budget: "Buget" label_budget_new: "Buget nou" - label_budget_plural: "Bugetele" + label_budget_plural: "Bugete" label_budget_id: "Buget #%{id}" label_deliverable: "Buget" label_example_placeholder: 'de exemplu, %{decimal}' @@ -72,7 +72,7 @@ ro: notice_no_budgets_available: "Nu există bugete disponibile." permission_edit_budgets: "Editare bugete" permission_view_budgets: "Vezi bugete" - project_module_budgets: "Bugetele" + project_module_budgets: "Bugete" text_budget_reassign_to: "Reatribuiți-le acestui buget:" text_budget_delete: "Ștergeți bugetul din toate pachetele de lucru" text_budget_destroy_assigned_wp: "Există %{count} pachete de lucru alocate acestui buget. Ce doriți să faceți?" diff --git a/modules/costs/config/locales/crowdin/ro.yml b/modules/costs/config/locales/crowdin/ro.yml index 167435d6a43b..760a4419abb9 100644 --- a/modules/costs/config/locales/crowdin/ro.yml +++ b/modules/costs/config/locales/crowdin/ro.yml @@ -57,7 +57,7 @@ ro: nullify_is_not_valid_for_cost_entries: "Înregistrările de costuri nu pot fi atribuite unui proiect." attributes: comment: "Comentariu" - cost_type: "Tipul de cost" + cost_type: "Tip cost" costs: "Costuri" current_rate: "Impozit" hours: "Ore" @@ -98,7 +98,7 @@ ro: label_edit: "Editează" label_generic_user: "Utilizator generic" label_greater_or_equal: ">=" - label_group_by: "Grupare după" + label_group_by: "Grupează după" label_group_by_add: "Adăugați un câmp de grupare" label_hourly_rate: "Tarif orar" label_include_deleted: "Includeți șters" diff --git a/modules/grids/config/locales/crowdin/js-ro.yml b/modules/grids/config/locales/crowdin/js-ro.yml index 3e6809f478bf..4d47a7b16b66 100644 --- a/modules/grids/config/locales/crowdin/js-ro.yml +++ b/modules/grids/config/locales/crowdin/js-ro.yml @@ -17,7 +17,7 @@ ro: members: title: 'Membri' no_results: 'Nu există membri vizibili.' - view_all_members: 'Vizualizare toți participanții' + view_all_members: 'Vezi toți membrii' add: 'Membru' too_many: 'Afișarea a %{count} din %{total} membri.' news: diff --git a/modules/meeting/config/locales/crowdin/ro.yml b/modules/meeting/config/locales/crowdin/ro.yml index aa4610e5786f..d20ff9104f62 100644 --- a/modules/meeting/config/locales/crowdin/ro.yml +++ b/modules/meeting/config/locales/crowdin/ro.yml @@ -105,7 +105,7 @@ ro: label_upcoming_invitations: "Upcoming invitations" label_past_invitations: "Past invitations" label_attendee: "Attendee" - label_author: "Autor" + label_author: "Creator" label_notify: "Trimiteți pentru revizuire" label_icalendar: "Trimiteți iCalendar" label_icalendar_download: "Download iCalendar event" diff --git a/modules/meeting/config/locales/crowdin/tr.yml b/modules/meeting/config/locales/crowdin/tr.yml index 726ddcb7deb2..e80180be942a 100644 --- a/modules/meeting/config/locales/crowdin/tr.yml +++ b/modules/meeting/config/locales/crowdin/tr.yml @@ -58,7 +58,7 @@ tr: meeting_agenda_item: "Ajanda öğesi" meeting_agenda: "Ajanda" meeting_minutes: "Dakika" - meeting_section: "Section" + meeting_section: "Bölüm" activity: filter: meeting: "Toplantılar" @@ -116,12 +116,12 @@ tr: text: "Attached files are available to all meeting participants. You can also drag and drop these into agenda item notes." copy: title: "Copy meeting: %{title}" - attachments: "Copy attachments" + attachments: "Ekleri kopyala" attachments_text: "Copy over all attached files to the new meeting" agenda: "Gündemi kopyala" agenda_text: "Eski toplantının gündemini kopyalayın" email: - send_emails: "Send emails" + send_emails: "E-posta gönder" send_invitation_emails: "Send out invitation emails for all participants." open_meeting_link: "Açık toplantı" invited: @@ -151,7 +151,7 @@ tr: permission_edit_meetings: "Toplantıları düzenleme" permission_delete_meetings: "Toplantıları silme" permission_view_meetings: "Toplantıları görüntüle" - permission_create_meeting_agendas: "Create meeting agendas" + permission_create_meeting_agendas: "Toplantı gündemleri oluşturun" permission_create_meeting_agendas_explanation: "Allows editing the Classic Meeting's agenda content." permission_manage_agendas: "Acentaları yönetme" permission_manage_agendas_explanation: "Allows managing the Dynamic Meeting's agenda items." @@ -169,17 +169,17 @@ tr: text_meeting_agenda_open_are_you_sure: "Bu, dakikalardaki tüm değişikliklerin üzerine yazacaktır! Devam etmek istiyor musun?" text_meeting_minutes_for_meeting: 'toplantı için dakikalar "%{meeting}"' text_notificiation_invited: "Bu posta, aşağıdaki toplantı için bir ics girişi içermektedir:" - text_meeting_empty_heading: "Your meeting is empty" + text_meeting_empty_heading: "Toplantınız boş" text_meeting_empty_description_1: "Start by adding agenda items below. Each item can be as simple as just a title, but you can also add additional details like duration and notes." text_meeting_empty_description_2: 'You can also add references to existing work packages. When you do, related notes will automatically be visible in the work package''s "Meetings" tab.' - label_meeting_empty_action: "Add agenda item" - label_meeting_actions: "Meeting actions" + label_meeting_empty_action: "Gündem maddesi ekle" + label_meeting_actions: "Toplantı eylemleri" label_meeting_edit_title: "Toplantı başlığını düzenle" label_meeting_delete: "Toplantıyı sil" label_meeting_created_by: "Oluşturan" - label_meeting_last_updated: "Last updated" + label_meeting_last_updated: "Son güncelleme" label_agenda_items: "Gündem maddeleri" - label_agenda_items_reordered: "reordered" + label_agenda_items_reordered: "yeniden sıralandı" label_agenda_item_remove: "Remove from agenda" label_agenda_item_undisclosed_wp: "Work package #%{id} not visible" label_agenda_item_deleted_wp: "Deleted work package reference" diff --git a/modules/reporting/config/locales/crowdin/ro.yml b/modules/reporting/config/locales/crowdin/ro.yml index 454e5e82b7dd..082f7d750706 100644 --- a/modules/reporting/config/locales/crowdin/ro.yml +++ b/modules/reporting/config/locales/crowdin/ro.yml @@ -27,7 +27,7 @@ ro: comments: "Comentariu" cost_reports_title: "Timp și costuri" label_cost_report: "Raport de cost" - label_cost_report_plural: "Rapoarte de cost" + label_cost_report_plural: "Rapoarte cost" description_drill_down: "Afișare detalii" description_filter_selection: "Selecție" description_multi_select: "Afișare selecție multiplă" @@ -68,7 +68,7 @@ ro: label_filter: "Filtrare" label_filter_add: "Adăugare filtru" label_filter_plural: "Filtre" - label_group_by: "Grupare după" + label_group_by: "Grupează după" label_group_by_add: "Adăugați atributul Group-by" label_inactive: "Inactiv" label_no: "Nu" diff --git a/modules/team_planner/config/locales/crowdin/js-ro.yml b/modules/team_planner/config/locales/crowdin/js-ro.yml index a4a811afb0d5..a62ef77cee75 100644 --- a/modules/team_planner/config/locales/crowdin/js-ro.yml +++ b/modules/team_planner/config/locales/crowdin/js-ro.yml @@ -8,8 +8,8 @@ ro: create_title: 'Creați un nou planificator de echipă' unsaved_title: 'Planificator de echipă nenumit' no_data: 'Adăugați persoane desemnate pentru a vă configura planificatorul echipei.' - add_assignee: 'Adăugare responsabil' - remove_assignee: 'Înlăturați responsabilul' + add_assignee: 'Adaugă responsabil' + remove_assignee: 'Înlătură responsabil' two_weeks: '2-săptămână' one_week: '1-săptămână' four_weeks: '4 săptămâni' @@ -21,7 +21,7 @@ ro: cannot_drag_to_non_working_day: 'Acest pachet de lucru nu poate începe/încheia o zi nelucrătoare.' quick_add: empty_state: 'Utilizați câmpul de căutare pentru a găsi pachete de lucru și trageți-le la planificator pentru a-l atribui cuiva și defini datele de început și de sfârșit.' - search_placeholder: 'Căutați...' + search_placeholder: 'Caută...' modify: errors: permission_denied: 'Nu aveți permisiunile necesare pentru a modifica acest lucru.' diff --git a/modules/team_planner/config/locales/crowdin/ro.yml b/modules/team_planner/config/locales/crowdin/ro.yml index 5fd7fe62a70f..7bd738200e06 100644 --- a/modules/team_planner/config/locales/crowdin/ro.yml +++ b/modules/team_planner/config/locales/crowdin/ro.yml @@ -5,13 +5,13 @@ ro: description: "Provides team planner views." permission_view_team_planner: "Vezi planificatorul echipei" permission_manage_team_planner: "Gestionează planificatorul de echipe" - project_module_team_planner_view: "Planificatori de echipe" + project_module_team_planner_view: "Planificatori echipă" team_planner: - label_team_planner: "Planificator de echipă" - label_new_team_planner: "Noul planificator de echipe" - label_create_new_team_planner: "Creați un nou planificator de echipă" - label_team_planner_plural: "Planificatori de echipe" + label_team_planner: "Planificator echipă" + label_new_team_planner: "Planificator echipă nou" + label_create_new_team_planner: "Creează planificator echipă nou" + label_team_planner_plural: "Planificatori echipe" label_assignees: "Responsabili" upsale: - title: "Planificator de echipă" + title: "Planificator echipă" description: "Obțineți o imagine de ansamblu completă a planificării echipei dumneavoastră cu Team Planner. Întindeți, scurtați și glisați pachetele de lucru pentru a modifica datele, pentru a le muta sau pentru a schimba destinatarii." diff --git a/modules/two_factor_authentication/config/locales/crowdin/ro.yml b/modules/two_factor_authentication/config/locales/crowdin/ro.yml index 48369a2c0ea2..2c6d4d6c2a19 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ro.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ro.yml @@ -32,7 +32,7 @@ ro: error_invalid_backup_code: "Cod de backup 2FA invalid" channel_unavailable: "Canalul de livrare %{channel} nu este disponibil." no_valid_phone_number: "Nu există un număr de telefon valabil." - label_pwd_confirmation: "Parolă" + label_pwd_confirmation: "Parola" notice_pwd_confirmation: "Trebuie să vă confirmați parola atunci când faceți modificări la aceste setări." label_device_type: "Tipul de dispozitiv" label_default_device: "Dispozitiv 2FA implicit" @@ -174,7 +174,7 @@ ro: label_expiration_hint: "%{date} sau la deconectare" label_actions: "Acțiuni" label_confirmed: "Confirmat" - button_continue: "Continuaţi" + button_continue: "Continuă" button_make_default: "Marcați ca implicit" label_unverified_phone: "Telefonul mobil nu a fost încă verificat" notice_phone_number_format: "Vă rugăm să introduceți numărul în următorul format: +XX XXXXXXXX." From 8925d6298e59554c88e0dc88ad2f941505a8b35e Mon Sep 17 00:00:00 2001 From: Maya Berdygylyjova Date: Mon, 26 Aug 2024 12:16:24 +0200 Subject: [PATCH 22/26] =?UTF-8?q?[#57400]=20Delete=20wiki-Macro=20"include?= =?UTF-8?q?=20a=20wiki=20page=20in=20antother=20wiki"=20men=E2=80=A6=20(#1?= =?UTF-8?q?6525)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [#57400] Delete wiki-Macro "include a wiki page in antother wiki" mentioned in FAQs https://community.openproject.org/work_packages/57400 [#57400] Delete wiki-Macro "include a wiki page in antother wiki" mentioned in FAQs https://community.openproject.org/work_packages/57400 --- docs/user-guide/wiki/wiki-faq/README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/user-guide/wiki/wiki-faq/README.md b/docs/user-guide/wiki/wiki-faq/README.md index 479924713210..d039da24c7f5 100644 --- a/docs/user-guide/wiki/wiki-faq/README.md +++ b/docs/user-guide/wiki/wiki-faq/README.md @@ -16,12 +16,6 @@ Yes, you can do both, you have to export the wiki or the wiki page as a Markdown Currently supported are PNG and JPEG. -## Can I include a wiki page in another wiki? - -You can paste the content of one wiki into another wiki. To do this, you need to copy the content of your wiki pages and paste the text into a wiki page in another wiki. -There exists a macro {{include(wikipage title)}} which includes another page from the same project. -If the page is located in a different project the command needs to be changed to the following: {{include(project title: wikipage title)}} - ## Can I include wiki pages in the left menu bar? What does "Configure menu item" mean? The option configure menu item was designed to ease the handling of page structures. From 0a3ab4b8b7cc61a5be893cd28643f505fcdced79 Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Tue, 27 Aug 2024 03:16:59 +0000 Subject: [PATCH 23/26] update locales from crowdin [ci skip] --- config/locales/crowdin/js-zh-TW.yml | 4 ++-- config/locales/crowdin/zh-TW.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/crowdin/js-zh-TW.yml b/config/locales/crowdin/js-zh-TW.yml index a4d6dfe08db2..a153c165b230 100644 --- a/config/locales/crowdin/js-zh-TW.yml +++ b/config/locales/crowdin/js-zh-TW.yml @@ -467,7 +467,7 @@ zh-TW: label_meeting_minutes: "會議記錄" label_menu_collapse: "收合" label_menu_expand: "展開" - label_more_than_ago: "多天前" + label_more_than_ago: "超過幾天" label_next: "下一個" label_no_color: "無顏色" label_no_data: "沒有資料可顯示" @@ -1001,7 +1001,7 @@ zh-TW: subproject: "子專案" title: "標題" type: "類型" - updatedAt: "最後更新" + updatedAt: "更新" versionName: "版本" version: "版本" work: "工時" diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index b909d7eebf78..ed33079207f1 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -2095,7 +2095,7 @@ zh-TW: label_modules: "模組" label_months_from: "從幾個月" label_more: "更多" - label_more_than_ago: "多天前" + label_more_than_ago: "超過幾天" label_move_work_package: "移動工作項目" label_my_account: "我的帳號" label_my_activity: "我的活動紀錄" From d371921a39c506d559884cefeb1fbd39d16fc09b Mon Sep 17 00:00:00 2001 From: Eric Schubert Date: Tue, 27 Aug 2024 11:10:25 +0200 Subject: [PATCH 24/26] [#57501] file link creation via API fails on legacy nextcloud configs - https://community.openproject.org/work_packages/57501 - added handling for nextcloud file storage urls without trailing slashes - added test cases --- .../lib/api/v3/file_links/file_link_representer.rb | 13 +++++++++++-- .../file_link_representer_parsing_spec.rb | 14 +++++++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/modules/storages/lib/api/v3/file_links/file_link_representer.rb b/modules/storages/lib/api/v3/file_links/file_link_representer.rb index 27eee1c2659c..d03c8d0f3fbd 100644 --- a/modules/storages/lib/api/v3/file_links/file_link_representer.rb +++ b/modules/storages/lib/api/v3/file_links/file_link_representer.rb @@ -122,8 +122,8 @@ class FileLinkRepresenter < ::API::Decorators::Single # remove all trailing slashes except the last one canonical_url = "#{fragment['href'].gsub(/\/+$/, '')}/" - represented.storage = ::Storages::Storage.find_by(host: canonical_url) - represented.storage ||= ::Storages::Storage::InexistentStorage.new(host: canonical_url) + represented.storage = find_storage_by_url(canonical_url) || + ::Storages::Storage::InexistentStorage.new(host: canonical_url) } associated_resource :container, @@ -153,6 +153,15 @@ def make_origin_data(model) } end + def find_storage_by_url(canonical_url) + found = ::Storages::Storage.find_by(host: canonical_url) + return found if found.present? + + # Search for storages that are still using the legacy URL format + legacy_url_data = canonical_url.chomp("/") + ::Storages::Storage.find_by(host: legacy_url_data) + end + def parse_origin_data(origin_data) { origin_id: origin_data["id"].to_s, diff --git a/modules/storages/spec/lib/api/v3/file_links/file_link_representer_parsing_spec.rb b/modules/storages/spec/lib/api/v3/file_links/file_link_representer_parsing_spec.rb index 00bedb0b16d9..152d0bd43bde 100644 --- a/modules/storages/spec/lib/api/v3/file_links/file_link_representer_parsing_spec.rb +++ b/modules/storages/spec/lib/api/v3/file_links/file_link_representer_parsing_spec.rb @@ -40,9 +40,9 @@ let(:current_user) { build_stubbed(:user) } before do - allow(Storages::Storage).to receive(:find_by) - .with(host: storage.host) - .and_return storage + allow(Storages::Storage).to receive(:find_by) do |args| + args[:host] == storage.host ? storage : nil + end end describe "parsing" do @@ -88,6 +88,14 @@ end end + context "if storage is configured with legacy url format (without trailing slash)" do + let(:storage) { build_stubbed(:nextcloud_storage, host: "https://host.without-trailing.slash") } + + it "is parsed correctly" do + expect(parsed).to have_attributes(storage_id: storage.id) + end + end + context "if storage is given as resource" do let(:parsed_hash) do { From 594c5fdc867c1f9d53a482209c549af473ee6dda Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Wed, 28 Aug 2024 03:08:50 +0000 Subject: [PATCH 25/26] update locales from crowdin [ci skip] --- modules/boards/config/locales/crowdin/fa.yml | 2 +- modules/budgets/config/locales/crowdin/fa.yml | 2 +- modules/reporting/config/locales/crowdin/fa.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/boards/config/locales/crowdin/fa.yml b/modules/boards/config/locales/crowdin/fa.yml index 17d7fc18c187..815b81fbb612 100644 --- a/modules/boards/config/locales/crowdin/fa.yml +++ b/modules/boards/config/locales/crowdin/fa.yml @@ -13,7 +13,7 @@ fa: label_board_type: "نوع انجمن" board_types: free: اصول اولیه - action: "تابلوی اکشن (%{attribute})" + action: "تابلوی فعالیت (%{attribute})" board_type_attributes: assignee: نماینده status: وضعیت diff --git a/modules/budgets/config/locales/crowdin/fa.yml b/modules/budgets/config/locales/crowdin/fa.yml index 62c9d879853b..546d4b09c809 100644 --- a/modules/budgets/config/locales/crowdin/fa.yml +++ b/modules/budgets/config/locales/crowdin/fa.yml @@ -51,7 +51,7 @@ fa: button_add_cost_type: "Add cost type" button_cancel_edit_budget: "Cancel editing budget" button_cancel_edit_costs: "Cancel editing costs" - caption_labor: "Labor" + caption_labor: "کار" caption_labor_costs: "Actual labor costs" caption_material_costs: "Actual unit costs" budgets_title: "بودجه ها" diff --git a/modules/reporting/config/locales/crowdin/fa.yml b/modules/reporting/config/locales/crowdin/fa.yml index d2d7fae39473..12bf4bfd6b15 100644 --- a/modules/reporting/config/locales/crowdin/fa.yml +++ b/modules/reporting/config/locales/crowdin/fa.yml @@ -84,7 +84,7 @@ fa: toggle_multiselect: "activate/deactivate multiselect" units: "واحدها" validation_failure_date: "is not a valid date" - validation_failure_integer: "is not a valid integer" + validation_failure_integer: "عدد درست نیست" export: cost_reports: title: "Your Cost Reports XLS export" From 86c276b470ad544601f82e7c86cf13018b0f454c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20G=C3=BCnther?= Date: Wed, 28 Aug 2024 09:47:21 +0200 Subject: [PATCH 26/26] Add release-notes file --- docs/release-notes/14-4-1/README.md | 32 +++++++++++++++++++++++++++++ docs/release-notes/README.md | 7 +++++++ 2 files changed, 39 insertions(+) create mode 100644 docs/release-notes/14-4-1/README.md diff --git a/docs/release-notes/14-4-1/README.md b/docs/release-notes/14-4-1/README.md new file mode 100644 index 000000000000..f161e68d01bd --- /dev/null +++ b/docs/release-notes/14-4-1/README.md @@ -0,0 +1,32 @@ +--- +title: OpenProject 14.4.1 +sidebar_navigation: + title: 14.4.1 +release_version: 14.4.1 +release_date: 2024-08-28 +--- + +# OpenProject 14.4.1 + +Release date: 2024-08-28 + +We released OpenProject [OpenProject 14.4.1](https://community.openproject.org/versions/2110). +The release contains several bug fixes and we recommend updating to the newest version. +In these Release Notes, we will give an overview of important feature changes. +At the end, you will find a complete list of all changes and bug fixes. + + + +## Bug fixes and changes + + + + +- Bugfix: Project Storage Members breaks when Groups or Placeholder Users are members of a project \[[#57260](https://community.openproject.org/wp/57260)\] +- Bugfix: Custom field filter in project list causes internal server error when opening it \[[#57298](https://community.openproject.org/wp/57298)\] +- Bugfix: Robots follow sort header links unnecessarily \[[#57306](https://community.openproject.org/wp/57306)\] +- Bugfix: Internal error when trying to access notifications menu \[[#57351](https://community.openproject.org/wp/57351)\] +- Bugfix: \[API\] File link creation does not work for legacy nextcloud storage data \[[#57501](https://community.openproject.org/wp/57501)\] + + + diff --git a/docs/release-notes/README.md b/docs/release-notes/README.md index ae1f4c0886e0..20ef61cebbe5 100644 --- a/docs/release-notes/README.md +++ b/docs/release-notes/README.md @@ -13,6 +13,13 @@ Stay up to date and get an overview of the new features included in the releases +## 14.4.1 + +Release date: 2024-08-28 + +[Release Notes](14-4-1/) + + ## 14.4.0 Release date: 2024-08-14