diff --git a/.github/workflows/crowdin.yml b/.github/workflows/crowdin.yml index 205c58e518d1..ade7339c7a73 100644 --- a/.github/workflows/crowdin.yml +++ b/.github/workflows/crowdin.yml @@ -78,6 +78,9 @@ jobs: env: OPENPROJECT_CROWDIN_PROJECT: ${{ secrets.OPENPROJECT_CROWDINV2_PROJECT }} OPENPROJECT_CROWDIN_API_KEY: ${{ secrets.OPENPROJECT_CROWDINV2_API_KEY }} + - name: "Fix root key in Portuguese crowdin translation files" + run: | + script/i18n/fix_crowdin_pt_language_root_key - name: "Commit translations" run: | git config user.name "OpenProject Actions CI" diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 937c42cd3c66..ae67f7e8d163 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -21,7 +21,41 @@ env: REGISTRY_IMAGE: openproject/community jobs: + extract_version: + runs-on: ubuntu-latest + steps: + - name: Extract version + id: extract_version + run: | + if [[ ${{ github.event_name }} == 'push' ]]; then + TAG_REF=${GITHUB_REF#refs/tags/} + CHECKOUT_REF=$GITHUB_REF + elif [[ ${{ github.event_name }} == 'schedule' ]]; then + TAG_REF=dev + CHECKOUT_REF=refs/heads/dev + elif [[ ${{ github.event_name }} == 'workflow_dispatch' ]]; then + TAG_REF=${{ inputs.tag }} + CHECKOUT_REF=${{ inputs.tag }} + else + echo "Unsupported event" + exit 1 + fi + + if [ -z "$TAG_REF" ] || [ -z "$CHECKOUT_REF" ]; then + echo "No TAG_REF or CHECKOUT_REF set. Aborting" + exit 1 + fi + + VERSION=${TAG_REF#v} + echo "Version: $VERSION" + echo "version=$VERSION" >> "$GITHUB_OUTPUT" + echo "checkout_ref=$CHECKOUT_REF" >> "$GITHUB_OUTPUT" + outputs: + version: ${{ steps.extract_version.outputs.version }} + checkout_ref: ${{ steps.extract_version.outputs.checkout_ref }} build: + needs: + - extract_version if: github.repository == 'opf/openproject' runs-on: [ self-hosted, aws, ubuntu22, x64, 2XL ] strategy: @@ -48,7 +82,7 @@ jobs: elif [[ ${{ github.event_name }} == 'workflow_dispatch' ]]; then TAG_REF=${{ inputs.tag }} fi - + VERSION=${TAG_REF#v} echo "Version: $VERSION" echo "::set-output name=version::$VERSION" @@ -77,8 +111,13 @@ jobs: id: meta uses: docker/metadata-action@v4 with: + context: git + labels: | + io.artifacthub.package.readme-url=https://www.openproject.org/docs/installation-and-operations/installation/docker/ + org.opencontainers.image.documentation=https://www.openproject.org/docs/ + org.opencontainers.image.vendor=OpenProject GmbH tags: | - type=semver,pattern={{version}},value=${{ steps.extract_version.outputs.version }} + type=semver,pattern={{version}},value=${{ needs.extract_version.outputs.version }} images: | ${{ env.REGISTRY_IMAGE }} - name: Build image @@ -139,6 +178,7 @@ jobs: matrix: target: [slim, all-in-one] needs: + - extract_version - build steps: - name: Download digests @@ -160,16 +200,16 @@ jobs: with: images: ${{ env.REGISTRY_IMAGE }} labels: | - io.artifacthub.package.readme-url="https://www.openproject.org/docs/installation-and-operations/installation/docker/" - org.opencontainers.image.documentation="https://www.openproject.org/docs/" - org.opencontainers.image.vendor="OpenProject GmbH" + io.artifacthub.package.readme-url=https://www.openproject.org/docs/installation-and-operations/installation/docker/ + org.opencontainers.image.documentation=https://www.openproject.org/docs/ + org.opencontainers.image.vendor=OpenProject GmbH flavor: | latest=false suffix=${{ steps.set_suffix.outputs.suffix }} tags: | - type=semver,pattern={{version}},value=${{ steps.extract_version.outputs.version }} - type=semver,pattern={{major}}.{{minor}},value=${{ steps.extract_version.outputs.version }} - type=semver,pattern={{major}},value=${{ steps.extract_version.outputs.version }} + type=semver,pattern={{version}},value=${{ needs.extract_version.outputs.version }} + type=semver,pattern={{major}}.{{minor}},value=${{ needs.extract_version.outputs.version }} + type=semver,pattern={{major}},value=${{ needs.extract_version.outputs.version }} type=raw,value=dev,priority=200,enable={{is_default_branch}} - name: Login to Docker Hub uses: docker/login-action@v2 diff --git a/.github/workflows/test-core.yml b/.github/workflows/test-core.yml index d26c01c7fbd9..ab812ead60bd 100644 --- a/.github/workflows/test-core.yml +++ b/.github/workflows/test-core.yml @@ -23,7 +23,7 @@ jobs: all: name: Units + Features if: github.repository == 'opf/openproject' - runs-on: runs-on,runner=32cpu-linux,family=m7i+m7a,run-id=${{ github.run_id }} + runs-on: runs-on,runner=32cpu-linux-x64,run-id=${{ github.run_id }} timeout-minutes: 40 env: DOCKER_BUILDKIT: 1 diff --git a/README.md b/README.md index cdb6ab166a74..4089849e7cb7 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![GitHub release (latest by date)](https://img.shields.io/github/v/release/opf/openproject) ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/opf/openproject) ![GitHub branch checks state](https://img.shields.io/github/checks-status/opf/openproject/dev) -[![Github Tests](https://github.com/opf/openproject/actions/workflows/test-core.yml/badge.svg?branch=dev)](https://github.com/opf/openproject/actions/workflows/test-core.yml) +[![GitHub Tests](https://github.com/opf/openproject/actions/workflows/test-core.yml/badge.svg?branch=dev)](https://github.com/opf/openproject/actions/workflows/test-core.yml) OpenProject is a web-based project management software. Its key features are: diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index e69ab162878d..ef988b66921b 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -63,6 +63,7 @@ def selected_projects_columns_options Setting .enabled_projects_columns .map { |c| projects_columns_options.find { |o| o[:id].to_s == c } } + .compact end def protected_projects_columns_options diff --git a/app/models/queries/projects/selects/custom_field.rb b/app/models/queries/projects/selects/custom_field.rb index 1ccd53186a65..57853e8d1cd9 100644 --- a/app/models/queries/projects/selects/custom_field.rb +++ b/app/models/queries/projects/selects/custom_field.rb @@ -55,4 +55,8 @@ def custom_field .visible .find_by(id: self.class.key.match(attribute)[1]) end + + def available? + custom_field.present? + end end diff --git a/app/models/queries/selects/available_selects.rb b/app/models/queries/selects/available_selects.rb index 54224313581a..9082a126f1bc 100644 --- a/app/models/queries/selects/available_selects.rb +++ b/app/models/queries/selects/available_selects.rb @@ -30,7 +30,14 @@ module Queries module Selects module AvailableSelects def select_for(key) - (find_available_select(key) || ::Queries::Selects::NotExistingSelect).new(key.to_sym) + select = (find_available_select(key) || ::Queries::Selects::NotExistingSelect) + .new(key.to_sym) + + # It might be that while the class of selects is available, the instantiated select isn't. + # This can e.g. be the case for custom fields that had once been available and have a key that + # leads to them being found by the find_available_select but when instantiated, the custom + # field they refer to is no longer available. + select.available? ? select : ::Queries::Selects::NotExistingSelect.new(key.to_sym) end def available_selects diff --git a/app/models/queries/selects/base.rb b/app/models/queries/selects/base.rb index 8dc937d3154d..42545974ae01 100644 --- a/app/models/queries/selects/base.rb +++ b/app/models/queries/selects/base.rb @@ -55,4 +55,8 @@ def caption def initialize(attribute) self.attribute = attribute end + + def available? + true + end end diff --git a/app/models/queries/work_packages/selects/work_package_select.rb b/app/models/queries/work_packages/selects/work_package_select.rb index b38de55b9c6f..38d508865021 100644 --- a/app/models/queries/work_packages/selects/work_package_select.rb +++ b/app/models/queries/work_packages/selects/work_package_select.rb @@ -48,6 +48,13 @@ def self.instances(_context = nil) new end + def self.select_group_by(group_by_statement) + group_by = group_by_statement + group_by = group_by.first if group_by.is_a?(Array) + + "#{group_by} id" + end + def self.scoped_column_sum(scope, select, group_by) scope = scope .except(:order, :select) @@ -55,7 +62,7 @@ def self.scoped_column_sum(scope, select, group_by) if group_by scope .group(group_by) - .select("#{group_by} id", select) + .select(select_group_by(group_by), select) else scope .select(select) diff --git a/app/models/query/results/sums.rb b/app/models/query/results/sums.rb index 362b885ce958..2ea00a68b143 100644 --- a/app/models/query/results/sums.rb +++ b/app/models/query/results/sums.rb @@ -107,13 +107,18 @@ def sums_callable_joins(grouped) end def sums_work_package_scope_selects(grouped) - select = if grouped - ["#{query.group_by_statement} id"] - else - [] - end + group_statement = + if grouped + [Queries::WorkPackages::Selects::WorkPackageSelect.select_group_by(query.group_by_statement)] + else + [] + end + + group_statement + summed_columns + end - select + query.summed_up_columns.filter_map(&:summable_work_packages_select).map { |c| "SUM(#{c}) #{c}" } + def summed_columns + query.summed_up_columns.filter_map(&:summable_work_packages_select).map { |c| "SUM(#{c}) #{c}" } end def callable_summed_up_columns diff --git a/config/constants/settings/definition.rb b/config/constants/settings/definition.rb index 5fce328a34e9..7bc12878aa71 100644 --- a/config/constants/settings/definition.rb +++ b/config/constants/settings/definition.rb @@ -742,6 +742,20 @@ class Definition allowed: (0..), default: 3 }, + httpx_operation_timeout: { + description: '', + format: :float, + writable: false, + allowed: (0..), + default: 10 + }, + httpx_request_timeout: { + description: '', + format: :float, + writable: false, + allowed: (0..), + default: 10 + }, httpx_read_timeout: { description: '', format: :float, diff --git a/config/locales/crowdin/cs.yml b/config/locales/crowdin/cs.yml index 45ef8844265e..1afce766a9e0 100644 --- a/config/locales/crowdin/cs.yml +++ b/config/locales/crowdin/cs.yml @@ -1647,7 +1647,7 @@ cs: disabled_text: "API tokeny nejsou administrátorem povoleny. Pro použití této funkce kontaktujte svého správce." ical: title: "iCalendar" - text_hint: 'iCalendar tokens allow users to subscribe to OpenProject calendars and view up-to-date work package information from external clients.' + text_hint: 'Tokeny iCalendar umožňují uživatelům přihlásit se k odběru kalendářů OpenProject a zobrazovat aktuální informace o pracovních balíčcích od externích klientů.' disabled_text: "iCalendar odběr není administrátorem povolen. Pro použití této funkce kontaktujte svého správce." empty_text_hint: "Chcete-li přidat token iCalendar, přihlaste se do nového nebo existujícího kalendáře v rámci modulu kalendáře projektu. Musíte mít potřebná oprávnění." oauth: @@ -2907,7 +2907,7 @@ cs: remaining_quarantined_files_html: > Antivirová kontrola byla zrušena. %{file_count} zůstává v karanténě. Chcete-li si prohlédnout soubory v karanténě, navštivte tento odkaz: %{link} remaining_scan_complete_html: > - Remaining files have been scanned. There are %{file_count} in quarantine. You are being redirected to the quarantine page. Use this page to delete or override quarantined files. + Zbývající soubory byly zkontrolovány. V karanténě je %{file_count} . Jste přesměrováni na stránku karantény. Tuto stránku použijte k odstranění nebo přepsání souborů v karanténě. remaining_rescanned_files: > Virus byl úspěšně aktivován. Existuje %{file_count} , které byly nahrány dříve a stále je třeba skenovat. Tento proces byl naplánován na pozadí. Soubory zůstanou přístupné během skenování. upsale: @@ -2919,9 +2919,9 @@ cs: Vyberte akci, která se má provést u souborů, u nichž byl zjištěn virus:
. modes: clamav_socket_html: Zadejte soket démona clamd, např. %{example}. - clamav_host_html: Enter the hostname and port to the clamd daemon separated by colon. e.g., %{example} + clamav_host_html: Zadejte název hostitele a port démona clamd oddělený dvojtečkou. např. %{example} description_html: > - Select the mode in which the antivirus scanner integration should operate.
+ Vyberte režim, ve kterém by měla fungovat integrace antivirového scanneru.
brute_force_prevention: "Automatizované blokování uživatelů" date_format: first_date_of_week_and_year_set: > @@ -3231,7 +3231,7 @@ cs: text_empty_search_header: "Nenašli jsme žádné odpovídající výsledky." text_empty_state_description: "Pracovní balíček zatím nebyl s nikým sdílen." text_empty_state_header: "Není sdíleno" - 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 work package." + text_user_limit_reached: "Přidáním dalších uživatelů bude aktuální limit překročen. Pro zvýšení limitu uživatelů kontaktujte správce, abyste zajistili přístup externích uživatelů k tomuto pracovnímu balíčku." 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: > 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 work package. diff --git a/config/locales/crowdin/fr.yml b/config/locales/crowdin/fr.yml index a50fe2525676..ecc450800adb 100644 --- a/config/locales/crowdin/fr.yml +++ b/config/locales/crowdin/fr.yml @@ -272,8 +272,8 @@ fr: new: placeholder: "Nouvelle liste de projets" delete_modal: - title: "Delete project list" - text: "This action will not delete any project the list contains. Are you sure you want to delete this project list?" + title: "Supprimer la liste des projets" + text: "Cette action ne supprimera aucun projet contenu dans la liste. Voulez-vous vraiment supprimer cette liste de projets ?" settings: change_identifier: Changer l'identifiant activities: @@ -296,7 +296,7 @@ fr: storage: no_results_title_text: Il n'y a pas d'espace disque supplémentaire utilisé par ce projet. lists: - can_be_saved_as: "The modifications can only be saved in a new list." + can_be_saved_as: "Les modifications ne peuvent être enregistrées que dans une nouvelle liste." members: index: no_results_title_text: Aucun membre dans ce projet pour le moment. @@ -848,8 +848,8 @@ fr: forbidden: "Les horodatages contiennent des valeurs interdites : %{values}" format: "%{message}" selects: - name_not_included: "The 'Name' column needs to be included" - nonexistent: "The column '%{column}' does not exist." + name_not_included: "La colonne 'Nom' doit être incluse" + nonexistent: "La colonne '%{column}' n'existe pas." format: "%{message}" group_by_hierarchies_exclusive: "est mutuellement exclusif avec grouper par '%{group_by}'. Vous ne pouvez pas activer les deux." filters: @@ -1203,7 +1203,7 @@ fr: button_reset: "Réinitialiser" button_rollback: "Revenir à cette version" button_save: "Enregistrer" - button_save_as: "Save as" + button_save_as: "Enregistrer sous" button_apply_changes: "Appliquer les modifications" button_save_back: "Enregistrer et revenir" button_show: "Afficher" @@ -1788,7 +1788,7 @@ fr: label_diff_side_by_side: "côte à côte" label_digital_accessibility: "Accessibilité numérique (DE)" label_disabled: "désactivé" - label_disabled_uppercase: "Disabled" + label_disabled_uppercase: "Désactivé" label_display: "Affichage" label_display_per_page: "Par page: %{value}" label_display_used_statuses_only: "Afficher uniquement les status utilisés par ce type" @@ -2016,7 +2016,7 @@ fr: label_precedes: "précède" label_preferences: "Préférences" label_preview: "Aperçu" - label_preview_not_available: "(Preview not available)" + label_preview_not_available: "(Aperçu indisponible)" label_previous: "Précédent" label_previous_week: "Semaine précédente" label_principal_invite_via_email: " ou inviter de nouveaux utilisateurs par courriel" @@ -2603,7 +2603,7 @@ fr: name_or_identifier: "Nom ou identifiant" only_subproject_id: "Seulement le sous-projet" shared_with_user: "Partagée avec l'utilisateur" - shared_with_me: "Shared with me" + shared_with_me: "Partagés avec moi" subproject_id: "Inclure le sous-projet" repositories: at_identifier: "%{identifier}" @@ -2754,7 +2754,7 @@ fr: setting_brute_force_block_minutes: "Temps de bloquage de l'utilisateur" setting_cache_formatted_text: "Mettre le texte formaté en mémoire cache" setting_use_wysiwyg_description: "Sélectionnez cette option pour activer l’éditeur CKEditor5 WYSIWYG pour tous les utilisateurs par défaut. CKEditor a des fonctionnalités limitées pour GFM Markdown." - setting_column_options: "Default work package lists columns" + setting_column_options: "Colonnes de listes du lot de travaux par défaut" setting_commit_fix_keywords: "Réparer les mots clés" setting_commit_logs_encoding: "Encoding of the Commit messages" setting_commit_logtime_activity_id: "Activité pour les « Logged Time »" @@ -2776,7 +2776,7 @@ fr: setting_emails_header: "En-tête des courriels" setting_email_login: "Utiliser l'adresse courriel comme login" setting_enabled_scm: "Permettre SCM" - setting_enabled_projects_columns: "Columns in a projects list displayed by default" + setting_enabled_projects_columns: "Colonnes d'une liste de projets affichées par défaut" setting_feeds_enabled: "Permettre les flux" setting_ical_enabled: "Activer les abonnements iCalendar" setting_feeds_limit: "Limite du contenu du flux" @@ -2852,7 +2852,7 @@ fr: remaining_scan_complete_html: > Les fichiers restants ont été analysés. Il y a %{file_count} en quarantaine. Vous allez être redirigé vers la page de quarantaine. Utilisez cette page pour supprimer ou remplacer les fichiers en quarantaine. remaining_rescanned_files: > - Virus scanning has been enabled successfuly. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. + L'analyse antivirus a été activée avec succès. %{file_count} fichiers ont été téléchargés précédemment et doivent encore être analysés. Ce processus a été planifié en arrière-plan. Les fichiers resteront accessibles pendant l'analyse. upsale: description: "Assurez-vous que les fichiers téléversés dans OpenProject sont analysés pour détecter les virus avant d'être accessibles aux autres utilisateurs." actions: @@ -2894,7 +2894,7 @@ fr: projects: missing_dependencies: "Le module de projet %{module} a été vérifié et dépend de %{dependencies}. Vous devez également vérifier ces dépendances." section_new_projects: "Paramètres pour les nouveaux projets" - section_project_overview: "Settings for project lists" + section_project_overview: "Paramètres pour les listes de projets" session: "Session" user: default_preferences: "Préférences par défaut" @@ -3060,11 +3060,11 @@ fr: queries: apply_filter: Appliquer le filtre pré-configuré configure_view: - heading: Configure view + heading: Configurer la vue columns: - input_label: "Add columns" - input_placeholder: "Select a column" - drag_area_label: "Manage and reorder columns" + input_label: "Ajouter des colonnes" + input_placeholder: "Sélectionner une colonne" + drag_area_label: "Gérer et réorganiser les colonnes" top_menu: additional_resources: "Ressources supplémentaires" getting_started: "Pour commencer" diff --git a/config/locales/crowdin/hu.yml b/config/locales/crowdin/hu.yml index aa4621eeb29b..9b05313c0970 100644 --- a/config/locales/crowdin/hu.yml +++ b/config/locales/crowdin/hu.yml @@ -49,7 +49,7 @@ hu: main-menu-border-color: "Főmenü kerete" custom_colors: "Egyéni színek" customize: "Testreszabhatja OpenProject telepítését saját logójával és színeivel." - enterprise_notice: "As a special 'Thank you!' for their financial contribution to develop OpenProject, this tiny add-on is only available for Enterprise edition support subscribers." + enterprise_notice: "Ez egy különleges \"Köszönöm!\" az OpenProject kifejlesztéséhez nyújtott pénzügyi hozzájárulásért, ami egy aprócska szolgáltatás a Vállalati Verziót használó előfizetők számára." enterprise_more_info: "Megjegyzés: a használt logó nyilvánosan elérhető lesz." manage_colors: "A színválasztás beállításainak módosítása" instructions: @@ -64,15 +64,15 @@ hu: main-menu-bg-color: "Baloldali menü háttérszíne." theme_warning: A téma megváltoztatása felülírja az egyéni stílust. A forma elvész. Biztos, hogy folytatni akarod? enterprise: - upgrade_to_ee: "Upgrade to the Enterprise edition" - add_token: "Upload an Enterprise edition support token" + upgrade_to_ee: "Frissítés a Vállalati Verzióra" + add_token: "Töltse fel a Vállalati Verzió támogatási tokenjét" delete_token_modal: - text: "Are you sure you want to remove the current Enterprise edition token used?" - title: "Delete token" + text: "Biztos, hogy el akarja távolítani a jelenleg használt Vállalati Verzió tokenjét?" + title: "Token törlése" replace_token: "A jelenlegi támogatási token lecserélése" - order: "Order Enterprise on-premises edition" - paste: "Paste your Enterprise edition support token" - required_for_feature: "This add-on is only available with an active Enterprise edition support token." + order: "Vállalati verzió megrendelése" + paste: "Illessze be a Vállalati Verzió támogatási tokentjét" + required_for_feature: "Ez a bővítmény csak a Vállalati Verzió aktív támogatási tokenjével érhető el." enterprise_link: "További információért kattintson ide." start_trial: "Ingyenes próbaverzió kipróbálása" book_now: "Foglalás most" @@ -80,7 +80,7 @@ hu: buttons: upgrade: "Frissítés most" contact: "Keressen fel minket a próbaverzióért" - enterprise_info_html: "is an Enterprise add-on." + enterprise_info_html: "egy Enterprise kiegészítő." upgrade_info: "Kérjük, válasszon egy fizetős csomagot az aktiváláshoz, hogy mihamarabb használhassa a csapatában." journal_aggregation: explanation: @@ -91,16 +91,16 @@ hu: is_active: jelenleg látható is_inactive: jelenleg nem látható antivirus_scan: - not_processed_yet_message: "Downloading is blocked, as file was not scanned for viruses yet. Please try again later." - quarantined_message: "A virus was detected in file '%{filename}'. It has been quarantined and is not available for download." - deleted_message: "A virus was detected in file '%{filename}'. The file has been deleted." - deleted_by_admin: "The quarantined file '%{filename}' has been deleted by an administrator." - overridden_by_admin: "The quarantine for file '%{filename}' has been removed by %{user}. The file can now be acccessed." + not_processed_yet_message: "A letöltés blokkolva van, mivel a fájlt még nem vizsgálták át vírusokra. Kérjük, próbálja meg később újra." + quarantined_message: "A '%{filename}' fájlban vírust észleltünk. Karanténba került, és nem letölthető." + deleted_message: "A '%{filename}' fájlban vírust észleltünk. A fájl törlésre került." + deleted_by_admin: "A karanténba helyezett '%{filename}' fájlt a rendszergazda törölte." + overridden_by_admin: "A '%{filename}' fájl karanténját %{user} eltávolította. A fájl most már hozzáférhető." quarantined_attachments: - container: "Container" - delete: "Delete the quarantined file" - title: "Quarantined attachments" - error_cannot_act_self: "Cannot perform actions on your own uploaded files." + container: "Konténer" + delete: "A karanténba helyezett fájl törlése" + title: "Karanténba helyezett mellékletek" + error_cannot_act_self: "Nem lehetséges a műveleteket elvégezni a saját feltöltött fájlokon." attribute_help_texts: note_public: "Az ehhez a mezőhöz hozzáadott szöveg és kép nyilvánosan látható minden bejelentkezett felhasználó számára!\n" text_overview: "Ebben a nézetben egyedi súgószövegeket hozhat létre az attribútumokhoz. Definiálást követően ezek a szövegek jelennek meg az attribútum Súgó ikonjára kattintást követően." @@ -115,8 +115,8 @@ hu: ldap_auth_sources: ldap_error: "LDAP-hiba: %{error_message}" ldap_auth_failed: "A hitelesítés meghiúsult az LDAP-kiszolgálón." - sync_failed: "Failed to synchronize from LDAP: %{message}." - back_to_index: "Click here to go back to the list of connection." + sync_failed: "Sikertelen szinkronizálás az LDAP-ból: %{message}." + back_to_index: "Kattintson ide, ha vissza szeretne térni a kapcsolati listához." technical_warning_html: | Ehhez az LDAP űrlaphoz az Ön LDAP / Acitive Directory beállításainak ismerete szükséges.
@@ -147,7 +147,7 @@ hu: amikor először hitelesítenek az OpenProject segítségével. Ha ezt nem jelöli, akkor az OpenProject már létező fiókjai csak az LDAP segítségével hitelesíthetők! connection_encryption: "Kapcsolat titkosítása" - encryption_details: "LDAPS / STARTTLS options" + encryption_details: "LDAPS / STARTTLS beállítások" system_account: "Rendszer fiók" system_account_legend: | Az OpenProject csak olvasható hozzáférést igényel egy rendszerfiókon keresztül az LDAP-fában lévő felhasználók és csoportok kereséséhez. @@ -160,13 +160,13 @@ hu: plain: "Egyik sem" simple_tls: "LDAPS" start_tls: "STARTTLS" - plain_description: "Opens an unencrypted connection to the LDAP server. Not recommended for production." - simple_tls_description: "Use LDAPS. Requires a separate port on the LDAP server. This mode is often deprecated, we recommend using STARTTLS whenever possible." - start_tls_description: "Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections." + plain_description: "Titkosítatlan kapcsolatot nyit az LDAP-kiszolgálóval. Éles környezetben nem ajánlott." + simple_tls_description: "Használjon LDAPS-t. Külön portot igényel az LDAP-kiszolgálón. Ez a mód gyakran elavult, javasoljuk a STARTTLS használatát, amikor csak lehetséges." + start_tls_description: "STARTTLS parancs küldése a szabványos LDAP-porthoz való csatlakozás után. Titkosított kapcsolatokhoz ajánlott." section_more_info_link_html: > Ez a szakasz az LDAP hitelesítési forrás kapcsolatbiztonságáról szól. További információért keresse fel a Net :: LDAP dokumentációt tls_options: - verify_peer: "Verify SSL certificate" + verify_peer: "SSL tanúsítvány ellenőrzése" verify_peer_description_html: > Enables strict SSL verification of the certificate trusted chain.
Warning: Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks. tls_certificate_description: "If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string." @@ -179,9 +179,9 @@ hu: no_results_content_text: Új szín létrehozása label_new_color: "Új szín" new: - label_new_color: "New Color" + label_new_color: "Új szín" edit: - label_edit_color: "Edit Color" + label_edit_color: "Szín szerkesztése" form: label_new_color: "Új szín" label_edit_color: "Színek szerkesztése" @@ -226,7 +226,7 @@ hu: concatenation: single: "vagy" global_search: - placeholder: "Search in %{app_title}" + placeholder: "Keresés: %{app_title} oldalon" overwritten_tabs: wiki_pages: "Wiki" messages: "Fórum" @@ -244,13 +244,13 @@ hu: projects: copy: #Contains custom strings for options when copying a project that cannot be found elsewhere. - members: "Project members" - overviews: "Project overview" - queries: "Work packages: saved views" - wiki_page_attachments: "Wiki pages: attachments" - work_package_attachments: "Work packages: attachments" - work_package_categories: "Work packages: categories" - work_package_file_links: "Work packages: file links" + members: "A projekt tagjai" + overviews: "Projekt áttekintés" + queries: "Munkacsomagok: elmentett nézetek" + wiki_page_attachments: "Wiki oldalak: mellékletek" + work_package_attachments: "Munkacsomagok: mellékletek" + work_package_categories: "Munkacsomagok: kategóriák" + work_package_file_links: "Munkacsomagok: fájllinkek" delete: scheduled: "A törlés ütemezésre került, és a háttérben történik. Értesítést kap az eredményről.\n" schedule_failed: "A projektet nem lehet törölni: %{errors}" @@ -264,15 +264,15 @@ hu: no_results_title_text: Jelenleg nincsenek projektek no_results_content_text: Új projekt létrehozása lists: - active: "Active projects" - my: "My projects" - archived: "Archived projects" - my_private: "My private project lists" + active: "Aktív projektek" + my: "Saját projekjeim" + archived: "Archivált projektek" + my_private: "Privát projektlistáim" new: - placeholder: "New project list" + placeholder: "Új projektlista" delete_modal: - title: "Delete project list" - text: "This action will not delete any project the list contains. Are you sure you want to delete this project list?" + title: "Projektlista törlése" + text: "Ez a művelet nem törli a listában szereplő projekteket. Biztos, hogy törölni szeretné ezt a projektlistát?" settings: change_identifier: Azonosító megváltoztatása activities: @@ -295,60 +295,60 @@ hu: storage: no_results_title_text: "Ebben a projektben nincs további rögzített lemezterület.\n" lists: - can_be_saved_as: "The modifications can only be saved in a new list." + can_be_saved_as: "A módosítások csak egy új listában menthetők el." members: index: no_results_title_text: Jelenleg egy tagja sincs a projektnek. no_results_content_text: Tag hozzáadása a projekthez invite_by_mail: "Meghívás küldése %{mail}" - send_invite_to: "Send invite to" - no_modify_on_shared: "You currently cannot modify or remove shared memberships through the member page. Use the sharing modal instead." + send_invite_to: "Meghívó küldése" + no_modify_on_shared: "Jelenleg nem lehet módosítani vagy eltávolítani a megosztott tagságokat a tagoldalon keresztül. Használja helyette a megosztási modált." columns: - shared: "Shared" + shared: "Megosztva" filters: - all_shares: "All shares" + all_shares: "Minden megosztás" menu: - all: "All" - invited: "Invited" - locked: "Locked" - project_roles: "Project roles" - wp_shares: "Work package shares" - groups: "Groups" + all: "Összes" + invited: "Meghívott" + locked: "Zárolt" + project_roles: "Projekt szerepkörök" + wp_shares: "Munkacsomagok megosztása" + groups: "Csoportok" my: access_token: failed_to_reset_token: "Hozzáférési token helyreállítása sikertelen: %{error}" notice_reset_token: "Egy új %{type} token létrehozva. A hozzáférési token:" token_value_warning: "Megjegyzés: Ez az egyetlen alkalom, mikor ezt a tokent láthatja, győződjön meg arról, hogy most átmásolta." no_results_title_text: Jelenleg nincs elérhető hozzáférési kulcs. - notice_api_token_revoked: "The API token has been deleted. To create a new token please use the link in the API section." - notice_rss_token_revoked: "The RSS token has been deleted. To create a new token please use the link in the RSS section." - notice_ical_token_revoked: 'iCalendar token "%{token_name}" for calendar "%{calendar_name}" of project "%{project_name}" has been revoked. The iCalendar URL with this token is now invalid.' + notice_api_token_revoked: "Az API-token törlésre került. Új token létrehozásához kérjük, használja az API szakaszban található linket." + notice_rss_token_revoked: "Az RSS-token törlésre került. Új token létrehozásához kérjük, használja az RSS szakaszban található linket." + notice_ical_token_revoked: 'A "%{project_name}" projekt "%{calendar_name}" naptárához tartozó "%{token_name}" iCalendar token visszavonásra került. Az ezzel a tokennel rendelkező iCalendar URL mostantól érvénytelen.' news: index: no_results_title_text: Nincs megjeleníthető hír. no_results_content_text: Hír hozzáadása users: autologins: - prompt: "Stay logged in for %{num_days}" + prompt: "Maradjon bejelentkezve %{num_days} napig." sessions: - remembered_devices: "Remembered devices" - remembered_devices_caption: "A list of all devices that logged into this account using the 'Stay logged in' option." - session_name: "%{browser_name} %{browser_version} on %{os_name}" - browser: "Browser" - device: "Device / OS" - unknown_browser: "unknown browser" - unknown_os: "unknown operating system" - current: "Current session" - title: "Session management" - instructions: "This is a list of devices that have logged into your account. Revoke any sessions that you do not recognize or you have no longer access to." - may_not_delete_current: "You cannot delete your current session." + remembered_devices: "Megjegyzett eszközök" + remembered_devices_caption: "Az összes olyan eszköz listája, amely a \"Bejelentkezve marad\" opcióval bejelentkezett erre a fiókra." + session_name: "%{browser_name} %{browser_version} %{os_name} operációs rendszeren" + browser: "Böngésző" + device: "Eszköz / Operációs rendszer" + unknown_browser: "ismeretlen böngésző" + unknown_os: "ismeretlen operációs rendszer" + current: "Jelenlegi munkamenet" + title: "Munkamenet-kezelés" + instructions: "Ez azoknak az eszközöknek a listája, amelyek bejelentkeztek a fiókjába. Vonja vissza azokat a munkameneteket, amelyeket nem ismer fel, vagy amelyekhez már nincs hozzáférése." + may_not_delete_current: "Az aktuális munkamenetet nem törölheti." groups: member_in_these_groups: "A felhasználó a következő csoportoknak a tagja:" no_results_title_text: A falhasználó egyik csoportnak se a tagja memberships: no_results_title_text: Ez a felhasználó jelenleg nem tagja egy projektnek sem. page: - text: "Text" + text: "Szöveg" placeholder_users: right_to_manage_members_missing: > Nem törölheti a teszt felhasználót. Nincs joga a tagok kezeléséhez minden olyan projektben, amelynek a teszt felhasználó tagja. @@ -385,8 +385,8 @@ hu: no_results_title_text: Jelenleg nincsenek feladatcsoport státuszok. no_results_content_text: Új státusz hozzáadása themes: - light: "Light" - light_high_contrast: "Light high contrast" + light: "Világos" + light_high_contrast: "Világos, nagy kontraszt" types: index: no_results_title_text: Jelenleg nincsenek típusok. @@ -405,12 +405,12 @@ hu: A kiválasztott szín a Gantt diagramban vagy munkacsomag táblákban az eltérő típusokat különbözteti meg egymástól. Ezért javasolt az élénk színek használata. versions: overview: - work_packages_in_archived_projects: "The version is shared with archived projects which still have work packages assigned to this version. These are counted, but will not appear in the linked views." + work_packages_in_archived_projects: "A verzió megosztásra kerül az archivált projektekkel, amelyekhez még mindig vannak ehhez a verzióhoz rendelt munkacsomagok. Ezek számításba kerülnek, de nem jelennek meg a kapcsolódó nézetekben." no_results_title_text: Jelenleg nincsenek ehhez a verzióhoz hozzárendelt feladatcsoportok. wiki: page_not_editable_index: "A kért oldal (még) nem létezik. Átirányítottuk az összes wiki -oldal indexébe.\n" no_results_title_text: Jelenleg nincsenek wiki oldalak. - print_hint: This will print the content of this wiki page without any navigation bars. + print_hint: Ez a wiki oldal tartalmát fogja kinyomtatni navigációs sávok nélkül. index: no_results_content_text: Új wiki oldal hozzáadása work_flows: @@ -421,7 +421,7 @@ hu: one: "Egy leszármazott feladatcsoport" other: "%{count} munkacsomag leszármazottai" bulk: - copy_failed: "The work packages could not be copied." + copy_failed: "A munkacsomagokat nem lehetett másolni." move_failed: "The work packages could not be moved." could_not_be_saved: "Az alábbi munkacsomagot nem lehet elmenteni:" none_could_be_saved: "%{total} munkacsomag közül egyik sem frissíthető." @@ -565,12 +565,12 @@ hu: parent: "Alprojekt" public_value: title: "Látható" - true: "public" - false: "private" + true: "nyilvános" + false: "privát" queries: "Lekérdezések" status_code: "Projekt állapot" - description: "Description" - status_explanation: "Project status description" + description: "Leírás" + status_explanation: "Projekt státuszának leírása" status_codes: not_started: "El nem kezdett" on_track: "Terv szerint" @@ -611,7 +611,7 @@ hu: color: "Szín" user: admin: "Adminisztrátor" - auth_source: "Authentication source" + auth_source: "Hitelesítési forrás" ldap_auth_source: "LDAP csatlakozás" identity_url: "Identity URL" current_password: "Jelenlegi jelszó" @@ -628,7 +628,7 @@ hu: time_zone: "Idő zóna" auto_hide_popups: "Siker értesítések automatikus elrejtése" warn_on_leaving_unsaved: "Figyelmeztess, ha úgy hagyom el a munkacsomagot, hogy nem mentett változások vannak rajta" - theme: "Mode" + theme: "Mód" version: effective_date: "Befejezési dátum" sharing: "Megosztás" @@ -643,10 +643,10 @@ hu: begin_insertion: "Beillesztés kezdete" begin_deletion: "Törlés kezdete" children: "Alelemek" - derived_done_ratio: "Total % complete" + derived_done_ratio: "Eddig befejezve %-ban" derived_remaining_hours: "Total remaining work" derived_remaining_time: "Total remaining work" - done_ratio: "% Complete" + done_ratio: "%-ban kész" duration: "Időtartam" end_insertion: "Beillesztés vége" end_deletion: "Törlés vége" @@ -655,16 +655,16 @@ hu: title: "Munkanapok" false: "Csak munkanapok" true: "Munkaszüneti napok beleszámítva" - notify: "Notify" #used in custom actions + notify: "Értesítés" #used in custom actions parent: "Szülő" parent_issue: "Szülő" parent_work_package: "Szülő" priority: "Fontosság" progress: "% Complete" readonly: "Olvasható" - remaining_hours: "Remaining work" - remaining_time: "Remaining work" - shared_with_users: "Shared with" + remaining_hours: "Hátralévő munka" + remaining_time: "Hátralévő munka" + shared_with_users: "Megosztva velük:" schedule_manually: "Kézi ütemezés\n" spent_hours: "Eltöltött idő" spent_time: "Eltöltött idő" @@ -746,7 +746,7 @@ hu: ldap_auth_source: attributes: tls_certificate_string: - invalid_certificate: "The provided SSL certificate is invalid: %{additional_message}" + invalid_certificate: "A megadott SSL tanúsítvány érvénytelen: %{additional_message}" format: "%{message}\n" attachment: attributes: @@ -790,7 +790,7 @@ hu: ical_token_query_assignment: attributes: name: - blank: "is mandatory. Please select a name." + blank: "kötelező. Kérjük, válasszon egy nevet." not_unique: "is already in use. Please select another name." notifications: at_least_one_channel: "Legalább egy csatornát meg kell adni az értesítések küldésére.\n" @@ -1003,7 +1003,7 @@ hu: custom_field: "Választható mező" "doorkeeper/application": "OAuth alkalmazás" forum: "Fórum" - global_role: "Global role" + global_role: "Globális szerep" group: "Csoport" member: "Tag" news: "Hírek" @@ -1057,8 +1057,8 @@ hu: changeset: "Commit-ok" message: "Fórumok" news: "Hírek" - project_attribute: "Project attributes" - subproject: "Include subprojects" + project_attribute: "Projekt attribútumok" + subproject: "Alprojektek bevonása" time_entry: "Eltöltött idő" wiki_edit: "Wiki" work_package: "Munkacsomagok" @@ -1083,12 +1083,12 @@ hu: default_columns: "Alapértelmezett oszlopok" description: "Leírás" derived_due_date: "Származtatott befejezési időpont" - derived_estimated_hours: "Total work" + derived_estimated_hours: "Összes munka" derived_start_date: "Származtatott kezdési időpont\n" display_sums: "Megjelenitendő összegek" due_date: "Befejezési dátum" - estimated_hours: "Work" - estimated_time: "Work" + estimated_hours: "Munka" + estimated_time: "Munka" expires_at: "Lejárat ekkor" firstname: "Keresztnév" group: "Csoport" @@ -1171,7 +1171,7 @@ hu: button_continue: "Folytatás" button_copy: "Másol" button_copy_to_clipboard: "Másolás a vágólapra" - button_copy_link_to_clipboard: "Copy link to clipboard" + button_copy_link_to_clipboard: "Hivatkozás másolása a vágólapra" button_copy_and_follow: "Másol és folytat" button_create: "Létrehoz" button_create_and_continue: "Létrehoz és folytat" @@ -1200,8 +1200,8 @@ hu: button_reset: "Visszaállít, reset" button_rollback: "Visszaállitás erre a verzióra" button_save: "Mentés" - button_save_as: "Save as" - button_apply_changes: "Apply changes" + button_save_as: "Mentés másként" + button_apply_changes: "Változások alkalmazása" button_save_back: "Mentés és vissza" button_show: "Mutat" button_sort: "Rendez" @@ -1337,17 +1337,17 @@ hu: one: "1 perce" other: "%{count} perce" x_minutes_abbreviated: - one: "1 min" - other: "%{count} mins" + one: "1 perc" + other: "%{count} perc" x_hours: one: "1 óra" other: "%{count} óra" x_hours_abbreviated: - one: "1 hr" - other: "%{count} hrs" + one: "1 óra" + other: "%{count} óra" x_weeks: - one: "1 week" - other: "%{count} weeks" + one: "1 hét" + other: "%{count} hét" x_months: one: "1 hónapja" other: "%{count} hónapja" @@ -1358,8 +1358,8 @@ hu: one: "1 másodperce" other: "%{count} másodperce" x_seconds_abbreviated: - one: "1 s" - other: "%{count} s" + one: "1 mp" + other: "%{count} mp" units: hour: one: "óra" @@ -1398,11 +1398,11 @@ hu: ee: upsale: form_configuration: - description: "Customize the form configuration with these additional add-ons:" + description: "Testre szabhatja az űrlap konfigurációját ezekkel a további bővítményekkel:" add_groups: "Attribútum-csoport hozzáadása" rename_groups: "Attribútum-csoportok átnevezése" project_filters: - description_html: "Filtering and sorting on custom fields is an Enterprise edition add-on." + description_html: "Az egyéni mezők szűrése és rendezése a Vállalati Verzió kiegészítője." enumeration_activities: "Időnyilvántartási tevékenységek" enumeration_work_package_priorities: "Feladatcsoport fontosság" enumeration_reported_project_statuses: "Projekt állapot beszámoló" @@ -1410,8 +1410,8 @@ hu: error_can_not_archive_project: "Ezt a projektet nem lehet archiválni: %{errors}" error_can_not_delete_entry: "Bejegyzését nem lehet törölni" error_can_not_delete_custom_field: "Nem törölhető az egyéni mező" - 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: "Az archivált projektekben is vannak munkacsomagok. Meg kell kérnie egy rendszergazdát, hogy végezze el a törlést, hogy lássa, mely projekteket érinti a törlés." + error_can_not_delete_in_use_archived_work_packages: "Az archivált projektek szintén tartalmaznak munkacsomagokat. A következő projektek újra aktiválása szükséges, mielőtt a vonatkozó munkacsomagok típusát meg lehet változtatni: %{archived_projects_urls}" error_can_not_delete_type: explanation: 'Ez a típus munkacsomagokat tartalmaz és nem törölhető. Az érintett munkacsomagok ebben a nézetben megtekinthetők.' error_can_not_delete_standard_type: "Alap típusokat nem lehet törölni." @@ -1435,7 +1435,7 @@ hu: error_pdf_export_too_many_columns: "Túl sok oszlop lett kiválasztva a PDF exportáláshoz. Kérlek csökkentsd a sorok számát." error_pdf_failed_to_export: "A PDF-Exportálás mentése nem sikerült: %{error}" error_token_authenticity: "Nem sikerült ellenőrizni a Cross-Site Request Forgery token-t. Megpróbált adatokat küldeni több böngészőn vagy lapon keresztül? Kérjük, zárja be az összes lapot, és próbálkozzon újra." - error_work_package_done_ratios_not_updated: "Work package % Complete values not updated." + error_work_package_done_ratios_not_updated: "A munkacsomag %-os teljesítés értékei nem frissültek." error_work_package_not_found_in_project: "A feladatcsoport nem található, vagy nem tartozik ehhez a projekthez" error_must_be_project_member: "projekt tagnak kell lennie" error_migrations_are_pending: "Az Openproject adatbázisainak költöztetése függőben van. Valószínűleg elmulasztotta lefuttatni az átvitelt a legutóbbi frissítéskor. Kérjük, a megfelelő frissítéshez kövesse a frissítési útmutatót." @@ -1465,8 +1465,8 @@ hu: changeset: "Commit szerkesztve" message: Üzenet szerkesztve news: Hírek - project_attributes: "Project attributes edited" - project: "Project edited" + project_attributes: "Projekt attribútumai szerkesztve" + project: "Projekt szerkesztve" projects: "Projekt szerkesztve" reply: Válaszolt time_entry: "Az időnapló szerkesztve" @@ -1475,8 +1475,8 @@ hu: work_package_edit: "A feladatcsoport szerkesztve" work_package_note: "A feladatcsoport jegyzet hozzáadva" title: - project: "Project: %{name}" - subproject: "Subproject: %{name}" + project: "Projekt: %{name}" + subproject: "Alprojekt: %{name}" export: your_work_packages_export: "Munkacsomagok exportálása" succeeded: "Az exportálás sikeresen végetért." @@ -1485,14 +1485,14 @@ hu: atom: "Atom" csv: "CSV" pdf: "PDF" - pdf_overview_table: "PDF Table" - pdf_report_with_images: "PDF Report with images" - pdf_report: "PDF Report" + pdf_overview_table: "PDF táblázat" + pdf_report_with_images: "PDF jelentés képekkel" + pdf_report: "PDF jelentés" image: omitted: "Kép nem került exportálásra." units: - hours: h - days: d + hours: óra + days: nap extraction: available: pdftotext: "Pdftotext elérhető (opcionális)" @@ -1522,10 +1522,10 @@ hu: blocks: community: "OpenProject Közösség" upsale: - title: "Upgrade to Enterprise edition" + title: "Váltás Vállalati Verzióra" more_info: "További információ" links: - upgrade_enterprise_edition: "Upgrade to Enterprise edition" + upgrade_enterprise_edition: "Váltás Vállalati Verzióra" postgres_migration: "A rendszer költöztetése PostreSQL-re" user_guides: "Felhasználói útmutató" faq: "GY. I. K." @@ -1539,8 +1539,8 @@ hu: journals: changes_retracted: "A módosítások visszavonásra kerültek." caused_changes: - dates_changed: "Dates changed" - system_update: "OpenProject system update:" + dates_changed: "Dátum módosítva" + system_update: "OpenProject rendszerfrissítés:" cause_descriptions: work_package_predecessor_changed_times: by changes to predecessor %{link} work_package_parent_changed_times: by changes to parent %{link} @@ -1568,7 +1568,7 @@ hu: admin: mail_notification: "Email értesítés" mails_and_notifications: "Emails and notifications" - aggregation: "Aggregation" + aggregation: "Aggregálás" api_and_webhooks: "API és webhookok" quick_add: label: "Gyorsmenü megnyitása" @@ -1808,7 +1808,7 @@ hu: label_enumerations: "Elnevezések" label_enterprise: "Vállalati" label_enterprise_active_users: "%{current}/%{limit} foglalt aktív felhasználók" - label_enterprise_edition: "Enterprise edition" + label_enterprise_edition: "Vállalati Verzió." label_enterprise_support: "Enterprise support" label_enterprise_addon: "Enterprise add-on" label_environment: "Környezet" @@ -1871,7 +1871,7 @@ hu: label_index_by_title: "Index cím szerint" label_information: "Információk" label_information_plural: "Információk" - label_installation_guides: "Installation guides" + label_installation_guides: "Telepítési útmutató" label_integer: "Egész szám" label_internal: "Belső" label_introduction_video: "Bemutató videó" @@ -2230,8 +2230,8 @@ hu: zero: "no files" label_yesterday: "tegnap" label_role_type: "Típus" - label_member_role: "Project role" - label_global_role: "Global role" + label_member_role: "Projekt szerepkör" + label_global_role: "Globális szerep" label_not_changeable: "(nem módosítható)" label_global: "Globális" label_seeded_from_env_warning: This record has been created through a setting / environment variable. It is not editable through UI. @@ -2279,7 +2279,7 @@ hu: more_to_see: one: "Még 1 munkacsomag van értesítésekkel.\n" other: "Még %{count} munkacsomag van értesítésekkel." - open_in_browser: "Open in browser" + open_in_browser: "Megnyitás böngészőben" reason: watched: "Megfigyelt" assigned: "Hozzárendelve" @@ -2470,7 +2470,7 @@ hu: permission_add_work_package_notes: "Megjegyzések hozzáadása" permission_add_work_packages: "feladatcsoport hozzáadása" permission_add_messages: "Elküldött üzenetek" - permission_add_project: "Create projects" + permission_add_project: "Projekt létrehozása" permission_add_work_package_attachments: "Melléklet hozzáadása" permission_add_work_package_attachments_explanation: "Allows adding attachments without Edit work packages permission" permission_archive_project: "Projekt archiválása" @@ -2488,7 +2488,7 @@ hu: permission_commit_access: "Olvasási és írási jog a tárolóhoz (commit)" permission_copy_projects: "Projekt másolása" permission_copy_work_packages: "Copy work packages" - permission_create_backup: "Create backups" + permission_create_backup: "Biztonsági mentés létrehozása" permission_delete_work_package_watchers: "Megfigyelők törlése" permission_delete_work_packages: "Törölje a feladatcsoportokat" permission_delete_messages: "Üzenetek törlése" diff --git a/config/locales/crowdin/js-fr.yml b/config/locales/crowdin/js-fr.yml index 9aae512eab97..113471f71a2c 100644 --- a/config/locales/crowdin/js-fr.yml +++ b/config/locales/crowdin/js-fr.yml @@ -352,7 +352,7 @@ fr: standard: learn_about_link: https://www.openproject.org/blog/openproject-13-4-release/ new_features_html: > - The release contains various new features and improvements:
+ Cette version contient plusieurs nouvelles fonctionnalités et améliorations :
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." @@ -444,7 +444,7 @@ fr: label_less_than_ago: "il y a moins de quelques jours" label_loading: "Chargement…" label_mail_notification: "Notifications par courriel" - label_manage_columns: "Manage and reorder columns" + label_manage_columns: "Gérer et réorganiser les colonnes" label_me: "moi" label_meeting_agenda: "Ordre du jour" label_meeting_minutes: "Compte-rendu" @@ -483,7 +483,7 @@ fr: label_report: "Rapport" label_repository_plural: "Dépôts" label_save_as: "Enregistrer sous" - label_search_columns: "Search a column" + label_search_columns: "Rechercher une colonne" label_select_project: "Sélectionner un projet" label_select_watcher: "Sélectionner un observateur…" label_selected_filter_list: "Filtres sélectionnés" @@ -1001,7 +1001,7 @@ fr: all_open: "Tous les ouverts" summary: "Résumé" shared_with_users: "Partagée avec des utilisateurs" - shared_with_me: "Shared with me" + shared_with_me: "Partagés avec moi" jump_marks: pagination: "Passer à la pagination du tableau" label_pagination: "Cliquez ici pour sauter le tableau des lots de travaux et accéder à la pagination" diff --git a/config/locales/crowdin/js-ko.yml b/config/locales/crowdin/js-ko.yml index 13a31b735027..71ca36c6e678 100644 --- a/config/locales/crowdin/js-ko.yml +++ b/config/locales/crowdin/js-ko.yml @@ -31,7 +31,7 @@ ko: 이 파일을 삭제하시겠습니까? 삭제하면 되돌릴 수 없습니다. draggable_hint: | 인라인 이미지 또는 참조 첨부 파일로 편집기 필드를 드래그하세요. 드래그하는 동안에는 닫힌 편집기 필드가 열립니다. - quarantined_hint: "The file is quarantined, as a virus was found. It is not available for download." + quarantined_hint: "바이러스가 발견되어 파일이 격리되었습니다. 다운로드할 수 없습니다." autocomplete_ng_select: add_tag: "항목 추가" clear_all: "모두 지우기" @@ -352,7 +352,7 @@ ko: standard: learn_about_link: https://www.openproject.org/blog/openproject-13-4-release/ new_features_html: > - The release contains various new features and improvements:
+ 이 릴리스에는 다양한 새로운 기능과 개선 사항이 포함되어 있습니다.
ical_sharing_modal: title: "캘린더 구독" inital_setup_error_message: "데이터를 가져오는 중에 오류가 발생했습니다." @@ -444,7 +444,7 @@ ko: label_less_than_ago: "일 미만 전" label_loading: "로드 중..." label_mail_notification: "이메일 알림" - label_manage_columns: "Manage and reorder columns" + label_manage_columns: "열 관리 및 재정렬" label_me: "나" label_meeting_agenda: "의제" label_meeting_minutes: "의사록" @@ -483,7 +483,7 @@ ko: label_report: "보고서" label_repository_plural: "리포지토리" label_save_as: "다른 이름으로 저장" - label_search_columns: "Search a column" + label_search_columns: "열 검색" label_select_project: "프로젝트 선택" label_select_watcher: "주시하는 사람을 선택" label_selected_filter_list: "선택된 필터" @@ -1000,7 +1000,7 @@ ko: all_open: "모두 열림" summary: "요약" shared_with_users: "사용자와 공유됨" - shared_with_me: "Shared with me" + shared_with_me: "나와 공유됨" jump_marks: pagination: "테이블 페이지 매김으로 이동" label_pagination: "여기를 클릭하여 작업 패키지 테이블로 건너뛰고 페이지 매김으로 이동" diff --git a/config/locales/crowdin/js-ms.yml b/config/locales/crowdin/js-ms.yml index a0c2905edc00..c96bcfbb2f8e 100644 --- a/config/locales/crowdin/js-ms.yml +++ b/config/locales/crowdin/js-ms.yml @@ -757,7 +757,7 @@ ms: label: "Temporarily pause daily email reminders" first_day: "First day" last_day: "Last day" - text_are_you_sure: "Are you sure?" + text_are_you_sure: "Adakah anda pasti?" text_data_lost: "All entered data will be lost." text_user_wrote: "%{value} wrote:" types: diff --git a/config/locales/crowdin/js-pt-BR.yml b/config/locales/crowdin/js-pt-BR.yml index 54544b894355..226c8fbad3c0 100644 --- a/config/locales/crowdin/js-pt-BR.yml +++ b/config/locales/crowdin/js-pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: js: ajax: hide: "Ocultar" diff --git a/config/locales/crowdin/js-pt-PT.yml b/config/locales/crowdin/js-pt-PT.yml index a71080afd879..d6ad4659f73a 100644 --- a/config/locales/crowdin/js-pt-PT.yml +++ b/config/locales/crowdin/js-pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: js: ajax: hide: "Ocultar" @@ -352,7 +352,7 @@ pt: standard: learn_about_link: https://www.openproject.org/blog/openproject-13-4-release/ new_features_html: > - The release contains various new features and improvements:
+ A versão contém uma série de novas funcionalidades e melhorias:
ical_sharing_modal: title: "Subscrever o calendário" inital_setup_error_message: "Ocorreu um erro ao recuperar os dados." diff --git a/config/locales/crowdin/js-zh-TW.yml b/config/locales/crowdin/js-zh-TW.yml index d7ffaadc7de2..1aca743d4046 100644 --- a/config/locales/crowdin/js-zh-TW.yml +++ b/config/locales/crowdin/js-zh-TW.yml @@ -75,7 +75,7 @@ zh-TW: button_copy_to_clipboard: "複製到剪貼簿" button_copy_link_to_clipboard: "複製到剪貼簿" button_copy_to_other_project: "複製到其他專案" - button_custom-fields: "自訂欄位" + button_custom-fields: "客製欄位" button_delete: "删除" button_delete_watcher: "刪除監看者" button_details_view: "詳細檢視" @@ -190,7 +190,7 @@ zh-TW: text: "[Placeholder] 嵌入式日曆" admin: type_form: - custom_field: "自訂欄位" + custom_field: "客製欄位" inactive: "未啟用" drag_to_activate: "從這裡拖曳欄位來啟用它們" add_group: "增加群組屬性" @@ -351,7 +351,7 @@ zh-TW: standard: learn_about_link: https://www.openproject.org/blog/openproject-13-4-release/ new_features_html: > - The release contains various new features and improvements:
+ 此版本包含各種新功能和改進:
ical_sharing_modal: title: "訂閱日曆" inital_setup_error_message: "更新資料時發生錯誤" @@ -765,7 +765,7 @@ zh-TW: error_no_table_configured: "請為 %{group} 配置表。" reset_title: "重設表單配置" confirm_reset: > - 警告: 確實要重置表單配置嗎?這將重置屬性到其預設組, 並禁用所有自訂欄位。 + 警告: 確實要重置表單配置嗎?這將重置屬性到其預設組, 並禁用所有客製欄位。 upgrade_to_ee: "升級至地端企業版" upgrade_to_ee_text: "哇!如果您需要使用此功能,說明您非常專業!您是否願意成為企業版客戶來支持 OpenSource 開發人員?" more_information: "更多資訊" @@ -886,7 +886,7 @@ zh-TW: image: "圖片" work_packages: bulk_actions: - move: "Bulk change of project" + move: "專案整批變動" edit: "整批編輯" copy: "整批複製" delete: "整批刪除" @@ -988,16 +988,16 @@ zh-TW: updatedAt: "更新於" versionName: "版本" version: "版本" - work: "工作" - workAlternative: "Estimated time" - remainingTime: "剩餘工作" + work: "工時" + workAlternative: "預估時間" + remainingTime: "剩餘工時" default_queries: latest_activity: "最新活動" - created_by_me: "由我創建" + created_by_me: "由我建立" assigned_to_me: "分配給我" recently_created: "最近創建的" all_open: "所有「進行中」工作" - summary: "總覽" + summary: "大綱" shared_with_users: "分配給成員" shared_with_me: "分享給我的" jump_marks: @@ -1019,7 +1019,7 @@ zh-TW: move_column_left: "欄向左移" move_column_right: "欄向右移" hide_column: "隱藏欄" - insert_columns: "Insert columns" + insert_columns: "調整欄位" filters: "篩選條件" display_sums: "顯示加總" confirm_edit_cancel: "確實要取消編輯此版面的名稱嗎?標題將還原。" @@ -1037,14 +1037,14 @@ zh-TW: is_parent: "The dates of this work package are automatically deduced from its children. Activate 'Manual scheduling' to set the dates." is_switched_from_manual_to_automatic: "The dates of this work package may need to be recalculated after switching from manual to automatic scheduling due to relationships with other work packages." sharing: - share: "分享" + share: "共享" title: "分享工作項目" show_all_users: "顯示所有使用者" selected_count: "已選取 %{count} 個" selection: mixed: "Mixed" upsale: - description: "Share work packages with users who are not members of the project." + description: "與不是專案成員的使用者共用工作項目。" table: configure_button: "設定工作項目" summary: "由工作項目和工作項目屬性列組成的表格。" @@ -1065,9 +1065,9 @@ zh-TW: show_timeline_hint: "在表格的右側顯示互動式甘特圖。可以通過在表和甘特圖之間拖動分隔線來更改其寬度。" highlighting: "突顯" highlighting_mode: - description: "以顏色凸顯" + description: "以顏色突顯" none: "無突顯" - inline: "凸顯屬性" + inline: "突顯屬性" inline_all: "所有屬性" entire_row_by: "按類型劃分的整行" status: "狀態" @@ -1086,7 +1086,7 @@ zh-TW: relation_filters: filter_work_packages_by_relation_type: "Filter work packages by relation type" tabs: - overview: 概要 + overview: 總覽 activity: 活動 relations: 關聯 watchers: 監看者 @@ -1278,14 +1278,14 @@ zh-TW: does_not_match_search: "沒有符合搜尋條件" no_results: "沒有符合搜尋條件" baseline: - toggle_title: "基準日期" + toggle_title: "差異線" clear: "清除" apply: "套用" - header_description: "基準日期開始,突顯修改過的資料" - enterprise_header_description: "Highlight changes made to this list since any point in the past with Enterprise edition." + header_description: "差異線開始,突顯修改過的資料" + enterprise_header_description: "差異線開始,突顯修改過的資料(企業版功能)" show_changes_since: "顯示差異" - baseline_comparison: "基準日比較" - help_description: "Reference time zone for the baseline." + baseline_comparison: "比較差異" + help_description: "差異線參考時區。" time_description: "當地時間: %{datetime}" time: "時間" from: "寄件者" diff --git a/config/locales/crowdin/ko.yml b/config/locales/crowdin/ko.yml index 5d5239f9e901..989022b43c47 100644 --- a/config/locales/crowdin/ko.yml +++ b/config/locales/crowdin/ko.yml @@ -644,9 +644,9 @@ ko: begin_insertion: "삽입 시작" begin_deletion: "삭제 시작" children: "하위 요소" - derived_done_ratio: "Total % complete" - derived_remaining_hours: "Total remaining work" - derived_remaining_time: "Total remaining work" + derived_done_ratio: "총 완료 %" + derived_remaining_hours: "총 남은 작업" + derived_remaining_time: "총 남은 작업" done_ratio: "완료 %" duration: "기간" end_insertion: "삽입 끝" @@ -1076,7 +1076,7 @@ ko: default_columns: "기본 칼럼" description: "설명" derived_due_date: "파생된 완료 날짜" - derived_estimated_hours: "Total work" + derived_estimated_hours: "총 작업" derived_start_date: "파생된 시작 날짜" display_sums: "합계 표시" due_date: "완료 날짜" @@ -2559,7 +2559,7 @@ ko: project_module_news: "뉴스" project_module_repository: "리포지토리" project_module_wiki: "위키" - permission_header_for_project_module_work_package_tracking: "Work packages and Gantt charts" + permission_header_for_project_module_work_package_tracking: "작업 패키지 및 Gantt 차트" query: attribute_and_direction: "%{attribute} (%{direction})" #possible query parameters (e.g. issue queries), @@ -2821,17 +2821,17 @@ ko: remaining_rescanned_files: > 바이러스 검사가 활성화되었습니다. 이전에 업로드되었지만 아직 검사해야 하는 %{file_count}개가 있습니다. 이 프로세스는 백그라운드에서 예약되었습니다. 검사하는 동안 파일에 계속 액세스할 수 있습니다. upsale: - description: "OpenProject에서 업로드한 파일은 바이러스 검사를 수행한 후에 다른 사용자가 액세스해야 합니다." + description: "OpenProject에서 업로드된 파일은 바이러스 검사를 수행한 후에 다른 사용자가 액세스해야 합니다." actions: delete: "파일 삭제" quarantine: "파일 격리" instructions_html: > - Select the action to perform for files on which a virus has been detected:
+ 바이러스가 발견된 파일에 수행할 작업을 선택하세요:
modes: - clamav_socket_html: Enter the socket to the clamd daemon, e.g., %{example} - clamav_host_html: Enter the hostname and port to the clamd daemon separated by colon. e.g., %{example} + clamav_socket_html: 'clamd 데몬의 소켓을 입력하세요. 예: %{example}' + clamav_host_html: '호스트 이름 및 clamd 데몬의 포트를 콜론으로 구분하여 입력하세요. 예: %{example}' description_html: > - Select the mode in which the antivirus scanner integration should operate.
+ 바이러스 백신 스캐너 통합이 작동되어야 하는 모드를 선택하세요.
brute_force_prevention: "자동화된 사용자 차단" date_format: first_date_of_week_and_year_set: > @@ -2861,7 +2861,7 @@ ko: projects: missing_dependencies: "%{dependencies}에 의존하는 프로젝트 모듈 %{module}이(가) 확인되었습니다. 이러한 종속성도 확인해야 합니다." section_new_projects: "새 프로젝트의 설정" - section_project_overview: "Settings for project lists" + section_project_overview: "프로젝트 목록의 설정" session: "세션" user: default_preferences: "기본 설정" @@ -3027,11 +3027,11 @@ ko: queries: apply_filter: 미리 구성된 필터 적용 configure_view: - heading: Configure view + heading: 보기 구성 columns: - input_label: "Add columns" - input_placeholder: "Select a column" - drag_area_label: "Manage and reorder columns" + input_label: "열 추가" + input_placeholder: "열 선택" + drag_area_label: "열 관리 및 재정렬" top_menu: additional_resources: "추가 리소스" getting_started: "시작하기" diff --git a/config/locales/crowdin/ms.yml b/config/locales/crowdin/ms.yml index 370fb8000acc..c1a63939c5b2 100644 --- a/config/locales/crowdin/ms.yml +++ b/config/locales/crowdin/ms.yml @@ -541,10 +541,10 @@ ms: encoded_token: "Enterprise support token" active_user_count_restriction: "Maximum active users" grids/grid: - page: "Page" - row_count: "Number of rows" - column_count: "Number of columns" - widgets: "Widgets" + page: "Halaman" + row_count: "Bilangan baris" + column_count: "Bilangan lajur" + widgets: "Widget" oauth_client: client: "Client ID" relation: @@ -786,9 +786,9 @@ ms: enterprise_token: unreadable: "can't be read. Are you sure it is a support token?" grids/grid: - overlaps: "overlap." - outside: "is outside of the grid." - end_before_start: "end value needs to be larger than the start value." + overlaps: "bertindih." + outside: "luar daripada grid" + end_before_start: "nilai akhir perlu lebih besar daripada nilai mula." ical_token_query_assignment: attributes: name: @@ -1066,7 +1066,7 @@ ms: base: "General Error:" blocks_ids: "IDs of blocked work packages" category: "Category" - comment: "Comment" + comment: "Komen" comments: "Comment" content: "Content" color: "Color" @@ -1668,7 +1668,7 @@ ms: label_api_doc: "API documentation" label_backup: "Backup" label_backup_code: "Backup code" - label_between: "between" + label_between: "antara" label_blocked_by: "blocked by" label_blocks: "blocks" label_blog: "Blog" @@ -1822,7 +1822,7 @@ ms: label_generate_key: "Generate a key" label_git_path: "Path to .git directory" label_greater_or_equal: ">=" - label_group_by: "Group by" + label_group_by: "Kumpulkan mengikut" label_group_new: "New group" label_group: "Group" label_group_named: "Group %{name}" @@ -2032,7 +2032,7 @@ ms: label_remove_columns: "Remove selected columns" label_renamed: "renamed" label_reply_plural: "Replies" - label_report: "Report" + label_report: "Laporan" label_report_bug: "Report a bug" label_report_plural: "Reports" label_reported_work_packages: "Reported work packages" @@ -2115,7 +2115,7 @@ ms: label_used_by: "Used by" label_used_by_types: "Used by types" label_used_in_projects: "Used in projects" - label_user: "User" + label_user: "Pengguna" label_user_and_permission: "Users and permissions" label_user_named: "User %{name}" label_user_activity: "%{value}'s activity" diff --git a/config/locales/crowdin/pt-BR.seeders.yml b/config/locales/crowdin/pt-BR.seeders.yml index 6bb58afb32fc..70607b6171e3 100644 --- a/config/locales/crowdin/pt-BR.seeders.yml +++ b/config/locales/crowdin/pt-BR.seeders.yml @@ -2,7 +2,7 @@ #Please do not edit directly. #This file is part of the sources sent to crowdin for translation. --- -pt: +pt-BR: seeds: common: colors: diff --git a/config/locales/crowdin/pt-BR.yml b/config/locales/crowdin/pt-BR.yml index 07a74a345516..f86c7349e66d 100644 --- a/config/locales/crowdin/pt-BR.yml +++ b/config/locales/crowdin/pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: no_results_title_text: Atualmente, não há o que exibir. activities: index: diff --git a/config/locales/crowdin/pt-PT.seeders.yml b/config/locales/crowdin/pt-PT.seeders.yml index 37bb5c241ee6..97e72a7f968c 100644 --- a/config/locales/crowdin/pt-PT.seeders.yml +++ b/config/locales/crowdin/pt-PT.seeders.yml @@ -2,7 +2,7 @@ #Please do not edit directly. #This file is part of the sources sent to crowdin for translation. --- -pt: +pt-PT: seeds: common: colors: diff --git a/config/locales/crowdin/pt-PT.yml b/config/locales/crowdin/pt-PT.yml index e17a2aab9ea0..ef005ebb0f01 100644 --- a/config/locales/crowdin/pt-PT.yml +++ b/config/locales/crowdin/pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: no_results_title_text: Atualmente, não há nada para exibir. activities: index: @@ -1921,7 +1921,7 @@ pt: label_member_new: "Novo Membro" label_member_all_admin: "(Todas as funções devidas ao status do administrador)" label_member_plural: "Membros" - label_membership_plural: "Memberships" + label_membership_plural: "Associações" lable_membership_added: "Membro adicionado" lable_membership_updated: "Membro atualizado" label_menu_badge: @@ -2739,7 +2739,7 @@ pt: setting_app_subtitle: "Subtítulo da aplicação" setting_app_title: "Título da aplicação" setting_attachment_max_size: "Tamanho máx. do anexo" - setting_antivirus_scan_mode: "Scan mode" + setting_antivirus_scan_mode: "Modo de digitalização" setting_antivirus_scan_action: "Ação para ficheiro infetado" setting_autofetch_changesets: "Alterações do repositório autofetch" setting_autologin: "Autologin" @@ -2749,7 +2749,7 @@ pt: setting_brute_force_block_minutes: "Tempo de bloqueio do utilizador" setting_cache_formatted_text: "Colocar formatação do texto na memória cache" setting_use_wysiwyg_description: "Selecione para ativar o editor WYSIWYG CKEditor5 para todos os utilizadores por padrão. CKEditor tem funcionalidade limitada para GFM Markdown." - setting_column_options: "Default work package lists columns" + setting_column_options: "Colunas de listas de pacotes de trabalho predefinidas" setting_commit_fix_keywords: "Palavras-chave fixas" setting_commit_logs_encoding: "Codificação das mensagens de confirmação" setting_commit_logtime_activity_id: "Atividade para tempo registado" @@ -2771,7 +2771,7 @@ pt: setting_emails_header: "Cabeçalho de e-mails" setting_email_login: "Utilizar o email como início de sessão" setting_enabled_scm: "SCM ativado" - setting_enabled_projects_columns: "Columns in a projects list displayed by default" + setting_enabled_projects_columns: "Colunas numa lista de projetos apresentadas por predefinição" setting_feeds_enabled: "Permitir Feeds" setting_ical_enabled: "Ativar subscrições do iCalendar" setting_feeds_limit: "Limite de conteúdo feed" @@ -2841,25 +2841,25 @@ pt: Defina uma lista de extensões de ficheiros e/ou de tipos mime para ficheiros carregados.
Insira extensões de ficheiro (por exemplo, %{ext_example}) ou tipos mime (ex., %{mime_example}).
Deixe em branco para permitir que qualquer tipo de ficheiro seja carregado. Vários valores permitidos (uma linha para cada valor). antivirus: title: "Verificação de vírus" - clamav_ping_failed: "Failed to connect the the ClamAV daemon. Double-check the configuration and try again." + clamav_ping_failed: "Não foi possível ligar o daemon do ClamAV. Verifique novamente a configuração e tente novamente." remaining_quarantined_files_html: > - Virus scanning has been disbled. %{file_count} remain in quarantine. To review quarantined files, please visit this link: %{link} + A verificação de vírus foi desativada. %{file_count} permanece(m) em quarentena. Para rever os ficheiros colocados em quarentena, aceda a esta ligação: %{link} remaining_scan_complete_html: > - Remaining files have been scanned. There are %{file_count} in quarantine. You are being redirected to the quarantine page. Use this page to delete or override quarantined files. + Os restantes ficheiros foram verificados. %{file_count} encontram-se em quarentena. Está a ser redirecionado para a página de quarentena. Utilize esta página para eliminar ou substituir ficheiros em quarentena. remaining_rescanned_files: > - Virus scanning has been enabled successfuly. There are %{file_count} that were uploaded previously and still need to be scanned. This process has been scheduled in the background. The files will remain accessible during the scan. + A verificação de vírus foi ativada com êxito. Existem %{file_count} que foram carregados anteriormente e que ainda precisam de ser verificados. Este processo foi agendado em segundo plano. Os ficheiros permanecerão acessíveis durante a verificação. upsale: - description: "Ensure uploaded files in OpenProject are scanned for viruses before being accessible by other users." + description: "Assegure-se que os ficheiros carregados no OpenProject são verificados quanto à presença de vírus antes de serem acessíveis a outros utilizadores." actions: delete: "Eliminar ficheiro" quarantine: "Colocar o ficheiro em quarentena" instructions_html: > Seleccione a ação a executar para os ficheiros em que foi detectado um vírus:
modes: - clamav_socket_html: Enter the socket to the clamd daemon, e.g., %{example} - clamav_host_html: Enter the hostname and port to the clamd daemon separated by colon. e.g., %{example} + clamav_socket_html: Introduza o socket para o daemon clamd, por exemplo, %{example} + clamav_host_html: Introduza o nome do anfitrião e a porta para o daemon clamd separados por dois pontos. Por exemplo, %{example} description_html: > - Select the mode in which the antivirus scanner integration should operate.
+ Selecione o modo em que a integração do scanner antivírus deve funcionar.
brute_force_prevention: "Bloqueio de utilizador automatizado" date_format: first_date_of_week_and_year_set: > diff --git a/config/locales/crowdin/zh-TW.seeders.yml b/config/locales/crowdin/zh-TW.seeders.yml index f0a52d9239f9..2e2d594367b5 100644 --- a/config/locales/crowdin/zh-TW.seeders.yml +++ b/config/locales/crowdin/zh-TW.seeders.yml @@ -218,7 +218,7 @@ zh-TW: name: 里程碑 work_packages: item_0: - subject: Start of project + subject: 專案開始 item_1: subject: Organize open source conference children: diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index 124ddfd44f8b..dfc70c87e2ba 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -80,16 +80,16 @@ zh-TW: buttons: upgrade: "立即更新" contact: "Contact us for a demo" - enterprise_info_html: "is an Enterprise add-on." + enterprise_info_html: "是企業版功能 。" upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team." journal_aggregation: explanation: text: "Individual actions of a user (e.g. updating a work package twice) are aggregated into a single action if their age difference is less than the specified timespan. They will be displayed as a single action within the application. This will also delay notifications by the same amount of time reducing the number of emails being sent and will also affect %{webhook_link} delay." link: "webhook" announcements: - show_until: 顯示直到 + show_until: 只顯示到 is_active: 當前已顯示 - is_inactive: 當前未顯示 + is_inactive: 尚未顯示 antivirus_scan: not_processed_yet_message: "Downloading is blocked, as file was not scanned for viruses yet. Please try again later." quarantined_message: "A virus was detected in file '%{filename}'. It has been quarantined and is not available for download." @@ -205,7 +205,7 @@ zh-TW: description: "Custom actions are one-click shortcuts to a set of pre-defined actions that you can make available on certain work packages based on status, role, type or project." custom_fields: text_add_new_custom_field: > - 要加入自訂欄位至一個專案,您必須先建立欄位才能將它們加入至此專案。 + 要加入客製欄位至一個專案,您必須先建立欄位才能將它們加入至此專案。 is_enabled_globally: "已全域啟用" enabled_in_project: "已在專案中啟用" contained_in_type: "已包含在類型中" @@ -213,9 +213,9 @@ zh-TW: reorder_alphabetical: "Reorder values alphabetically" reorder_confirmation: "Warning: The current order of available values will be lost. Continue?" 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: "將自訂欄位標記為「所有現有專案」和「新專案」中可用。" - searchable: "Include the field values when using the global search functionality." + is_required: "將此欄位定義成必填。\n" + is_for_all: "將客製欄位標記為「所有現有專案」和「新專案」中可用。" + searchable: "使用全域搜尋功能時包含此欄位。" editable: "允許使用者自行編輯此欄位" 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: > @@ -284,7 +284,7 @@ zh-TW: no_results_title_text: 目前沒有工作項目類別 no_results_content_text: 建立一個新工作項目類別 custom_fields: - no_results_title_text: 目前沒有自訂欄位可用。 + no_results_title_text: 目前沒有客製欄位可用。 types: no_results_title_text: 目前沒有可用的類型 form: @@ -488,7 +488,7 @@ zh-TW: activerecord: attributes: announcements: - show_until: "顯示直到" + show_until: "只顯示到" attachment: attachment_content: "附件內容" attachment_file_name: "附件檔案名稱" @@ -529,7 +529,7 @@ zh-TW: min_length: "最小長度" multi_value: "允許多選" possible_values: "可能的值" - regexp: "正則運算式" + regexp: "正規表示式" searchable: "搜索" visible: "可見" custom_value: @@ -852,7 +852,7 @@ zh-TW: group_by_hierarchies_exclusive: "與按照 \"%{group_by}\" 分組的群組相互排斥。不能同時啟動兩者。" filters: custom_fields: - inexistent: "篩選條件沒有自訂欄位。" + inexistent: "篩選條件無客製欄位。" queries/filters/base: attributes: values: @@ -983,9 +983,9 @@ zh-TW: ungrantable: "has an unassignable role." more_than_one: "has more than one role." principal: - unassignable: "cannot be assigned to a project." + unassignable: "無法分派到專案。" version: - undeletable_archived_projects: "The version cannot be deleted as it has work packages attached to it." + undeletable_archived_projects: "該版本無法刪除,因為包含工作項目。" undeletable_work_packages_attached: "The version cannot be deleted as it has work packages attached to it." status: readonly_default_exlusive: "can not be activated for statuses that are marked default." @@ -999,7 +999,7 @@ zh-TW: category: "類別" comment: "留言" custom_action: "自訂動作" - custom_field: "自訂欄位" + custom_field: "客製欄位" "doorkeeper/application": "Oauth 應用程式" forum: "討論區" global_role: "Global role" @@ -1058,8 +1058,8 @@ zh-TW: #common attributes of all models attributes: active: "啟用" - assigned_to: "負責執行者" - assignee: "負責執行者" + assigned_to: "執行者" + assignee: "執行者" attachments: "附加檔" author: "作者" base: "一般錯誤:" @@ -1071,17 +1071,17 @@ zh-TW: color: "顏色" created_at: "建立於" custom_options: "可能的值" - custom_values: "自訂欄位" + custom_values: "客製欄位" date: "日期" default_columns: "預設欄" description: "說明" derived_due_date: "Derived finish date" - derived_estimated_hours: "Total work" + derived_estimated_hours: "總工時" derived_start_date: "Derived start date" display_sums: "顯示加總" due_date: "完成日期" - estimated_hours: "Work" - estimated_time: "Work" + estimated_hours: "工時" + estimated_time: "工時" expires_at: "過期於" firstname: "名字" group: "群組" @@ -1099,7 +1099,7 @@ zh-TW: password: "密碼" priority: "優先等級" project: "專案" - responsible: "可信賴的" + responsible: "負責人" role: "角色" roles: "角色" start_date: "起始日期" @@ -1130,7 +1130,7 @@ zh-TW: implications: > Enabling backups will allow any user with the required permissions and this backup token to download a backup containing all data of this OpenProject installation. This includes the data of all other users. info: > - You will need to generate a backup token to be able to create a backup. Each time you want to request a backup you will have to provide this token. You can delete the backup token to disable backups for this user. + 您將需要產生備份token才能建立備份。 每次您想要請求備份時,您都必須提供此token。 您可以刪除備份token以停用該備份。 verification: > Enter %{word} to confirm you want to %{action} the backup token. verification_word_reset: 重置 @@ -1216,15 +1216,15 @@ zh-TW: consent: checkbox_label: 我已注意到並同意上述情況。 failure_message: 同意失敗, 無法繼續。 - title: 使用者同意資料使用 + title: 使用者同意個資意向書 decline_warning_message: 您已拒絕同意並已登出。 user_has_consented: 使用者已同意您在給定時間配置的語句。 not_yet_consented: 使用者尚未同意, 將在下次登錄時請求。 - contact_mail_instructions: 使用者可以提出更改或移除郵寄地址。 + contact_mail_instructions: 使用者可透過系統更改或移除郵寄地址。 contact_your_administrator: 如果您想刪除您的帳戶, 請與您的管理員聯繫。 contact_this_mail_address: 如果要刪除帳戶, 請聯繫 %{mail_address}。 - text_update_consent_time: 若更改上述資訊時,請使用者再次允許。 - update_consent_last_time: "允許時間: %{update_time}" + text_update_consent_time: 若更改上述資訊時,請使用者再次同意。 + update_consent_last_time: "同意日期: %{update_time}" copy_project: title: '複製專案 %{source_project_name}' started: '開始複製專案從「%{source_project_name}」到 「%{target_project_name}」。當「%{target_project_name}」 可以使用以後,我們會盡快用郵件通知您。' @@ -1232,7 +1232,7 @@ zh-TW: failed_internal: "內部錯誤導致複製失敗。" succeeded: "專案 %{target_project_name} 建立成功" errors: "錯誤" - project_custom_fields: "專案上的自訂欄位" + project_custom_fields: "專案上的客製欄位" x_objects_of_this_type: zero: "No objects of this type" one: "One object of this type" @@ -1384,7 +1384,7 @@ zh-TW: error_auth_source_sso_failed: "單一登入 (SSO) 使用者 '%{value}' 失敗" error_can_not_archive_project: "這個專案無法封存:%{errors}" error_can_not_delete_entry: "無法刪除項目" - error_can_not_delete_custom_field: "無法刪除自訂欄位" + error_can_not_delete_custom_field: "無法刪除客製欄位" 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_type: @@ -1685,7 +1685,7 @@ zh-TW: label_calendars_and_dates: "行事曆與日期" label_calendar_show: "顯示行事曆" label_category: "類別" - label_consent_settings: "使用者同意" + label_consent_settings: "使用者同意個資意向書" label_wiki_menu_item: 維基選單項目 label_select_main_menu_item: 選擇新的主選單項目 label_required_disk_storage: "所使用的磁碟空間" @@ -1731,8 +1731,8 @@ zh-TW: label_current_status: "目前狀態" label_current_version: "目前版本" label_custom_field_add_no_type: "新增此欄位至一個工作項目類別" - label_custom_field_new: "新自訂欄位" - label_custom_field_plural: "自訂欄位" + label_custom_field_new: "新增欄位" + label_custom_field_plural: "客製欄位" label_custom_field_default_type: "空類型" label_custom_style: "設計" label_dashboard: "儀表板" @@ -1748,7 +1748,7 @@ zh-TW: label_delete_user: "刪除使用者" label_delete_project: "刪除專案" label_deleted: "刪除線" - label_deleted_custom_field: "(已刪除的自訂欄位)" + label_deleted_custom_field: "(已刪除的客製欄位)" label_deleted_custom_option: "(deleted option)" label_empty_element: "(空)" label_missing_or_hidden_custom_option: "(missing value or lacking permissions to access)" @@ -1773,7 +1773,7 @@ zh-TW: label_edit: "編輯" label_edit_x: "Edit: %{x}" label_enable_multi_select: "取用複選" - label_enabled_project_custom_fields: "開啟自訂欄位" + label_enabled_project_custom_fields: "開啟客製欄位" label_enabled_project_modules: "啟用的模組" label_enabled_project_activities: "啟用的時間追蹤活動" label_end_to_end: "尾端到尾端" @@ -1879,11 +1879,11 @@ zh-TW: label_logged_as: "登入為" label_login: "登入" label_custom_logo: "自訂logo" - label_custom_export_logo: "Custom export logo" + label_custom_export_logo: "客製匯出的Logo" label_custom_export_cover: "Custom export cover background" label_custom_export_cover_overlay: "Custom export cover background overlay" label_custom_export_cover_text_color: "文字顏色" - label_custom_pdf_export_settings: "Custom PDF export settings" + label_custom_pdf_export_settings: "匯出PDF設定" label_custom_favicon: "自訂圖示" label_custom_touch_icon: "自訂觸控圖示" label_logout: "登出" @@ -2272,7 +2272,7 @@ zh-TW: create_account: "To access this work package, you will need to create and activate an account on %{instance}." open_work_package: "開啟工作項目" subject: "有個工作項目 #%{id} 分享給您" - enterprise_text: "Share work packages with users who are not members of the project." + enterprise_text: "與不是專案成員的使用者共用工作項目。" summary: user: "%{user} 分享一個工作項目給您,權限:%{role_rights}\"" group: "%{user} 分享一個工作項目給您所在的群組: %{group}" @@ -2413,7 +2413,7 @@ zh-TW: notice_automatic_set_of_standard_type: "自動設定標準類型" notice_logged_out: "您已登出" notice_wont_delete_auth_source: The LDAP connection cannot be deleted as long as there are still users using it. - notice_project_cannot_update_custom_fields: "無法更新專案的可用自訂欄位。專案無效:%{errors}" + notice_project_cannot_update_custom_fields: "無法更新專案的可用客製欄位。專案無效:%{errors}" notice_attachment_migration_wiki_page: > 此頁面是因為更新 OpenProject 而自動產生的。他包含了所有之前與 %{container_type} "%{container_name}" 有關聯的附加檔案。 #Default format for numbers @@ -2566,9 +2566,9 @@ zh-TW: #which are not attributes of an AR-Model. query_fields: active_or_archived: "啟用或封存" - assigned_to_role: "負責執行者的角色" + assigned_to_role: "執行者的角色" assignee_or_group: "被指派或所屬的人或群組" - member_of_group: "負責執行者的群組" + member_of_group: "執行者的群組" name_or_identifier: "名稱或識別碼" only_subproject_id: "只限子專案" shared_with_user: "分配給成員" @@ -2723,16 +2723,16 @@ zh-TW: setting_brute_force_block_minutes: "使用者被禁止的時間" setting_cache_formatted_text: "快取格式化文字" setting_use_wysiwyg_description: "勾選此選項可在預設情況下為所有使用者啟用 CKEditor5 所見即所得 (WYSIWYG) 編輯器。CKEditor 對 GFM Markdown的功能有限。" - setting_column_options: "Default work package lists columns" + setting_column_options: "預設工作項目欄位" setting_commit_fix_keywords: "固定的關鍵字" setting_commit_logs_encoding: "Commit 訊息的編碼" setting_commit_logtime_activity_id: "紀錄時間的動作" setting_commit_logtime_enabled: "啟用時間日誌" setting_commit_ref_keywords: "參照關鍵字" - setting_consent_time: "允許時間" + setting_consent_time: "同意日期" setting_consent_info: "條文" setting_consent_required: "是否需要使用者允許" - setting_consent_decline_mail: "允許列在通訊錄" + setting_consent_decline_mail: "同意郵件列在通訊錄" setting_cross_project_work_package_relations: "允許跨專案的工作項目關聯" setting_first_week_of_year: "一年的第一週從哪一天開始" setting_date_format: "日期" @@ -2902,9 +2902,9 @@ zh-TW: text_comment_wiki_page: "Wiki 頁面(%{page})的評論" text_custom_field_possible_values_info: "每個值一行" text_custom_field_hint_activate_per_project: > - 當使用自訂欄位:請留意自訂欄位需要分別被每個專案個別啟用。 + 當使用客製欄位:請留意欄位需要依專案個別啟用。 text_custom_field_hint_activate_per_project_and_type: > - 自訂欄位需要個別被工作項目類別和專案啟用。 + 客製欄位需要個別被工作項目類別和專案啟用。 text_wp_status_read_only_html: > 企業版將提供額外模組到工作項目:
text_project_custom_field_html: > @@ -2912,13 +2912,13 @@ zh-TW: text_custom_logo_instructions: > 建議使用背景透明的白色標誌。為了確保在一般及視網膜螢幕上有最佳效果,請確保您的圖片解析度在 460px X 60px。 text_custom_export_logo_instructions: > - This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended. + 這是出現在 PDF 匯出中的Logo。 它必須是 PNG 或 JPEG 影像檔。 建議在透明或白色背景上使用黑色或彩色標誌。 text_custom_export_cover_instructions: > - This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file. + 這是出現在 PDF 匯出的封面背景中的圖像。 它需要是大約 800 像素寬 x 500 像素高大小的 PNG 或 JPEG 影像檔案。 text_custom_favicon_instructions: > - This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background. + 這是顯示在您的瀏覽器視窗/標籤頁的標題旁邊的小圖示。它必需要是 32px X 32px 大小背景透明的 PNG 圖像檔。 text_custom_touch_icon_instructions: > - This is the icon that appears in your mobile or tablet when you place a bookmark on your homescreen. It needs to be a squared 180 by 180 pixels sized PNG image file. Please make sure the image's background is not transparent otherwise it will look bad on iOS. + 這個圖示將會顯示在您的手機或平板的主畫面中。它必須是 180px X 180px 大小的 PNG 圖檔。請確保圖片的背景不是透明的,否則在 iOS 上會看起來很醜。 text_database_allows_tsv: "資料庫允許 TSVector (非必要)" text_default_administrator_account_changed: "預設管理者帳號已更改" text_default_encoding: "預設值: UTF-8" @@ -3136,7 +3136,7 @@ zh-TW: view: "檢視" view_description: "查看此工作項目" remove: "刪除" - share: "分享" + share: "共享" 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_state_description: "此工作項目尚未與任何人分享" @@ -3156,7 +3156,7 @@ zh-TW: invite_resent: "已重傳邀請" not_project_member: "非專案的成員" project_group: "Group members might have additional privileges (as project members)" - not_project_group: "Group (shared with all members)" + not_project_group: "成員共享群組" 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)" diff --git a/docs/bim-guide/revit-add-in/README.md b/docs/bim-guide/revit-add-in/README.md index 435b81ebd668..94dada52c25d 100644 --- a/docs/bim-guide/revit-add-in/README.md +++ b/docs/bim-guide/revit-add-in/README.md @@ -48,7 +48,7 @@ The **OpenProject Revit AddIn** does not have any special system requirements. A To download the setup application for the **OpenProject Revit AddIn**, click here: [DOWNLOAD](https://github.com/opf/openproject-revit-add-in/releases/download/v2.3.3/OpenProject.Revit.exe) -You can find the latest version of our AddIn on [Github](https://github.com/opf/openproject-revit-add-in/releases/latest) as well. +You can find the latest version of our AddIn on [GitHub](https://github.com/opf/openproject-revit-add-in/releases/latest) as well. diff --git a/docs/development/contribution-documentation/README.md b/docs/development/contribution-documentation/README.md index 0069b6376e2c..4d8868227004 100644 --- a/docs/development/contribution-documentation/README.md +++ b/docs/development/contribution-documentation/README.md @@ -8,7 +8,9 @@ keywords: contribution, documentation, documentation process # Contribute to the OpenProject documentation +## How do I get access to the OpenProject Community installation? +To get an account for community.openproject.org, please write an email with the subject 'Joining community' to [support@openproject.com](mailto:support@openproject.com), if you would like to join our Community. We will then invite you as soon as possible. ## What does the OpenProject documentation entail? diff --git a/docs/development/contribution-documentation/contribution-support/README.md b/docs/development/contribution-documentation/contribution-support/README.md index ecd850db9135..ac8d94e48b30 100644 --- a/docs/development/contribution-documentation/contribution-support/README.md +++ b/docs/development/contribution-documentation/contribution-support/README.md @@ -10,7 +10,7 @@ keywords: help, support, documentation process, documentation If you have any questions on the contribution process or encounter problems with your contribution to the OpenProject documentation, please open a ticket. We will then get in touch with you via the ticket. -1. Login to or register at the [OpenProject community platform](https://community.openproject.org/login). It’s fast and free. +1. Login to or register at the [OpenProject community platform](https://community.openproject.org/). It's fast and free. Please note: In order to create an account, please write an email with the subject 'Joining community' to [support@openproject.com](mailto:support@openproject.com). 2. Open a new [documentation work package](https://community.openproject.org/projects/openproject/work_packages/new?type=69). diff --git a/docs/development/contribution-documentation/documentation-process/README.md b/docs/development/contribution-documentation/documentation-process/README.md index 1962c6a0c252..fb9b76e126af 100644 --- a/docs/development/contribution-documentation/documentation-process/README.md +++ b/docs/development/contribution-documentation/documentation-process/README.md @@ -32,7 +32,7 @@ You can download the installer from the [Typora website](https://typora.io). Fol You can install the software GitHub Desktop on any [supported operating systems](https://docs.github.com/en/desktop/installing-and-configuring-github-desktop/overview/supported-operating-systems). To install GitHub Desktop navigate to [https://desktop.github.com](https://desktop.github.com) and download the appropriate version for your operating system. Follow the prompts to complete the installation. -## Step 4: Sign in into Github.com in GitHub Desktop +## Step 4: Sign in into GitHub.com in GitHub Desktop To exchange data between your local repository and remote repositories you need to first sign (File -> Options -> Sign in). @@ -196,7 +196,7 @@ In GitHub Desktop **at Current branch the old branch is visible [1]** . After yo #### C) Change remote repository back to the forked repository (ORIGIN) -In Github Desktop choose menu "Repository -> Repository settings". This will open a new window (screenshot below). Enter the URL of your forked OpenProject repository (e.g. https://github.com/adam-op/openproject.git). Confirm with **Save** +In GitHub Desktop choose menu "Repository -> Repository settings". This will open a new window (screenshot below). Enter the URL of your forked OpenProject repository (e.g. https://github.com/adam-op/openproject.git). Confirm with **Save** ![rebase-your-fork-step-3](rebase-your-fork-step-3.png) diff --git a/docs/development/development-environment-docker/README.md b/docs/development/development-environment-docker/README.md index ffa759efbe7a..191755e3dcf2 100644 --- a/docs/development/development-environment-docker/README.md +++ b/docs/development/development-environment-docker/README.md @@ -396,7 +396,7 @@ docker compose --project-directory docker/dev/tls up -d ## GitLab CE Service -Within `docker/dev/gitlab` a compose file is provided for running local Gitlab instance with TLS support. This provides +Within `docker/dev/gitlab` a compose file is provided for running local GitLab instance with TLS support. This provides a production like environment for testing the OpenProject GitLab integration against a community edition GitLab instance accessible on `https://gitlab.local`. diff --git a/docs/development/report-a-bug/README.md b/docs/development/report-a-bug/README.md index cb35cea9757f..29cf2c940d86 100644 --- a/docs/development/report-a-bug/README.md +++ b/docs/development/report-a-bug/README.md @@ -9,7 +9,7 @@ keywords: bug report, bug, error, not working If you find a bug please create a bug report. -1. Login to or register at the [OpenProject community platform](https://community.openproject.org/login). It's fast and free. +1. Login to or register at the [OpenProject community platform](https://community.openproject.org/). It's fast and free. Please note: In order to create an account, please write an email with the subject 'Joining community' to [support@openproject.com](mailto:support@openproject.com). 2. Look for an existing bug report using the search bar in the header navigation on top. If there's one, please leave a comment or add additional information. Otherwise: 3. Open the [bug form](https://community.openproject.org/projects/openproject/work_packages/new?type=1). 4. Add a precise subject. diff --git a/docs/development/running-tests/README.md b/docs/development/running-tests/README.md index 0eebfa67defc..79e39b8fc71a 100644 --- a/docs/development/running-tests/README.md +++ b/docs/development/running-tests/README.md @@ -837,7 +837,7 @@ OPENPROJECT_CLI_PROXY='http://:4200' ./bin/rails s -b 0.0.0.0 -p # Now access your server from http://:3000 with code reloading ``` -You might have to also update your host name setting `bundle exec rake setting:set[host_name=yourip]`. +You might have to also update your host name setting `bundle exec rake setting:set[host_name=your-ip]`. ## Legacy LDAP tests diff --git a/docs/development/submit-feature-idea/README.md b/docs/development/submit-feature-idea/README.md index 0233525ae671..c802fd64c842 100644 --- a/docs/development/submit-feature-idea/README.md +++ b/docs/development/submit-feature-idea/README.md @@ -9,7 +9,7 @@ keywords: feature requests, ideas, open feature request ## How to submit a feature idea or request -1. Login to or register at the [OpenProject community platform](https://community.openproject.org/login). It's fast and free. +1. Login to or register at the [OpenProject community platform](https://community.openproject.org/). It's fast and free. Please note: In order to create an account, please write an email with the subject 'Joining community' to [support@openproject.com](mailto:support@openproject.com). 2. Use the search bar in the header navigation on top to look for similar feature requests. If there's one, please leave a comment or add additional information. Otherwise: 3. Open the [feature create form](https://community.openproject.org/projects/openproject/work_packages/new?type=6). 4. Add a subject and detailed description using the template. diff --git a/docs/getting-started/gantt-chart-introduction/openproject-user-guide-create-project-plan.gif b/docs/getting-started/gantt-chart-introduction/openproject-user-guide-create-project-plan.gif index 86bdb3c00e5b..5a57e841797d 100644 Binary files a/docs/getting-started/gantt-chart-introduction/openproject-user-guide-create-project-plan.gif and b/docs/getting-started/gantt-chart-introduction/openproject-user-guide-create-project-plan.gif differ diff --git a/docs/getting-started/gantt-chart-introduction/openproject-user-guide-edit-project-plan.gif b/docs/getting-started/gantt-chart-introduction/openproject-user-guide-edit-project-plan.gif index 1e3e21b26a77..b95c45a764f0 100644 Binary files a/docs/getting-started/gantt-chart-introduction/openproject-user-guide-edit-project-plan.gif and b/docs/getting-started/gantt-chart-introduction/openproject-user-guide-edit-project-plan.gif differ diff --git a/docs/getting-started/gantt-chart-introduction/openproject-user-guide-select-gantt-charts-module.png b/docs/getting-started/gantt-chart-introduction/openproject-user-guide-select-gantt-charts-module.png index 138e078a430b..466e10d66b95 100644 Binary files a/docs/getting-started/gantt-chart-introduction/openproject-user-guide-select-gantt-charts-module.png and b/docs/getting-started/gantt-chart-introduction/openproject-user-guide-select-gantt-charts-module.png differ diff --git a/docs/getting-started/invite-members/create-project-button.png b/docs/getting-started/invite-members/create-project-button.png index 1e7579161468..be98dc258f64 100644 Binary files a/docs/getting-started/invite-members/create-project-button.png and b/docs/getting-started/invite-members/create-project-button.png differ diff --git a/docs/getting-started/invite-members/invite-new-member-email.png b/docs/getting-started/invite-members/invite-new-member-email.png index 9244cac0fd30..7e2611ffb631 100644 Binary files a/docs/getting-started/invite-members/invite-new-member-email.png and b/docs/getting-started/invite-members/invite-new-member-email.png differ diff --git a/docs/getting-started/invite-members/invite-new-member.png b/docs/getting-started/invite-members/invite-new-member.png index ca3187700312..7598a2717d33 100644 Binary files a/docs/getting-started/invite-members/invite-new-member.png and b/docs/getting-started/invite-members/invite-new-member.png differ diff --git a/docs/getting-started/invite-members/invite-user-over-assignment.png b/docs/getting-started/invite-members/invite-user-over-assignment.png index 2766aab005cf..ebb918fc7f8a 100644 Binary files a/docs/getting-started/invite-members/invite-user-over-assignment.png and b/docs/getting-started/invite-members/invite-user-over-assignment.png differ diff --git a/docs/getting-started/invite-members/invite-user-pop-up.png b/docs/getting-started/invite-members/invite-user-pop-up.png index b2c4bb75556c..5afcb4198ff5 100644 Binary files a/docs/getting-started/invite-members/invite-user-pop-up.png and b/docs/getting-started/invite-members/invite-user-pop-up.png differ diff --git a/docs/getting-started/invite-members/project-members-module.png b/docs/getting-started/invite-members/project-members-module.png index 2cd07dbbad43..ee6e5c648b73 100644 Binary files a/docs/getting-started/invite-members/project-members-module.png and b/docs/getting-started/invite-members/project-members-module.png differ diff --git a/docs/getting-started/my-account/openproject_my_account_2fa_overview.png b/docs/getting-started/my-account/openproject_my_account_2fa_overview.png index 161ca2b95701..89bd0c38fb53 100644 Binary files a/docs/getting-started/my-account/openproject_my_account_2fa_overview.png and b/docs/getting-started/my-account/openproject_my_account_2fa_overview.png differ diff --git a/docs/getting-started/my-account/openproject_my_account_authentication_options.png b/docs/getting-started/my-account/openproject_my_account_authentication_options.png index 465a6eaf7303..f0c5f0370da9 100644 Binary files a/docs/getting-started/my-account/openproject_my_account_authentication_options.png and b/docs/getting-started/my-account/openproject_my_account_authentication_options.png differ diff --git a/docs/getting-started/my-account/openproject_my_account_authenticator_app.png b/docs/getting-started/my-account/openproject_my_account_authenticator_app.png index f3cf1a9474d2..20bdf66034d5 100644 Binary files a/docs/getting-started/my-account/openproject_my_account_authenticator_app.png and b/docs/getting-started/my-account/openproject_my_account_authenticator_app.png differ diff --git a/docs/getting-started/my-account/openproject_my_account_authenticator_webauth.png b/docs/getting-started/my-account/openproject_my_account_authenticator_webauth.png index e02686fb1c9c..81e36f862af9 100644 Binary files a/docs/getting-started/my-account/openproject_my_account_authenticator_webauth.png and b/docs/getting-started/my-account/openproject_my_account_authenticator_webauth.png differ diff --git a/docs/getting-started/my-account/openproject_my_account_two_factor_authentication.png b/docs/getting-started/my-account/openproject_my_account_two_factor_authentication.png index 5a3c82644068..380de66d21b8 100644 Binary files a/docs/getting-started/my-account/openproject_my_account_two_factor_authentication.png and b/docs/getting-started/my-account/openproject_my_account_two_factor_authentication.png differ diff --git a/docs/getting-started/my-account/openproject_my_account_two_factor_authentication_mobile.png b/docs/getting-started/my-account/openproject_my_account_two_factor_authentication_mobile.png index 2ccc05254f5c..b38891250493 100644 Binary files a/docs/getting-started/my-account/openproject_my_account_two_factor_authentication_mobile.png and b/docs/getting-started/my-account/openproject_my_account_two_factor_authentication_mobile.png differ diff --git a/docs/getting-started/projects/create-a-new-project-landing-page.png b/docs/getting-started/projects/create-a-new-project-landing-page.png index d0fb8becb201..43859edcba1c 100644 Binary files a/docs/getting-started/projects/create-a-new-project-landing-page.png and b/docs/getting-started/projects/create-a-new-project-landing-page.png differ diff --git a/docs/getting-started/projects/create-project-header.png b/docs/getting-started/projects/create-project-header.png index 9ec6f351932e..ed89c62571f9 100644 Binary files a/docs/getting-started/projects/create-project-header.png and b/docs/getting-started/projects/create-project-header.png differ diff --git a/docs/getting-started/projects/openproject-landing-page.png b/docs/getting-started/projects/openproject-landing-page.png index 4392998684b5..d3d2736bf578 100644 Binary files a/docs/getting-started/projects/openproject-landing-page.png and b/docs/getting-started/projects/openproject-landing-page.png differ diff --git a/docs/getting-started/projects/project-overview-list.png b/docs/getting-started/projects/project-overview-list.png index e87b19b3dd2d..9a31c0706155 100644 Binary files a/docs/getting-started/projects/project-overview-list.png and b/docs/getting-started/projects/project-overview-list.png differ diff --git a/docs/getting-started/projects/view_all_projects.png b/docs/getting-started/projects/view_all_projects.png index 62a5f4f1be14..8240d050cfe3 100644 Binary files a/docs/getting-started/projects/view_all_projects.png and b/docs/getting-started/projects/view_all_projects.png differ diff --git a/docs/getting-started/projects/view_all_projects_options.png b/docs/getting-started/projects/view_all_projects_options.png index ad8cf874ccc7..5fa959b7f4b2 100644 Binary files a/docs/getting-started/projects/view_all_projects_options.png and b/docs/getting-started/projects/view_all_projects_options.png differ diff --git a/docs/glossary/README.md b/docs/glossary/README.md index bd18d288858d..3c3bd4d27dbf 100644 --- a/docs/glossary/README.md +++ b/docs/glossary/README.md @@ -274,7 +274,7 @@ Your activated plugins are listed together with your [modules](#module) in your ### Primer design system -OpenProject started adopting [Github's Primer Design System](https://primer.style/) in 2023. New features will be developed using Primer and existing features will will be gradually revised. Relevant reusable components from Primer as well as common patterns and compositions of these components will be documented in our [Lookbook](https://qa.openproject-edge.com/lookbook/pages/how_to_use). [Read more about OpenProject's decision to use Primer](https://www.openproject.org/blog/primer-design-system/). +OpenProject started adopting [GitHub's Primer Design System](https://primer.style/) in 2023. New features will be developed using Primer and existing features will will be gradually revised. Relevant reusable components from Primer as well as common patterns and compositions of these components will be documented in our [Lookbook](https://qa.openproject-edge.com/lookbook/pages/how_to_use). [Read more about OpenProject's decision to use Primer](https://www.openproject.org/blog/primer-design-system/). ### Project diff --git a/docs/installation-and-operations/configuration/README.md b/docs/installation-and-operations/configuration/README.md index 92e9234ecf47..3571d5935f80 100644 --- a/docs/installation-and-operations/configuration/README.md +++ b/docs/installation-and-operations/configuration/README.md @@ -758,7 +758,7 @@ OPENPROJECT_2FA_ENFORCED="true" **Setting available strategies** -By default, the TOTP and WebAuthn strategie are active. +By default, the TOTP and WebAuthn strategies are active. If you have a [MessageBird account](https://www.messagebird.com/), you can setup a SMS 2FA by activating that strategy like so: diff --git a/docs/installation-and-operations/configuration/plugins/README.md b/docs/installation-and-operations/configuration/plugins/README.md index 99faac1d6a5d..7282137ec9f7 100644 --- a/docs/installation-and-operations/configuration/plugins/README.md +++ b/docs/installation-and-operations/configuration/plugins/README.md @@ -24,7 +24,7 @@ group :opf_plugins do end ``` -**Note:** The Gitlab plugin is usually only compatible with the latest versions. For more information, please see the respective repository: https://github.com/btey/openproject-gitlab-integration/ +**Note:** The GitLab plugin is usually only compatible with the latest versions. For more information, please see the respective repository: https://github.com/btey/openproject-gitlab-integration/ The group `:opf_plugins` is generally recommended, but only required for plugins with custom frontend code that is picked up by webpack and output into their respective bundles. diff --git a/docs/release-notes/11/11-0-0/README.md b/docs/release-notes/11/11-0-0/README.md index e3f569d5990b..1bfaa6c36e6c 100644 --- a/docs/release-notes/11/11-0-0/README.md +++ b/docs/release-notes/11/11-0-0/README.md @@ -229,7 +229,7 @@ There are lots and lots of new things we packed into 11.0 to tell you about. - Fixed: Error 500 when bulk-editing work packages \[[#34588](https://community.openproject.org/wp/34588)\] - Fixed: Year almost hidden in date picker for version \[[#34590](https://community.openproject.org/wp/34590)\] - Fixed: Onboarding tour broken in multiple places \[[#34597](https://community.openproject.org/wp/34597)\] -- Fixed: Github Integration \[[#34598](https://community.openproject.org/wp/34598)\] +- Fixed: GitHub Integration \[[#34598](https://community.openproject.org/wp/34598)\] - Fixed: Google OpenID provider image not shown in login form \[[#34601](https://community.openproject.org/wp/34601)\] - Fixed: Parent work package in manual scheduling mode without date cannot be scheduled from Gantt chart \[[#34710](https://community.openproject.org/wp/34710)\] - Fixed: Menu too small/completely hidden on Roadmap \[[#34712](https://community.openproject.org/wp/34712)\] @@ -291,7 +291,7 @@ There are lots and lots of new things we packed into 11.0 to tell you about. - Changed: Improve board creation modal \[[#34070](https://community.openproject.org/wp/34070)\] - Changed: Hide derived (Start/Finish) Date from work package forms \[[#34122](https://community.openproject.org/wp/34122)\] - Changed: Extend search autocompleter with useful information \[[#34132](https://community.openproject.org/wp/34132)\] -- Changed: [all projects overview] (Add option to) show status-text in expanded view. \[[#34191](https://community.openproject.org/wp/34191)\] +- Changed: \[all projects overview\] (Add option to) show status-text in expanded view. \[[#34191](https://community.openproject.org/wp/34191)\] - Changed: Map board subtasks columns when copying projects \[[#34238](https://community.openproject.org/wp/34238)\] - Changed: Having meetings as a linkable resource \[[#34256](https://community.openproject.org/wp/34256)\] - Changed: What's new teaser OpenProject BIM 11.0 \[[#34514](https://community.openproject.org/wp/34514)\] diff --git a/docs/release-notes/11/11-3-0/README.md b/docs/release-notes/11/11-3-0/README.md index 3bbf6d9b53a6..bac6cff9810b 100644 --- a/docs/release-notes/11/11-3-0/README.md +++ b/docs/release-notes/11/11-3-0/README.md @@ -124,7 +124,7 @@ Users now have the option to **create backups of their OpenProject installation* - Changed: Add copy project form to APIv3 \[[#37091](https://community.openproject.org/wp/37091)\] - Changed: Attribute help text on dynamic form \[[#37092](https://community.openproject.org/wp/37092)\] - Changed: Improve design of checkboxes in formly forms \[[#37105](https://community.openproject.org/wp/37105)\] -- Changed: Improve design of Github tab \[[#37108](https://community.openproject.org/wp/37108)\] +- Changed: Improve design of GitHub tab \[[#37108](https://community.openproject.org/wp/37108)\] - Changed: Allow inviting users from project member administration for non admins \[[#37126](https://community.openproject.org/wp/37126)\] - Changed: Handle duplicate project identifiers in the backend \[[#37140](https://community.openproject.org/wp/37140)\] - Fixed: Unable to enter Boards module when work package module is disabled \[[#34794](https://community.openproject.org/wp/34794)\] @@ -183,7 +183,7 @@ Users now have the option to **create backups of their OpenProject installation* - Fixed: "(None)" option missing for parent project drop down select \[[#37398](https://community.openproject.org/wp/37398)\] - Fixed: Multi-select fields do not adjust height (cannot see values) \[[#37404](https://community.openproject.org/wp/37404)\] - Fixed: OpenProject backup completes partially with file permission errors \[[#37440](https://community.openproject.org/wp/37440)\] -- Fixed: Github user avatar not rendered correctly \[[#37444](https://community.openproject.org/wp/37444)\] +- Fixed: GitHub user avatar not rendered correctly \[[#37444](https://community.openproject.org/wp/37444)\] - Fixed: Password confirmation during backup token reset not working \[[#37445](https://community.openproject.org/wp/37445)\] - Fixed: Several problem with the header in mobile view \[[#37452](https://community.openproject.org/wp/37452)\] - Fixed: allowedValues for project user custom fields result in 400 bad request \[[#37453](https://community.openproject.org/wp/37453)\] diff --git a/docs/release-notes/11/11-4-0/README.md b/docs/release-notes/11/11-4-0/README.md index d2690f702a75..5ba523517c25 100644 --- a/docs/release-notes/11/11-4-0/README.md +++ b/docs/release-notes/11/11-4-0/README.md @@ -28,7 +28,7 @@ OpenProject 11.4.0 adds packaged installation support for Debian 11 "Bullseye". - Fixed: Wiki menu item scrolling does not work with two main wiki items \[[#38878](https://community.openproject.org/wp/38878)\] - Fixed: Imminent user limit warning shown prematurely \[[#38893](https://community.openproject.org/wp/38893)\] - Fixed: Custom S3 compatible upload providers blocked by CSP \[[#38900](https://community.openproject.org/wp/38900)\] -- Fixed: [Github Integration] Webhook fails for pull_request event without body \[[#38919](https://community.openproject.org/wp/38919)\] +- Fixed: [GitHub Integration] Webhook fails for pull_request event without body \[[#38919](https://community.openproject.org/wp/38919)\] - Fixed: IFC upload not working since attachment whitelisting \[[#38954](https://community.openproject.org/wp/38954)\] - Fixed: BIM seed are missing snapshots \[[#39009](https://community.openproject.org/wp/39009)\] - Fixed: Regression: Typing S while focus in viewer opens the OP global search \[[#39029](https://community.openproject.org/wp/39029)\] diff --git a/docs/release-notes/12/12-1-0/README.md b/docs/release-notes/12/12-1-0/README.md index 8c457b75608c..90ce53533abb 100644 --- a/docs/release-notes/12/12-1-0/README.md +++ b/docs/release-notes/12/12-1-0/README.md @@ -150,7 +150,7 @@ We added a new “Files” tab in the work package details. This way, you will h - Fixed: Users can't select public template projects in new project dialog \[[#40918](https://community.openproject.org/wp/40918)\] - Fixed: Meeting Time in iCalendar is wrong \[[#40941](https://community.openproject.org/wp/40941)\] - Fixed: Toolbar icons should be rendered in the "old" style and not the new rounded style (which is a work in progress) \[[#40957](https://community.openproject.org/wp/40957)\] -- Fixed: [Docker] - Gitlab integration plugin \[[#40959](https://community.openproject.org/wp/40959)\] +- Fixed: [Docker] - GitLab integration plugin \[[#40959](https://community.openproject.org/wp/40959)\] - Fixed: Project dropdown no longer autofocused \[[#40978](https://community.openproject.org/wp/40978)\] - Fixed: Not possible to copy work package to another project \[[#41005](https://community.openproject.org/wp/41005)\] - Fixed: Changed calendar styles applied to time entries component \[[#41013](https://community.openproject.org/wp/41013)\] diff --git a/docs/release-notes/13-3-0/README.md b/docs/release-notes/13-3-0/README.md index c501e37adc3f..dcfbdb794101 100644 --- a/docs/release-notes/13-3-0/README.md +++ b/docs/release-notes/13-3-0/README.md @@ -56,7 +56,7 @@ With this release, admins of an Enterprise edition can choose between manually o - Bugfix: Lookbook is broken \[[#51787](https://community.openproject.org/wp/51787)\] - Bugfix: Anonymous Users (without signing in) cannot load board content \[[#51850](https://community.openproject.org/wp/51850)\] - Bugfix: Misalignment in the dropdown on searching work packages \[[#51948](https://community.openproject.org/wp/51948)\] -- Bugfix: Remove colour in share modal is not correct \[[#52012](https://community.openproject.org/wp/52012)\] +- Bugfix: Remove color in share modal is not correct \[[#52012](https://community.openproject.org/wp/52012)\] - Bugfix: Timeouts as non privileged users \[[#52022](https://community.openproject.org/wp/52022)\] - Bugfix: WorkPackage query with baseline filter takes too much time for non-admins \[[#52156](https://community.openproject.org/wp/52156)\] - Bugfix: Multi-select user custom field broken in table \[[#52289](https://community.openproject.org/wp/52289)\] diff --git a/docs/release-notes/13-3-0/openproject-13-3-sharepoint-onedrive-automatically-managed-project-folders-highlighted.png b/docs/release-notes/13-3-0/openproject-13-3-sharepoint-onedrive-automatically-managed-project-folders-highlighted.png index d2a002099aa0..c983ff779c48 100644 Binary files a/docs/release-notes/13-3-0/openproject-13-3-sharepoint-onedrive-automatically-managed-project-folders-highlighted.png and b/docs/release-notes/13-3-0/openproject-13-3-sharepoint-onedrive-automatically-managed-project-folders-highlighted.png differ diff --git a/docs/release-notes/13-3-0/openproject-filter-project-lists.png b/docs/release-notes/13-3-0/openproject-filter-project-lists.png index 0391b318eefc..b94140e02a09 100644 Binary files a/docs/release-notes/13-3-0/openproject-filter-project-lists.png and b/docs/release-notes/13-3-0/openproject-filter-project-lists.png differ diff --git a/docs/release-notes/13-3-0/openproject-user-guide-select-gantt-charts-global.png b/docs/release-notes/13-3-0/openproject-user-guide-select-gantt-charts-global.png index 3800c47c724a..d24e3625f174 100644 Binary files a/docs/release-notes/13-3-0/openproject-user-guide-select-gantt-charts-global.png and b/docs/release-notes/13-3-0/openproject-user-guide-select-gantt-charts-global.png differ diff --git a/docs/release-notes/13-4-0/GitLab_integration.png b/docs/release-notes/13-4-0/GitLab_integration.png index c140eaa0e9ee..a83ef84cfed7 100644 Binary files a/docs/release-notes/13-4-0/GitLab_integration.png and b/docs/release-notes/13-4-0/GitLab_integration.png differ diff --git a/docs/release-notes/13-4-0/README.md b/docs/release-notes/13-4-0/README.md index d413ff082239..ce75e15c7e43 100644 --- a/docs/release-notes/13-4-0/README.md +++ b/docs/release-notes/13-4-0/README.md @@ -88,7 +88,7 @@ Accessibility functionality: Convey to screenreaders when OAuth login has starte OpenProject version 13.4 now supports PDF exports with lists in table cells that are displayed correctly. Export a work package that contains a table with lists in it into a PDF. Here is an example of how this looks from now on: -![Work package with a table in the description field and how it looks when exportet as PDF](openproject-13-4-pdf-export-table-lists.png) +![Work package with a table in the description field and how it looks when exported as PDF](openproject-13-4-pdf-export-table-lists.png) ### WebAuthn/FIDO/U2F is added as a second factor @@ -139,13 +139,14 @@ Thanks to our great Community we can continuously offer more languages for OpenP - Bugfix: LDAP user can't be created if optional attributes are not mapped \[[#53327](https://community.openproject.org/wp/53327)\] - Bugfix: Page editor menu moves under the header \[[#53365](https://community.openproject.org/wp/53365)\] - Bugfix: Project folder is shown in the main menu based on the wrong permission for automatically managed project folders \[[#53367](https://community.openproject.org/wp/53367)\] -- Bugfix: Portuguese and Portuguese Brezilian should be distinct from each other \[[#53374](https://community.openproject.org/wp/53374)\] +- Bugfix: Portuguese and Portuguese Brazilian should be distinct from each other \[[#53374](https://community.openproject.org/wp/53374)\] - Bugfix: Blacklisted routes not working \[[#53399](https://community.openproject.org/wp/53399)\] - Bugfix: Incorrect spelling of GitLab module under project settings \[[#53434](https://community.openproject.org/wp/53434)\] - Bugfix: Webauthn fails on mobile Safari \[[#53442](https://community.openproject.org/wp/53442)\] - Bugfix: Rake secret task gone in 13.3.1 (breaking scripts & diverging from docs) \[[#53447](https://community.openproject.org/wp/53447)\] - Bugfix: WebAuth fails on iOS \[[#53494](https://community.openproject.org/wp/53494)\] -- Bugfix: WebAuthen not selectable on mobile \[[#53495](https://community.openproject.org/wp/53495)\] +- Bugfix: WebAuthn not selectable on mobile \[[#53495](https://community.openproject.org/wp/53495)\] +- Bugfix: Cannot delete reports in time and costs \[[#52284](https://community.openproject.org/projects/openproject/work_packages/52284/activity)\] diff --git a/docs/release-notes/13-4-0/meetings-openproject-13-4-files.png b/docs/release-notes/13-4-0/meetings-openproject-13-4-files.png index e5cad2c41941..ea441c0d869f 100644 Binary files a/docs/release-notes/13-4-0/meetings-openproject-13-4-files.png and b/docs/release-notes/13-4-0/meetings-openproject-13-4-files.png differ diff --git a/docs/release-notes/13-4-0/openproject-13-4-intermediate-modal-nudging.jpg b/docs/release-notes/13-4-0/openproject-13-4-intermediate-modal-nudging.jpg index 8af812a1a3d4..fef763895545 100644 Binary files a/docs/release-notes/13-4-0/openproject-13-4-intermediate-modal-nudging.jpg and b/docs/release-notes/13-4-0/openproject-13-4-intermediate-modal-nudging.jpg differ diff --git a/docs/release-notes/13-4-0/openproject-13-4-meetings-copy-agenda-highlighted.png b/docs/release-notes/13-4-0/openproject-13-4-meetings-copy-agenda-highlighted.png index 45585cd7fd61..5ac4c67b1fa6 100644 Binary files a/docs/release-notes/13-4-0/openproject-13-4-meetings-copy-agenda-highlighted.png and b/docs/release-notes/13-4-0/openproject-13-4-meetings-copy-agenda-highlighted.png differ diff --git a/docs/release-notes/13-4-0/openproject-13-4-nudge-oauth.jpg b/docs/release-notes/13-4-0/openproject-13-4-nudge-oauth.jpg deleted file mode 100644 index 8c2d677f8f57..000000000000 Binary files a/docs/release-notes/13-4-0/openproject-13-4-nudge-oauth.jpg and /dev/null differ diff --git a/docs/release-notes/13-4-0/openproject-13-4-pdf-export-table-lists.png b/docs/release-notes/13-4-0/openproject-13-4-pdf-export-table-lists.png index 8e67103b32ec..0864c8a0fca7 100644 Binary files a/docs/release-notes/13-4-0/openproject-13-4-pdf-export-table-lists.png and b/docs/release-notes/13-4-0/openproject-13-4-pdf-export-table-lists.png differ diff --git a/docs/release-notes/13-4-0/openproject_system_settings_virus_scanning.png b/docs/release-notes/13-4-0/openproject_system_settings_virus_scanning.png deleted file mode 100644 index cee2c77825c2..000000000000 Binary files a/docs/release-notes/13-4-0/openproject_system_settings_virus_scanning.png and /dev/null differ diff --git a/docs/release-notes/13-4-0/openproject_virus_scanning.png b/docs/release-notes/13-4-0/openproject_virus_scanning.png index 52bebc987c66..9cae7c1d47f9 100644 Binary files a/docs/release-notes/13-4-0/openproject_virus_scanning.png and b/docs/release-notes/13-4-0/openproject_virus_scanning.png differ diff --git a/docs/release-notes/13-4-1/README.md b/docs/release-notes/13-4-1/README.md new file mode 100644 index 000000000000..4fa667ec6042 --- /dev/null +++ b/docs/release-notes/13-4-1/README.md @@ -0,0 +1,37 @@ +--- +title: OpenProject 13.4.1 +sidebar_navigation: + title: 13.4.1 +release_version: 13.4.1 +release_date: 2024-03-26 +--- + +# OpenProject 13.4.1 + +Release date: 2024-03-26 + +We released [OpenProject 13.4.1](https://community.openproject.org/versions/2035). +The release contains several bug fixes and we recommend updating to the newest version. + + + +## Bug fixes and changes + + + + +- Bugfix: Error 500 on project lists after upgrade to 13.4.0 \[[#53570](https://community.openproject.org/wp/53570)\] +- Bugfix: PT-BR translation works as PT-PT \[[#53584](https://community.openproject.org/wp/53584)\] +- Bugfix: Work Package Table crashes when grouped by integer and sums are displayed \[[#53609](https://community.openproject.org/wp/53609)\] +- Bugfix: SettingSeeder rake aborted! when upgrade from 13.3.0 to 13.4.0 \[[#53611](https://community.openproject.org/wp/53611)\] +- Bugfix: Internal error (comparisson NilClass with String failed) on query 5000 on community \[[#53617](https://community.openproject.org/wp/53617)\] + + + + +#### Contributions +A big thanks to community members for reporting bugs and helping us identifying and providing fixes. + +Special thanks for reporting and finding bugs go to + +Romain Besson, Ricardo Vigatti, Bình Trần diff --git a/docs/release-notes/3/3-0-16/README.md b/docs/release-notes/3/3-0-16/README.md index ac8cd5306918..c5ab39238e14 100644 --- a/docs/release-notes/3/3-0-16/README.md +++ b/docs/release-notes/3/3-0-16/README.md @@ -28,6 +28,6 @@ bugs! For a complete list of changes, please refer to the [Changelog v3.0.16](https://community.openproject.org/versions/544) or have a look at -[Github](https://github.com/opf/openproject/tree/v3.0.16). +[GitHub](https://github.com/opf/openproject/tree/v3.0.16). diff --git a/docs/release-notes/4/4-0-2/README.md b/docs/release-notes/4/4-0-2/README.md index dc4c12179dca..b517b918ff79 100644 --- a/docs/release-notes/4/4-0-2/README.md +++ b/docs/release-notes/4/4-0-2/README.md @@ -36,4 +36,4 @@ A big thanks to everyone involved in fixing and reporting those bugs! For a complete list of changes, please refer to the [Changelog v4.0.2](https://community.openproject.org/versions/532) or to -[Github](https://github.com/opf/openproject/tree/v4.0.2). +[GitHub](https://github.com/opf/openproject/tree/v4.0.2). diff --git a/docs/release-notes/8/8-0-2/README.md b/docs/release-notes/8/8-0-2/README.md index ee9d09ba74b6..bb055bfa229c 100644 --- a/docs/release-notes/8/8-0-2/README.md +++ b/docs/release-notes/8/8-0-2/README.md @@ -45,7 +45,7 @@ newest version. #### Contributions -Thanks to Github users @storm2513 and @akasparas for providing bugfixes +Thanks to GitHub users @storm2513 and @akasparas for providing bugfixes as pull requests [on our GitHub project](https://github.com/opf/openproject). A big thanks to community members for reporting bugs and helping us identifying and providing diff --git a/docs/release-notes/README.md b/docs/release-notes/README.md index a29a06e2bab0..71de0680044e 100644 --- a/docs/release-notes/README.md +++ b/docs/release-notes/README.md @@ -14,6 +14,13 @@ Stay up to date and get an overview of the new features included in the releases +## 13.4.1 + +Release date: 2024-03-26 + +[Release Notes](13-4-1/) + + ## 13.4.0 Release date: 2024-03-20 diff --git a/docs/security-and-privacy/processing-of-personal-data/README.md b/docs/security-and-privacy/processing-of-personal-data/README.md index e56cc6be77b9..b361b802270e 100644 --- a/docs/security-and-privacy/processing-of-personal-data/README.md +++ b/docs/security-and-privacy/processing-of-personal-data/README.md @@ -580,7 +580,7 @@ flowchart LR subgraph openproject[OpenProject] direction TB - opgithubintegration[Github integration] --- workpackagesmodule[Work packages module] + opgithubintegration[GitHub integration] --- workpackagesmodule[Work packages module] end @@ -635,7 +635,7 @@ flowchart LR #### Purpose - Connect merge requests in GitLab with work packages in OpenProject. -- Connect issues in GitLab with work packages in OpenPrject. +- Connect issues in GitLab with work packages in OpenProject. - Show the status of merge requests in related work packages. #### Processed data diff --git a/docs/system-admin-guide/attachments/openproject_system_adminstration_attachment_settings.png b/docs/system-admin-guide/attachments/openproject_system_adminstration_attachment_settings.png index 9700924b171e..b59d032de6fe 100644 Binary files a/docs/system-admin-guide/attachments/openproject_system_adminstration_attachment_settings.png and b/docs/system-admin-guide/attachments/openproject_system_adminstration_attachment_settings.png differ diff --git a/docs/system-admin-guide/attachments/openproject_system_adminstration_attachments.png b/docs/system-admin-guide/attachments/openproject_system_adminstration_attachments.png index b976b79b392d..87eb08724f38 100644 Binary files a/docs/system-admin-guide/attachments/openproject_system_adminstration_attachments.png and b/docs/system-admin-guide/attachments/openproject_system_adminstration_attachments.png differ diff --git a/docs/system-admin-guide/attachments/virus-scanning/image-20240220-iedi.png b/docs/system-admin-guide/attachments/virus-scanning/image-20240220-iedi.png deleted file mode 100644 index 42f26c07fecc..000000000000 Binary files a/docs/system-admin-guide/attachments/virus-scanning/image-20240220-iedi.png and /dev/null differ diff --git a/docs/system-admin-guide/attachments/virus-scanning/openproject_system_settings_virus_scanning.png b/docs/system-admin-guide/attachments/virus-scanning/openproject_system_settings_virus_scanning.png index cee2c77825c2..ea4b533ad8bb 100644 Binary files a/docs/system-admin-guide/attachments/virus-scanning/openproject_system_settings_virus_scanning.png and b/docs/system-admin-guide/attachments/virus-scanning/openproject_system_settings_virus_scanning.png differ diff --git a/docs/system-admin-guide/design/Sys-admin-design-favicon-1579613889024.png b/docs/system-admin-guide/design/Sys-admin-design-favicon-1579613889024.png deleted file mode 100644 index 43972eabc841..000000000000 Binary files a/docs/system-admin-guide/design/Sys-admin-design-favicon-1579613889024.png and /dev/null differ diff --git a/docs/system-admin-guide/design/Sys-admin-design-favicon.png b/docs/system-admin-guide/design/Sys-admin-design-favicon.png index 25d42aa599a9..e0c4d6516e8a 100644 Binary files a/docs/system-admin-guide/design/Sys-admin-design-favicon.png and b/docs/system-admin-guide/design/Sys-admin-design-favicon.png differ diff --git a/docs/system-admin-guide/design/Sys-admin-design-upload-logo.png b/docs/system-admin-guide/design/Sys-admin-design-upload-logo.png index b577b6716eea..deee0aefa7ea 100644 Binary files a/docs/system-admin-guide/design/Sys-admin-design-upload-logo.png and b/docs/system-admin-guide/design/Sys-admin-design-upload-logo.png differ diff --git a/docs/system-admin-guide/design/System-admin-guide_color-theme.png b/docs/system-admin-guide/design/System-admin-guide_color-theme.png index ebe6e007c68e..6e0befe01cda 100644 Binary files a/docs/system-admin-guide/design/System-admin-guide_color-theme.png and b/docs/system-admin-guide/design/System-admin-guide_color-theme.png differ diff --git a/docs/system-admin-guide/design/System-admin-guide_design.png b/docs/system-admin-guide/design/System-admin-guide_design.png deleted file mode 100644 index 9557c4712363..000000000000 Binary files a/docs/system-admin-guide/design/System-admin-guide_design.png and /dev/null differ diff --git a/docs/system-admin-guide/design/image-20200121143402479.png b/docs/system-admin-guide/design/image-20200121143402479.png deleted file mode 100644 index 06225d6018fc..000000000000 Binary files a/docs/system-admin-guide/design/image-20200121143402479.png and /dev/null differ diff --git a/docs/system-admin-guide/design/image-20200211140615090.png b/docs/system-admin-guide/design/image-20200211140615090.png deleted file mode 100644 index f80c7c93cdc9..000000000000 Binary files a/docs/system-admin-guide/design/image-20200211140615090.png and /dev/null differ diff --git a/docs/system-admin-guide/design/openproject_system_guide_design.png b/docs/system-admin-guide/design/openproject_system_guide_design.png index 1fa57a9a2b7d..d5a8fc355f66 100644 Binary files a/docs/system-admin-guide/design/openproject_system_guide_design.png and b/docs/system-admin-guide/design/openproject_system_guide_design.png differ diff --git a/docs/system-admin-guide/design/openproject_system_guide_design_advanced_settings.png b/docs/system-admin-guide/design/openproject_system_guide_design_advanced_settings.png index 0e661eb519a2..ba6efe9d90d8 100644 Binary files a/docs/system-admin-guide/design/openproject_system_guide_design_advanced_settings.png and b/docs/system-admin-guide/design/openproject_system_guide_design_advanced_settings.png differ diff --git a/docs/system-admin-guide/design/system_admin_logo_updated.png b/docs/system-admin-guide/design/system_admin_logo_updated.png index b0d1f1468357..cb4768e1067a 100644 Binary files a/docs/system-admin-guide/design/system_admin_logo_updated.png and b/docs/system-admin-guide/design/system_admin_logo_updated.png differ diff --git a/docs/system-admin-guide/file-storages/README.md b/docs/system-admin-guide/file-storages/README.md index 5c36009d83d9..da8a50c8a7d6 100644 --- a/docs/system-admin-guide/file-storages/README.md +++ b/docs/system-admin-guide/file-storages/README.md @@ -3,7 +3,7 @@ sidebar_navigation: title: File storages priority: 830 description: File storages in OpenProject. -keywords: file storages, Nextcloud setup, Nextcloud integration, OneDrive setup, Sharepoint setup, OneDrive, Sharepoint +keywords: file storages, Nextcloud setup, Nextcloud integration, OneDrive setup, SharePoint setup, OneDrive, SharePoint --- # File storages diff --git a/docs/system-admin-guide/integrations/README.md b/docs/system-admin-guide/integrations/README.md index d4b645ad04b4..1285fe09def6 100644 --- a/docs/system-admin-guide/integrations/README.md +++ b/docs/system-admin-guide/integrations/README.md @@ -46,7 +46,7 @@ OpenProject offers integration with Nextcloud for file storage and collaboration ## OneDrive/SharePoint (Enterprise add-on) -OpenProject offers an integration with OneDrive/Sharepoint for file storage and collaboration. You can find more information about [setting up the integration with OneDrive/SharePoint](./one-drive) and [using the integration](../../user-guide/file-management/one-drive-integration/). +OpenProject offers an integration with OneDrive/SharePoint for file storage and collaboration. You can find more information about [setting up the integration with OneDrive/SharePoint](./one-drive) and [using the integration](../../user-guide/file-management/one-drive-integration/). > **Note**: OneDrive/SharePoint integration is an Enterprise add-on and can only be used with [Enterprise cloud](../../enterprise-guide/enterprise-cloud-guide/) or [Enterprise on-premises](../../enterprise-guide/enterprise-on-premises-guide/). An upgrade from the free Community edition is easy and helps support OpenProject. diff --git a/docs/system-admin-guide/integrations/github-integration/README.md b/docs/system-admin-guide/integrations/github-integration/README.md index fff564826bc6..8db04cc83cb0 100644 --- a/docs/system-admin-guide/integrations/github-integration/README.md +++ b/docs/system-admin-guide/integrations/github-integration/README.md @@ -28,7 +28,7 @@ Pull request activities will also show up in the Activity tab when the pull requ * merged * closed -![Github comments on work package](workpackage-github-comments.png) +![GitHub comments on work package](workpackage-github-comments.png) ## Create a pull request diff --git a/docs/system-admin-guide/integrations/gitlab-integration/README.md b/docs/system-admin-guide/integrations/gitlab-integration/README.md index de18ed91a139..7675e5752d8a 100644 --- a/docs/system-admin-guide/integrations/gitlab-integration/README.md +++ b/docs/system-admin-guide/integrations/gitlab-integration/README.md @@ -13,7 +13,7 @@ OpenProject offers an integration with GitLab merge requests to link software de OpenProject work packages will directly display information from GitLab in a separate tab. -![Gitlab tab in an OpenProject work package](gitlab-tab.png) +![GitLab tab in an OpenProject work package](gitlab-tab.png) The tab shows all merge requests (MR) linked to a work package with the corresponding status (e.g. 'Ready' or 'Merged') as well as the state (e.g. 'success' or 'queued') of the GitLab actions configured to run for a MR. MRs and work packages are in an n:m relationship, so a work package can be linked to multiple merge requests and a merge request can be linked to multiple work packages. @@ -58,6 +58,8 @@ Finally you will need to activate the GitLab module under [Project settings](../ Seeing the **GitLab** tab requires **Show GitLab content** permission, so this permission needs to be granted to all roles in a project allowed to see the tab. +![Grant permission to show GitLab content to user roles in OpenProject](openproject-system-guide-gitlab-integration-gitlab-content-role-permission.png) + ### GitLab In GitLab you have to set up a webhook in each repository to be integrated with OpenProject. For that navigate to **Settings** -> **Webhooks** and click on **Add new webhook**. @@ -100,7 +102,7 @@ You can now publish your branch (you can also do this later, after making the ch With the branch opened, you can start the actual development work using your preferred tool to alter your codebase. -![Gitlab changes in a merge request changes](gitlab-changes.png) +![GitLab changes in a merge request changes](gitlab-changes.png) Once you are satisfied with the changes you can create a commit. Within the 'Git snippets' menu, OpenProject suggests a commit message for you based on the title and the URL of the work package. diff --git a/docs/system-admin-guide/integrations/gitlab-integration/gitlab-changes.png b/docs/system-admin-guide/integrations/gitlab-integration/gitlab-changes.png index 8864c8dba762..efdd00b8cb1e 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/gitlab-changes.png and b/docs/system-admin-guide/integrations/gitlab-integration/gitlab-changes.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/gitlab-tab.png b/docs/system-admin-guide/integrations/gitlab-integration/gitlab-tab.png index b811186ef0a0..46f459406766 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/gitlab-tab.png and b/docs/system-admin-guide/integrations/gitlab-integration/gitlab-tab.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-activity-tab.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-activity-tab.png index 1681730da097..529031251afe 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-activity-tab.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-activity-tab.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-branch-name.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-branch-name.png index c65d82f32f31..681373ce2d9c 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-branch-name.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-branch-name.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-commit-message-in-client.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-commit-message-in-client.png index 9bac3fa1390a..f52498d3d488 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-commit-message-in-client.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-commit-message-in-client.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-create-branch.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-create-branch.png index 462dc662780e..f43910d175f7 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-create-branch.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-create-branch.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-create-mr-detail.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-create-mr-detail.png index 5d3f49e00246..afb68a3d78cd 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-create-mr-detail.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-create-mr-detail.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-create-mr.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-create-mr.png index f04bf02f8423..4191b8d03c77 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-create-mr.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-create-mr.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-git-snippets-commit-message.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-git-snippets-commit-message.png index 45eb212ce119..ffd2762e3842 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-git-snippets-commit-message.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-git-snippets-commit-message.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-git-snippets.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-git-snippets.png index d78823fb8f9d..2337bf9395fa 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-git-snippets.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-git-snippets.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-actions.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-actions.png index e4e51696156b..300a3b5b4b39 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-actions.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-actions.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-content-role-permission.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-content-role-permission.png new file mode 100644 index 000000000000..21d1f0c90d69 Binary files /dev/null and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-content-role-permission.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-issue.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-issue.png index 6ddd7402d8ad..b1dfdeba59ed 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-issue.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-issue.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-webhook.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-webhook.png index a4f751e00a68..df924dc1b4b1 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-webhook.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-gitlab-webhook.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-mr-opened.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-mr-opened.png index 166cc2070e4c..0e12505ea012 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-mr-opened.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-mr-opened.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-mr-status.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-mr-status.png index c5d95b69a498..f3b2f47d80c1 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-mr-status.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-mr-status.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-new-issues.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-new-issues.png index b8377598f355..738f4be2aedf 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-new-issues.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-new-issues.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-no-issues.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-no-issues.png index b822b09415b0..fdb5b565babc 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-no-issues.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-no-issues.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-project-member.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-project-member.png index 4314b43eec37..3fac0b7a57e7 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-project-member.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-project-member.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-project-modules.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-project-modules.png index ed4b6aed38ad..0a63fc389e6f 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-project-modules.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-project-modules.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-publish-branch.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-publish-branch.png index 36326daaa118..d345eed58812 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-publish-branch.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-publish-branch.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-push-activity.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-push-activity.png index b7cb87b01cdb..662893a605d6 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-push-activity.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-push-activity.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-role.png b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-role.png index 5228926ea92e..3f2035d8279c 100644 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-role.png and b/docs/system-admin-guide/integrations/gitlab-integration/openproject-system-guide-gitlab-integration-role.png differ diff --git a/docs/system-admin-guide/integrations/gitlab-integration/workpackage-github-comments.png b/docs/system-admin-guide/integrations/gitlab-integration/workpackage-github-comments.png deleted file mode 100644 index 833b52931ae6..000000000000 Binary files a/docs/system-admin-guide/integrations/gitlab-integration/workpackage-github-comments.png and /dev/null differ diff --git a/docs/system-admin-guide/integrations/one-drive/openproject_system_guide_new_onedrive_storage_details.png b/docs/system-admin-guide/integrations/one-drive/openproject_system_guide_new_onedrive_storage_details.png deleted file mode 100644 index e7406bf8eb79..000000000000 Binary files a/docs/system-admin-guide/integrations/one-drive/openproject_system_guide_new_onedrive_storage_details.png and /dev/null differ diff --git a/docs/system-admin-guide/integrations/one-drive/openproject_system_guide_new_onedrive_storage_details_new.png b/docs/system-admin-guide/integrations/one-drive/openproject_system_guide_new_onedrive_storage_details_new.png index 9bcd1e54830f..638e0d98fcf9 100644 Binary files a/docs/system-admin-guide/integrations/one-drive/openproject_system_guide_new_onedrive_storage_details_new.png and b/docs/system-admin-guide/integrations/one-drive/openproject_system_guide_new_onedrive_storage_details_new.png differ diff --git a/docs/user-guide/README.md b/docs/user-guide/README.md index ecc390732dc7..05b73606925b 100644 --- a/docs/user-guide/README.md +++ b/docs/user-guide/README.md @@ -41,6 +41,7 @@ Please choose the module or feature you want to learn more about. | [Forums](forums) | How to manage forums to discuss and comment on topics. | | [Gantt chart](gantt-chart) | How to create and manage a project plan in a Gantt chart. | | [GitHub](../system-admin-guide/integrations/github-integration/) | How to manage the GitHub integration. | +| [GitLab](../system-admin-guide/integrations/gitlab-integration/) | How to manage the GitLab integration. | | [Meetings](meetings) | How to manage meetings to create and share meeting agenda and meeting minutes. | | [Members](members) | How to manage Members in a project. | | [News](news) | How to create and manage News for your projects. | @@ -53,3 +54,4 @@ Please choose the module or feature you want to learn more about. | [Time and costs](time-and-costs) | How to track time and costs in OpenProject and report spent time and costs. | | [Wiki](wiki) | How to create and manage a wiki to collaboratively document and share information. | | [Work packages](work-packages) | How to manage your work in a project. | + diff --git a/docs/user-guide/file-management/README.md b/docs/user-guide/file-management/README.md index 9283527bd02c..e881b5bce977 100644 --- a/docs/user-guide/file-management/README.md +++ b/docs/user-guide/file-management/README.md @@ -12,7 +12,7 @@ keywords: files, attachment, Nextcloud, OneDrive, SharePoint |--------------------------------------------------------------------------------------|---------------------------------------------------------------------------| | [Manual upload](#manual-upload) | How to manually upload files to work packages in OpenProject. | | [Nextcloud integration](#nextcloud-integration) | How to manage files using Nextcloud integration in OpenProject. | -| [OneDrive/SharePoint integration](#onedrivesharepoint-integration-enterprise-add-on) | How to manage files using OneDrive/Sharepoint integration in OpenProject. | +| [OneDrive/SharePoint integration](#onedrivesharepoint-integration-enterprise-add-on) | How to manage files using OneDrive/SharePoint integration in OpenProject. | | [File management FAQs](./file-management-faq) | Frequently asked questions on file management in OpenProject. | There are several ways of adding or linking files to work packages in OpenProject. You can manually attach files directly to work packages or use one of the integrations with file management systems. diff --git a/docs/user-guide/file-management/nextcloud-integration/nc-new-work-package-created.png b/docs/user-guide/file-management/nextcloud-integration/nc-new-work-package-created.png index 062391e426ef..fd34461acbe0 100644 Binary files a/docs/user-guide/file-management/nextcloud-integration/nc-new-work-package-created.png and b/docs/user-guide/file-management/nextcloud-integration/nc-new-work-package-created.png differ diff --git a/docs/user-guide/file-management/nextcloud-integration/nc_create_new_wp.png b/docs/user-guide/file-management/nextcloud-integration/nc_create_new_wp.png index a189c134f9a2..d6488081dc00 100644 Binary files a/docs/user-guide/file-management/nextcloud-integration/nc_create_new_wp.png and b/docs/user-guide/file-management/nextcloud-integration/nc_create_new_wp.png differ diff --git a/docs/user-guide/file-management/nextcloud-integration/nc_select_multiple_files.png b/docs/user-guide/file-management/nextcloud-integration/nc_select_multiple_files.png index f17bedc2f6d2..c48dce2e9953 100644 Binary files a/docs/user-guide/file-management/nextcloud-integration/nc_select_multiple_files.png and b/docs/user-guide/file-management/nextcloud-integration/nc_select_multiple_files.png differ diff --git a/docs/user-guide/file-management/nextcloud-integration/nc_select_wp_to_link.png b/docs/user-guide/file-management/nextcloud-integration/nc_select_wp_to_link.png index d388e701ee9c..9201ad47bb23 100644 Binary files a/docs/user-guide/file-management/nextcloud-integration/nc_select_wp_to_link.png and b/docs/user-guide/file-management/nextcloud-integration/nc_select_wp_to_link.png differ diff --git a/docs/user-guide/file-management/one-drive-integration/README.md b/docs/user-guide/file-management/one-drive-integration/README.md index 9b29dce4242e..8344e260a66b 100644 --- a/docs/user-guide/file-management/one-drive-integration/README.md +++ b/docs/user-guide/file-management/one-drive-integration/README.md @@ -33,7 +33,7 @@ To begin using this integration, you will need to first connect your OpenProject 1. Select any work package. Go to the **Files tab** and, within the correct file storage section, click on **Storage login** button. - ![Login to Sharepoint storage from an OpenProject work package](openproject_onedrive_login_to_storage.png) + ![Login to SharePoint storage from an OpenProject work package](openproject_onedrive_login_to_storage.png) 2. You will see a Microsoft login prompt asking you to log in. Enter your credentials and log in. 3. Once you have logged in, you will automatically return to the work package in OpenProject and see that you can now start uploading and linking files. @@ -71,7 +71,7 @@ Once you have selected or dropped the files you would like to upload, you will n > **Info**: The default location that opens in the file picker is the file root of the configured OneDrive/SharePoint drive. -![Selection a Sharepoint location to upload a file from OpenProject](openproject_onedrive_select_location.png) +![Selection a SharePoint location to upload a file from OpenProject](openproject_onedrive_select_location.png) You can click on folders you see to navigate to them. Helpful breadcrumbs show you where you are in the folder hierarchy. @@ -83,7 +83,7 @@ To save the files you uploaded to the currently open folder, click on the **Choo The selected file is uploaded to your OneDrive/SharePoint instance and linked to the current work package. It appears under the name of the file storage. -![File successfully uploaded to Sharepoint storage](openproject_onedrive_file_uploaded.png) +![File successfully uploaded to SharePoint storage](openproject_onedrive_file_uploaded.png) If a file has been deleted on the OneDrive/SharePoint file storage it will still be displayed under the **Files** tab. However it will not be selectable. If you hover over a deleted file you will see the message indicating that the file could not be found. @@ -95,7 +95,7 @@ If a file has been deleted on the OneDrive/SharePoint file storage it will still If you wish to unlink any linked file or folder, hover it in the list of linked files and click on the **Unlink** icon. -![Unlink a linked Sharepoint file from an OpenProject work package](openproject_onedrive_download_file.png) +![Unlink a linked SharePoint file from an OpenProject work package](openproject_onedrive_download_file.png) Respectively in order to download a file, click on the **Download icon** in the context menu of the file link in the list of the linked files. diff --git a/docs/user-guide/gantt-chart/activate-gantt.gif b/docs/user-guide/gantt-chart/activate-gantt.gif deleted file mode 100644 index f7fb2ff6de7d..000000000000 Binary files a/docs/user-guide/gantt-chart/activate-gantt.gif and /dev/null differ diff --git a/docs/user-guide/gantt-chart/collapse-all-expand-all.png b/docs/user-guide/gantt-chart/collapse-all-expand-all.png deleted file mode 100644 index 1503ea060e78..000000000000 Binary files a/docs/user-guide/gantt-chart/collapse-all-expand-all.png and /dev/null differ diff --git a/docs/user-guide/gantt-chart/dependencies-gantt-chart-1566556144225.gif b/docs/user-guide/gantt-chart/dependencies-gantt-chart-1566556144225.gif deleted file mode 100644 index 4cfedbe4a203..000000000000 Binary files a/docs/user-guide/gantt-chart/dependencies-gantt-chart-1566556144225.gif and /dev/null differ diff --git a/docs/user-guide/gantt-chart/image-20201211020748715.png b/docs/user-guide/gantt-chart/image-20201211020748715.png deleted file mode 100644 index 1df2323bbb2d..000000000000 Binary files a/docs/user-guide/gantt-chart/image-20201211020748715.png and /dev/null differ diff --git a/docs/user-guide/gantt-chart/image-20201211131511543.png b/docs/user-guide/gantt-chart/image-20201211131511543.png deleted file mode 100644 index cf520a70c35b..000000000000 Binary files a/docs/user-guide/gantt-chart/image-20201211131511543.png and /dev/null differ diff --git a/docs/user-guide/gantt-chart/openproject-user-guide-configure-gantt-chart.gif b/docs/user-guide/gantt-chart/openproject-user-guide-configure-gantt-chart.gif index db5c44f302fd..52e101ff55a6 100644 Binary files a/docs/user-guide/gantt-chart/openproject-user-guide-configure-gantt-chart.gif and b/docs/user-guide/gantt-chart/openproject-user-guide-configure-gantt-chart.gif differ diff --git a/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-auto-zoom.png b/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-auto-zoom.png index ee499cca076d..9da602392d06 100644 Binary files a/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-auto-zoom.png and b/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-auto-zoom.png differ diff --git a/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-collapse-all.png b/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-collapse-all.png index 4b623faf9385..a218c8a38254 100644 Binary files a/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-collapse-all.png and b/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-collapse-all.png differ diff --git a/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-filters.png b/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-filters.png index f9ecfeb53596..14df5d466014 100644 Binary files a/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-filters.png and b/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-filters.png differ diff --git a/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-views.png b/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-views.png index d9de4df0a85f..e6617ee79d79 100644 Binary files a/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-views.png and b/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-views.png differ diff --git a/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-zen-mode.png b/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-zen-mode.png index 50ac0cbdf8d2..d4f2209c0735 100644 Binary files a/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-zen-mode.png and b/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-zen-mode.png differ diff --git a/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-zoom.png b/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-zoom.png index 8419fbf6fd25..b6e2991edbc1 100644 Binary files a/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-zoom.png and b/docs/user-guide/gantt-chart/openproject-user-guide-gantt-charts-zoom.png differ diff --git a/docs/user-guide/gantt-chart/openproject-user-guide-select-gantt-charts-global.png b/docs/user-guide/gantt-chart/openproject-user-guide-select-gantt-charts-global.png index 3800c47c724a..d24e3625f174 100644 Binary files a/docs/user-guide/gantt-chart/openproject-user-guide-select-gantt-charts-global.png and b/docs/user-guide/gantt-chart/openproject-user-guide-select-gantt-charts-global.png differ diff --git a/docs/user-guide/gantt-chart/openproject-user-guide-select-gantt-charts.png b/docs/user-guide/gantt-chart/openproject-user-guide-select-gantt-charts.png index f8706ea066eb..0d13b508bbeb 100644 Binary files a/docs/user-guide/gantt-chart/openproject-user-guide-select-gantt-charts.png and b/docs/user-guide/gantt-chart/openproject-user-guide-select-gantt-charts.png differ diff --git a/docs/user-guide/home/global-modules/open_project_user_guide_global_modules_menu.png b/docs/user-guide/home/global-modules/open_project_user_guide_global_modules_menu.png index 67359ff634b1..acdf764350e2 100644 Binary files a/docs/user-guide/home/global-modules/open_project_user_guide_global_modules_menu.png and b/docs/user-guide/home/global-modules/open_project_user_guide_global_modules_menu.png differ diff --git a/docs/user-guide/home/global-modules/open_project_user_guide_global_modules_menu_grid_icon.png b/docs/user-guide/home/global-modules/open_project_user_guide_global_modules_menu_grid_icon.png index 6b84f69164dc..917c54463bd4 100644 Binary files a/docs/user-guide/home/global-modules/open_project_user_guide_global_modules_menu_grid_icon.png and b/docs/user-guide/home/global-modules/open_project_user_guide_global_modules_menu_grid_icon.png differ diff --git a/docs/user-guide/home/global-modules/openproject_global_modules_boards.png b/docs/user-guide/home/global-modules/openproject_global_modules_boards.png index 224ef34f1153..9aa013f6258c 100644 Binary files a/docs/user-guide/home/global-modules/openproject_global_modules_boards.png and b/docs/user-guide/home/global-modules/openproject_global_modules_boards.png differ diff --git a/docs/user-guide/home/global-modules/openproject_global_modules_calendars.png b/docs/user-guide/home/global-modules/openproject_global_modules_calendars.png index 413c8b7c868f..f2241a4086db 100644 Binary files a/docs/user-guide/home/global-modules/openproject_global_modules_calendars.png and b/docs/user-guide/home/global-modules/openproject_global_modules_calendars.png differ diff --git a/docs/user-guide/home/global-modules/openproject_global_modules_gantt_charts.png b/docs/user-guide/home/global-modules/openproject_global_modules_gantt_charts.png index 310caf1e652a..2f8ea9291e52 100644 Binary files a/docs/user-guide/home/global-modules/openproject_global_modules_gantt_charts.png and b/docs/user-guide/home/global-modules/openproject_global_modules_gantt_charts.png differ diff --git a/docs/user-guide/home/global-modules/openproject_global_modules_myprojects_filter.png b/docs/user-guide/home/global-modules/openproject_global_modules_myprojects_filter.png deleted file mode 100644 index 5314ccf0b749..000000000000 Binary files a/docs/user-guide/home/global-modules/openproject_global_modules_myprojects_filter.png and /dev/null differ diff --git a/docs/user-guide/home/global-modules/openproject_global_modules_news.png b/docs/user-guide/home/global-modules/openproject_global_modules_news.png index c94eecab8fbc..11a381d68e0f 100644 Binary files a/docs/user-guide/home/global-modules/openproject_global_modules_news.png and b/docs/user-guide/home/global-modules/openproject_global_modules_news.png differ diff --git a/docs/user-guide/home/global-modules/openproject_global_modules_projects.png b/docs/user-guide/home/global-modules/openproject_global_modules_projects.png index 453183be86f5..4e395fb51f78 100644 Binary files a/docs/user-guide/home/global-modules/openproject_global_modules_projects.png and b/docs/user-guide/home/global-modules/openproject_global_modules_projects.png differ diff --git a/docs/user-guide/home/global-modules/openproject_global_modules_team_planner.png b/docs/user-guide/home/global-modules/openproject_global_modules_team_planner.png index 7874b02d1b33..325b08e038b1 100644 Binary files a/docs/user-guide/home/global-modules/openproject_global_modules_team_planner.png and b/docs/user-guide/home/global-modules/openproject_global_modules_team_planner.png differ diff --git a/docs/user-guide/home/openproject_user_guide_home_page.png b/docs/user-guide/home/openproject_user_guide_home_page.png index 000650c687da..a8da1232609e 100644 Binary files a/docs/user-guide/home/openproject_user_guide_home_page.png and b/docs/user-guide/home/openproject_user_guide_home_page.png differ diff --git a/docs/user-guide/meetings/classic-meetings/copy-meeting.png b/docs/user-guide/meetings/classic-meetings/copy-meeting.png index 210c72a613d0..4c0c2432faa4 100644 Binary files a/docs/user-guide/meetings/classic-meetings/copy-meeting.png and b/docs/user-guide/meetings/classic-meetings/copy-meeting.png differ diff --git a/docs/user-guide/meetings/classic-meetings/create-new-classic-meeting.png b/docs/user-guide/meetings/classic-meetings/create-new-classic-meeting.png index afc12ea56009..60f43708da40 100644 Binary files a/docs/user-guide/meetings/classic-meetings/create-new-classic-meeting.png and b/docs/user-guide/meetings/classic-meetings/create-new-classic-meeting.png differ diff --git a/docs/user-guide/meetings/classic-meetings/delete-meeting.png b/docs/user-guide/meetings/classic-meetings/delete-meeting.png index 28875a5a8334..d4806a22dead 100644 Binary files a/docs/user-guide/meetings/classic-meetings/delete-meeting.png and b/docs/user-guide/meetings/classic-meetings/delete-meeting.png differ diff --git a/docs/user-guide/meetings/classic-meetings/download-a-meeting.png b/docs/user-guide/meetings/classic-meetings/download-a-meeting.png index 585a7417d634..a35f86043491 100644 Binary files a/docs/user-guide/meetings/classic-meetings/download-a-meeting.png and b/docs/user-guide/meetings/classic-meetings/download-a-meeting.png differ diff --git a/docs/user-guide/meetings/classic-meetings/edit-meeting-agenda.png b/docs/user-guide/meetings/classic-meetings/edit-meeting-agenda.png index 8985994db0a8..b16c132d2f07 100644 Binary files a/docs/user-guide/meetings/classic-meetings/edit-meeting-agenda.png and b/docs/user-guide/meetings/classic-meetings/edit-meeting-agenda.png differ diff --git a/docs/user-guide/meetings/classic-meetings/edit-meeting.png b/docs/user-guide/meetings/classic-meetings/edit-meeting.png index a337bbe740f6..94b50695f163 100644 Binary files a/docs/user-guide/meetings/classic-meetings/edit-meeting.png and b/docs/user-guide/meetings/classic-meetings/edit-meeting.png differ diff --git a/docs/user-guide/meetings/classic-meetings/edit-minutes.png b/docs/user-guide/meetings/classic-meetings/edit-minutes.png index 34cfc122a7fa..dafb27a6b89c 100644 Binary files a/docs/user-guide/meetings/classic-meetings/edit-minutes.png and b/docs/user-guide/meetings/classic-meetings/edit-minutes.png differ diff --git a/docs/user-guide/meetings/classic-meetings/meeting-participants.png b/docs/user-guide/meetings/classic-meetings/meeting-participants.png index 24832bd7a1d1..59eaaf0f77c4 100644 Binary files a/docs/user-guide/meetings/classic-meetings/meeting-participants.png and b/docs/user-guide/meetings/classic-meetings/meeting-participants.png differ diff --git a/docs/user-guide/meetings/classic-meetings/meetings.png b/docs/user-guide/meetings/classic-meetings/meetings.png index eae8071876cc..797bef102d9d 100644 Binary files a/docs/user-guide/meetings/classic-meetings/meetings.png and b/docs/user-guide/meetings/classic-meetings/meetings.png differ diff --git a/docs/user-guide/meetings/classic-meetings/send-email-to-participants.png b/docs/user-guide/meetings/classic-meetings/send-email-to-participants.png index 1ee9736e329d..c853a095234b 100644 Binary files a/docs/user-guide/meetings/classic-meetings/send-email-to-participants.png and b/docs/user-guide/meetings/classic-meetings/send-email-to-participants.png differ diff --git a/docs/user-guide/meetings/dynamic-meetings/openproject_dynamic_meetings_copy_meeting.png b/docs/user-guide/meetings/dynamic-meetings/openproject_dynamic_meetings_copy_meeting.png index 5caa45d31422..20287abc5bce 100644 Binary files a/docs/user-guide/meetings/dynamic-meetings/openproject_dynamic_meetings_copy_meeting.png and b/docs/user-guide/meetings/dynamic-meetings/openproject_dynamic_meetings_copy_meeting.png differ diff --git a/docs/user-guide/meetings/dynamic-meetings/openproject_dynamic_meetings_copy_meeting_details.png b/docs/user-guide/meetings/dynamic-meetings/openproject_dynamic_meetings_copy_meeting_details.png index a7c2620e650f..48991f2d121b 100644 Binary files a/docs/user-guide/meetings/dynamic-meetings/openproject_dynamic_meetings_copy_meeting_details.png and b/docs/user-guide/meetings/dynamic-meetings/openproject_dynamic_meetings_copy_meeting_details.png differ diff --git a/docs/user-guide/meetings/dynamic-meetings/openproject_dynamic_meetings_delete_meeting.png b/docs/user-guide/meetings/dynamic-meetings/openproject_dynamic_meetings_delete_meeting.png index 4d8b64a91135..e9ee987262d3 100644 Binary files a/docs/user-guide/meetings/dynamic-meetings/openproject_dynamic_meetings_delete_meeting.png and b/docs/user-guide/meetings/dynamic-meetings/openproject_dynamic_meetings_delete_meeting.png differ diff --git a/docs/user-guide/meetings/dynamic-meetings/openproject_userguid_dynamic_meeting_edit_title.png b/docs/user-guide/meetings/dynamic-meetings/openproject_userguid_dynamic_meeting_edit_title.png index ad9ad398bf2c..469cd761baa6 100644 Binary files a/docs/user-guide/meetings/dynamic-meetings/openproject_userguid_dynamic_meeting_edit_title.png and b/docs/user-guide/meetings/dynamic-meetings/openproject_userguid_dynamic_meeting_edit_title.png differ diff --git a/docs/user-guide/projects/delete-a-project.png b/docs/user-guide/projects/delete-a-project.png index ba6a37d14f34..0f93a047fb5c 100644 Binary files a/docs/user-guide/projects/delete-a-project.png and b/docs/user-guide/projects/delete-a-project.png differ diff --git a/docs/user-guide/projects/new-subproject-project-list.png b/docs/user-guide/projects/new-subproject-project-list.png deleted file mode 100644 index aa02969491a0..000000000000 Binary files a/docs/user-guide/projects/new-subproject-project-list.png and /dev/null differ diff --git a/docs/user-guide/projects/project-information-copy-project.png b/docs/user-guide/projects/project-information-copy-project.png index f7e0b1b60bd1..8e0854525fa2 100644 Binary files a/docs/user-guide/projects/project-information-copy-project.png and b/docs/user-guide/projects/project-information-copy-project.png differ diff --git a/docs/user-guide/projects/project-list-filter.png b/docs/user-guide/projects/project-list-filter.png index 816ec641625b..3f782e95d2c5 100644 Binary files a/docs/user-guide/projects/project-list-filter.png and b/docs/user-guide/projects/project-list-filter.png differ diff --git a/docs/user-guide/projects/project-lists/Filter-projects-list.png b/docs/user-guide/projects/project-lists/Filter-projects-list.png deleted file mode 100644 index 10151c4d2ed3..000000000000 Binary files a/docs/user-guide/projects/project-lists/Filter-projects-list.png and /dev/null differ diff --git a/docs/user-guide/projects/project-lists/Name-private-projects-filter.png b/docs/user-guide/projects/project-lists/Name-private-projects-filter.png index 6e3e89e4479c..0b228bf09c86 100644 Binary files a/docs/user-guide/projects/project-lists/Name-private-projects-filter.png and b/docs/user-guide/projects/project-lists/Name-private-projects-filter.png differ diff --git a/docs/user-guide/projects/project-lists/Project-list-button.png b/docs/user-guide/projects/project-lists/Project-list-button.png index 120e2c05128b..0c285f387e0c 100644 Binary files a/docs/user-guide/projects/project-lists/Project-list-button.png and b/docs/user-guide/projects/project-lists/Project-list-button.png differ diff --git a/docs/user-guide/projects/project-lists/activity-global-menu.png b/docs/user-guide/projects/project-lists/activity-global-menu.png index 8bbec85ab6a0..cb5e36fae9ee 100644 Binary files a/docs/user-guide/projects/project-lists/activity-global-menu.png and b/docs/user-guide/projects/project-lists/activity-global-menu.png differ diff --git a/docs/user-guide/projects/project-lists/actvity-global-filter.png b/docs/user-guide/projects/project-lists/actvity-global-filter.png index acec7c885314..78fa94d6291e 100644 Binary files a/docs/user-guide/projects/project-lists/actvity-global-filter.png and b/docs/user-guide/projects/project-lists/actvity-global-filter.png differ diff --git a/docs/user-guide/projects/project-lists/arrow-project-description.png b/docs/user-guide/projects/project-lists/arrow-project-description.png deleted file mode 100644 index 8ab28ed52d19..000000000000 Binary files a/docs/user-guide/projects/project-lists/arrow-project-description.png and /dev/null differ diff --git a/docs/user-guide/projects/project-lists/configure-project-list.png b/docs/user-guide/projects/project-lists/configure-project-list.png deleted file mode 100644 index 4f4a6f2d41e5..000000000000 Binary files a/docs/user-guide/projects/project-lists/configure-project-list.png and /dev/null differ diff --git a/docs/user-guide/projects/project-lists/configure-view-form-project-list.png b/docs/user-guide/projects/project-lists/configure-view-form-project-list.png index 3240d3b13de2..4ecd9566bca4 100644 Binary files a/docs/user-guide/projects/project-lists/configure-view-form-project-list.png and b/docs/user-guide/projects/project-lists/configure-view-form-project-list.png differ diff --git a/docs/user-guide/projects/project-lists/configure-view-project-list.png b/docs/user-guide/projects/project-lists/configure-view-project-list.png index 8ffa1b67f883..5ae98e35a78e 100644 Binary files a/docs/user-guide/projects/project-lists/configure-view-project-list.png and b/docs/user-guide/projects/project-lists/configure-view-project-list.png differ diff --git a/docs/user-guide/projects/project-lists/display-all-workpackages.png b/docs/user-guide/projects/project-lists/display-all-workpackages.png index b7beb129d259..8c42a507e028 100644 Binary files a/docs/user-guide/projects/project-lists/display-all-workpackages.png and b/docs/user-guide/projects/project-lists/display-all-workpackages.png differ diff --git a/docs/user-guide/projects/project-lists/expand-link-project-description.png b/docs/user-guide/projects/project-lists/expand-link-project-description.png index e59f128607bd..f27246010edb 100644 Binary files a/docs/user-guide/projects/project-lists/expand-link-project-description.png and b/docs/user-guide/projects/project-lists/expand-link-project-description.png differ diff --git a/docs/user-guide/projects/project-lists/export-project-list-formats.png b/docs/user-guide/projects/project-lists/export-project-list-formats.png index 3163ac310963..4f244ce916a3 100644 Binary files a/docs/user-guide/projects/project-lists/export-project-list-formats.png and b/docs/user-guide/projects/project-lists/export-project-list-formats.png differ diff --git a/docs/user-guide/projects/project-lists/export-projects.png b/docs/user-guide/projects/project-lists/export-projects.png index 16349d1031c3..c0c677e9d448 100644 Binary files a/docs/user-guide/projects/project-lists/export-projects.png and b/docs/user-guide/projects/project-lists/export-projects.png differ diff --git a/docs/user-guide/projects/project-lists/navigation-bar-modules-3923134.png b/docs/user-guide/projects/project-lists/navigation-bar-modules-3923134.png deleted file mode 100644 index 2ff03580934e..000000000000 Binary files a/docs/user-guide/projects/project-lists/navigation-bar-modules-3923134.png and /dev/null differ diff --git a/docs/user-guide/projects/project-lists/navigation-bar-modules.png b/docs/user-guide/projects/project-lists/navigation-bar-modules.png index 57fd78f478a5..f9b5ee2803da 100644 Binary files a/docs/user-guide/projects/project-lists/navigation-bar-modules.png and b/docs/user-guide/projects/project-lists/navigation-bar-modules.png differ diff --git a/docs/user-guide/projects/project-lists/new-subproject-project-list.png b/docs/user-guide/projects/project-lists/new-subproject-project-list.png index b0c06a445ed9..c1073b77af99 100644 Binary files a/docs/user-guide/projects/project-lists/new-subproject-project-list.png and b/docs/user-guide/projects/project-lists/new-subproject-project-list.png differ diff --git a/docs/user-guide/projects/project-lists/overall-activity-button-3922893.png b/docs/user-guide/projects/project-lists/overall-activity-button-3922893.png deleted file mode 100644 index cb059ccf32f5..000000000000 Binary files a/docs/user-guide/projects/project-lists/overall-activity-button-3922893.png and /dev/null differ diff --git a/docs/user-guide/projects/project-lists/overall-activity-link.png b/docs/user-guide/projects/project-lists/overall-activity-link.png index e4c8660ac84b..68103544d329 100644 Binary files a/docs/user-guide/projects/project-lists/overall-activity-link.png and b/docs/user-guide/projects/project-lists/overall-activity-link.png differ diff --git a/docs/user-guide/projects/project-lists/overall-activity-meeting-filter.png b/docs/user-guide/projects/project-lists/overall-activity-meeting-filter.png deleted file mode 100644 index d18c70cd455f..000000000000 Binary files a/docs/user-guide/projects/project-lists/overall-activity-meeting-filter.png and /dev/null differ diff --git a/docs/user-guide/projects/project-lists/private-project-filter-delete.png b/docs/user-guide/projects/project-lists/private-project-filter-delete.png index 8763b6a4c66c..5b1cefbd20fd 100644 Binary files a/docs/user-guide/projects/project-lists/private-project-filter-delete.png and b/docs/user-guide/projects/project-lists/private-project-filter-delete.png differ diff --git a/docs/user-guide/projects/project-lists/private-project-filter-saved.png b/docs/user-guide/projects/project-lists/private-project-filter-saved.png index b4f949284f5e..15e319e7e77e 100644 Binary files a/docs/user-guide/projects/project-lists/private-project-filter-saved.png and b/docs/user-guide/projects/project-lists/private-project-filter-saved.png differ diff --git a/docs/user-guide/projects/project-lists/projects-list.png b/docs/user-guide/projects/project-lists/projects-list.png index b1d14b79350e..7cdbfc27e201 100644 Binary files a/docs/user-guide/projects/project-lists/projects-list.png and b/docs/user-guide/projects/project-lists/projects-list.png differ diff --git a/docs/user-guide/projects/project-lists/projects-lists-default-filters.png b/docs/user-guide/projects/project-lists/projects-lists-default-filters.png index 2410bc230453..cba9c9942f6e 100644 Binary files a/docs/user-guide/projects/project-lists/projects-lists-default-filters.png and b/docs/user-guide/projects/project-lists/projects-lists-default-filters.png differ diff --git a/docs/user-guide/projects/project-lists/save-button-filtered-view.png b/docs/user-guide/projects/project-lists/save-button-filtered-view.png index d796ab07e08d..40811989537c 100644 Binary files a/docs/user-guide/projects/project-lists/save-button-filtered-view.png and b/docs/user-guide/projects/project-lists/save-button-filtered-view.png differ diff --git a/docs/user-guide/projects/project-lists/view_all_projects_options.png b/docs/user-guide/projects/project-lists/view_all_projects_options.png index 5ed573792fa8..42982648ded4 100644 Binary files a/docs/user-guide/projects/project-lists/view_all_projects_options.png and b/docs/user-guide/projects/project-lists/view_all_projects_options.png differ diff --git a/docs/user-guide/projects/project-settigns-copy-project.png b/docs/user-guide/projects/project-settigns-copy-project.png index 5aebfc01053f..2f8d85fe6ca2 100644 Binary files a/docs/user-guide/projects/project-settigns-copy-project.png and b/docs/user-guide/projects/project-settigns-copy-project.png differ diff --git a/docs/user-guide/projects/project-settings-archive-project.png b/docs/user-guide/projects/project-settings-archive-project.png index f7322de982de..4a6037380830 100644 Binary files a/docs/user-guide/projects/project-settings-archive-project.png and b/docs/user-guide/projects/project-settings-archive-project.png differ diff --git a/docs/user-guide/projects/project-settings-copy-project-advanced-settings.png b/docs/user-guide/projects/project-settings-copy-project-advanced-settings.png index 08d631c46d0a..1b73a9f43e00 100644 Binary files a/docs/user-guide/projects/project-settings-copy-project-advanced-settings.png and b/docs/user-guide/projects/project-settings-copy-project-advanced-settings.png differ diff --git a/docs/user-guide/projects/project-settings-information-change-hierarchy.png b/docs/user-guide/projects/project-settings-information-change-hierarchy.png index 589d9765b4f1..99c411f6261d 100644 Binary files a/docs/user-guide/projects/project-settings-information-change-hierarchy.png and b/docs/user-guide/projects/project-settings-information-change-hierarchy.png differ diff --git a/docs/user-guide/projects/project-settings-information-copy-project-copy-options.png b/docs/user-guide/projects/project-settings-information-copy-project-copy-options.png deleted file mode 100644 index 8a58e027a654..000000000000 Binary files a/docs/user-guide/projects/project-settings-information-copy-project-copy-options.png and /dev/null differ diff --git a/docs/user-guide/projects/project-settings-subproject.png b/docs/user-guide/projects/project-settings-subproject.png index 99853c293f10..26a4b244ae85 100644 Binary files a/docs/user-guide/projects/project-settings-subproject.png and b/docs/user-guide/projects/project-settings-subproject.png differ diff --git a/docs/user-guide/projects/project-settings/file-storages/file-storages-oauth-nudge-nextcloud.png b/docs/user-guide/projects/project-settings/file-storages/file-storages-oauth-nudge-nextcloud.png index 80a6224cb596..f46a9aaaa19e 100644 Binary files a/docs/user-guide/projects/project-settings/file-storages/file-storages-oauth-nudge-nextcloud.png and b/docs/user-guide/projects/project-settings/file-storages/file-storages-oauth-nudge-nextcloud.png differ diff --git a/docs/user-guide/projects/project-settings/file-storages/onedrive-storage-add-folders-new.png b/docs/user-guide/projects/project-settings/file-storages/onedrive-storage-add-folders-new.png index b6389a000168..30af3f740147 100644 Binary files a/docs/user-guide/projects/project-settings/file-storages/onedrive-storage-add-folders-new.png and b/docs/user-guide/projects/project-settings/file-storages/onedrive-storage-add-folders-new.png differ diff --git a/docs/user-guide/projects/project-settings/file-storages/onedrive-storage-add-folders.png b/docs/user-guide/projects/project-settings/file-storages/onedrive-storage-add-folders.png deleted file mode 100644 index 8baecfbfda15..000000000000 Binary files a/docs/user-guide/projects/project-settings/file-storages/onedrive-storage-add-folders.png and /dev/null differ diff --git a/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-bulk-editing.png b/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-bulk-editing.png index 9c777429b619..31d1699c57f7 100644 Binary files a/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-bulk-editing.png and b/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-bulk-editing.png differ diff --git a/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-hierarchy-progress.png b/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-hierarchy-progress.png index 86d768e55971..af129927740b 100644 Binary files a/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-hierarchy-progress.png and b/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-hierarchy-progress.png differ diff --git a/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-two-progress-values.png b/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-two-progress-values.png index 8f706abb987c..70b91d6a87b0 100644 Binary files a/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-two-progress-values.png and b/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-two-progress-values.png differ diff --git a/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-wp-field-50perc.png b/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-wp-field-50perc.png index e541f1f9bc74..f20245a3d7a7 100644 Binary files a/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-wp-field-50perc.png and b/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-wp-field-50perc.png differ diff --git a/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-wp-field-editor.png b/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-wp-field-editor.png index a8fdcb8cfb3d..25c68ac05f42 100644 Binary files a/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-wp-field-editor.png and b/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-wp-field-editor.png differ diff --git a/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-wp-field.png b/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-wp-field.png index b084d798c6a0..2d302453d004 100644 Binary files a/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-wp-field.png and b/docs/user-guide/time-and-costs/progress-tracking/progress-tracking-wp-field.png differ diff --git a/docs/user-guide/work-packages/share-work-packages/openproject_user_guide_share_button_wp_numbers.png b/docs/user-guide/work-packages/share-work-packages/openproject_user_guide_share_button_wp_numbers.png index 237585a45f33..b20a3afb5125 100644 Binary files a/docs/user-guide/work-packages/share-work-packages/openproject_user_guide_share_button_wp_numbers.png and b/docs/user-guide/work-packages/share-work-packages/openproject_user_guide_share_button_wp_numbers.png differ diff --git a/docs/user-guide/work-packages/share-work-packages/openproject_user_guide_shared_with_users_filter.png b/docs/user-guide/work-packages/share-work-packages/openproject_user_guide_shared_with_users_filter.png deleted file mode 100644 index 603efe926a53..000000000000 Binary files a/docs/user-guide/work-packages/share-work-packages/openproject_user_guide_shared_with_users_filter.png and /dev/null differ diff --git a/docs/user-guide/work-packages/share-work-packages/openproject_user_guide_shared_with_users_filter_new.png b/docs/user-guide/work-packages/share-work-packages/openproject_user_guide_shared_with_users_filter_new.png index cd0c5dd20edd..88430a51ccf0 100644 Binary files a/docs/user-guide/work-packages/share-work-packages/openproject_user_guide_shared_with_users_filter_new.png and b/docs/user-guide/work-packages/share-work-packages/openproject_user_guide_shared_with_users_filter_new.png differ diff --git a/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-package-full-screen-back-arrow.png b/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-package-full-screen-back-arrow.png index 6e5f10d92d75..ec30bd878af2 100644 Binary files a/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-package-full-screen-back-arrow.png and b/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-package-full-screen-back-arrow.png differ diff --git a/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-package-table-view.png b/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-package-table-view.png index 9d15625eeab7..e3fdef54b432 100644 Binary files a/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-package-table-view.png and b/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-package-table-view.png differ diff --git a/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-package-views.png b/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-package-views.png index a281987eff86..a8ad0b3db68e 100644 Binary files a/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-package-views.png and b/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-package-views.png differ diff --git a/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-packages-full-screen-icon.png b/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-packages-full-screen-icon.png index ae1163344ca4..8681448b84bc 100644 Binary files a/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-packages-full-screen-icon.png and b/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-packages-full-screen-icon.png differ diff --git a/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-packages-split-screen-icon.png b/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-packages-split-screen-icon.png index df001234c60f..c8df03be200d 100644 Binary files a/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-packages-split-screen-icon.png and b/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-packages-split-screen-icon.png differ diff --git a/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-packages-split-screen-view.png b/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-packages-split-screen-view.png index 1e9412ca951f..17c1577f79f1 100644 Binary files a/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-packages-split-screen-view.png and b/docs/user-guide/work-packages/work-package-views/openproject-user-guide-work-packages-split-screen-view.png differ diff --git a/docs/user-guide/work-packages/work-package-views/work-package-views-default.png b/docs/user-guide/work-packages/work-package-views/work-package-views-default.png deleted file mode 100644 index 6886b97771a9..000000000000 Binary files a/docs/user-guide/work-packages/work-package-views/work-package-views-default.png and /dev/null differ diff --git a/lib/open_project.rb b/lib/open_project.rb index f35181821378..4f54a66e4ee5 100644 --- a/lib/open_project.rb +++ b/lib/open_project.rb @@ -52,12 +52,13 @@ def self.httpx # And old connections will not be closed properly which could lead to EMFILE error. Thread.current[:httpx_session] ||= begin session = HTTPX - .plugin(:persistent) # persistent plugin enables retries plugin under the hood .plugin(:basic_auth) .plugin(:webdav) .with( timeout: { connect_timeout: OpenProject::Configuration.httpx_connect_timeout, + operation_timeout: OpenProject::Configuration.httpx_operation_timeout, + request_timeout: OpenProject::Configuration.httpx_request_timeout, write_timeout: OpenProject::Configuration.httpx_write_timeout, read_timeout: OpenProject::Configuration.httpx_read_timeout, keep_alive_timeout: OpenProject::Configuration.httpx_keep_alive_timeout diff --git a/lib/open_project/version.rb b/lib/open_project/version.rb index 9addf88988b2..699de97bcb49 100644 --- a/lib/open_project/version.rb +++ b/lib/open_project/version.rb @@ -33,7 +33,7 @@ module OpenProject module VERSION # :nodoc: MAJOR = 13 MINOR = 4 - PATCH = 0 + PATCH = 1 class << self # Used by semver to define the special version (if any). diff --git a/lib_static/open_project/appsignal.rb b/lib_static/open_project/appsignal.rb index 5e08cf028efe..4bc500d9735b 100644 --- a/lib_static/open_project/appsignal.rb +++ b/lib_static/open_project/appsignal.rb @@ -36,7 +36,7 @@ def enabled? def exception_handler(message, log_context = {}) if (exception = log_context[:exception]) - if Appsignal::Transaction.current? + if ::Appsignal::Transaction.current? ::Appsignal.set_error(exception) do |transaction| transaction.set_tags tags(log_context) end diff --git a/lib_static/plugins/acts_as_journalized/lib/acts/journalized/journable_differ.rb b/lib_static/plugins/acts_as_journalized/lib/acts/journalized/journable_differ.rb index 86f7fad034a2..8d798fd04482 100644 --- a/lib_static/plugins/acts_as_journalized/lib/acts/journalized/journable_differ.rb +++ b/lib_static/plugins/acts_as_journalized/lib/acts/journalized/journable_differ.rb @@ -110,7 +110,7 @@ def to_changes_format(references, key) end def merge_reference_journals_by_id(new_journals, old_journals, id_key, value) - all_associated_journal_ids = new_journals.pluck(id_key) | old_journals.pluck(id_key) + all_associated_journal_ids = (new_journals.pluck(id_key) | old_journals.pluck(id_key)).compact all_associated_journal_ids.index_with do |id| [select_and_combine_journals(old_journals, id, id_key, value), diff --git a/modules/avatars/config/locales/crowdin/js-hu.yml b/modules/avatars/config/locales/crowdin/js-hu.yml index 47cb09a6700b..378bab010131 100644 --- a/modules/avatars/config/locales/crowdin/js-hu.yml +++ b/modules/avatars/config/locales/crowdin/js-hu.yml @@ -10,5 +10,5 @@ hu: Töltsön fel saját, 128x128 képpont méretű profilképet. A nagyobb fájlok átméretezésre és levágásra kerülnek, hogy illeszkedjenek a méretkorláthoz. Feltöltés előtt megjelenik a profilképének előnézete, miután kiválasztott egy képet. error_image_too_large: "Fájl mérete túl nagy." wrong_file_format: "A megengedett formátumok: jpg, png, gif" - empty_file_error: "Töltsön fel egy érvényes képet (jpg, png, gif)" + empty_file_error: "Kérjük, érvényes képet töltsön fel (jpg, png, gif)." diff --git a/modules/avatars/config/locales/crowdin/js-pt-BR.yml b/modules/avatars/config/locales/crowdin/js-pt-BR.yml index caa968380f55..3b29c9deb4af 100644 --- a/modules/avatars/config/locales/crowdin/js-pt-BR.yml +++ b/modules/avatars/config/locales/crowdin/js-pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-BR: js: label_preview: 'Pré-visualizar' button_update: 'Atualizar' diff --git a/modules/avatars/config/locales/crowdin/js-pt-PT.yml b/modules/avatars/config/locales/crowdin/js-pt-PT.yml index ee292ad27c0f..495cfbe40307 100644 --- a/modules/avatars/config/locales/crowdin/js-pt-PT.yml +++ b/modules/avatars/config/locales/crowdin/js-pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-PT: js: label_preview: 'Pré visualizar' button_update: 'Atualizar' diff --git a/modules/avatars/config/locales/crowdin/pt-BR.yml b/modules/avatars/config/locales/crowdin/pt-BR.yml index 1e6746f8d7cd..1dbac87dd408 100644 --- a/modules/avatars/config/locales/crowdin/pt-BR.yml +++ b/modules/avatars/config/locales/crowdin/pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-BR: plugin_openproject_avatars: name: "Imagens do perfil" description: >- diff --git a/modules/avatars/config/locales/crowdin/pt-PT.yml b/modules/avatars/config/locales/crowdin/pt-PT.yml index d1d9bcfcad09..f313f033434e 100644 --- a/modules/avatars/config/locales/crowdin/pt-PT.yml +++ b/modules/avatars/config/locales/crowdin/pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-PT: plugin_openproject_avatars: name: "Avatares" description: >- diff --git a/modules/backlogs/config/locales/crowdin/hu.yml b/modules/backlogs/config/locales/crowdin/hu.yml index 83c2483d9f84..b3823af7176d 100644 --- a/modules/backlogs/config/locales/crowdin/hu.yml +++ b/modules/backlogs/config/locales/crowdin/hu.yml @@ -64,8 +64,8 @@ hu: properties: "Tulajdonságok" rebuild: "Újraépítés" rebuild_positions: "Pozíciók újraépítése" - remaining_hours: "Hátralévő munka" - remaining_hours_ideal: "Hátralévő munka (ideális)" + remaining_hours: "Fennmaradó órák" + remaining_hours_ideal: "Fennmaradó órák (ideális)" show_burndown_chart: "Napi teendő ábra" story: "Sztori" story_points: "Story pontok" @@ -141,18 +141,18 @@ hu: points_resolved: "points resolved" points_to_accept: "points not accepted" points_to_resolve: "points not resolved" - project_module_backlogs: "Backlogs" + project_module_backlogs: "Elvégzendő feladatok" rb_label_copy_tasks: "Copy work packages" rb_label_copy_tasks_all: "Mind" rb_label_copy_tasks_none: "None" rb_label_copy_tasks_open: "Open" rb_label_link_to_original: "Include link to original story" - remaining_hours: "hátralévő munka" + remaining_hours: "Fennmaradó órák" required_burn_rate_hours: "required burn rate (hours)" required_burn_rate_points: "required burn rate (points)" - todo_work_package_description: "%{summary}: %{url}\n%{description}" + todo_work_package_description: "%{összegzés}: %{url}\n%{leírás}" todo_work_package_summary: "%{type}: %{summary}" - version_settings_display_label: "Column in backlog" + version_settings_display_label: "Hátralévő feladatok oszlopa" version_settings_display_option_left: "balra" version_settings_display_option_none: "none" version_settings_display_option_right: "jobbra" diff --git a/modules/backlogs/config/locales/crowdin/js-pt-BR.yml b/modules/backlogs/config/locales/crowdin/js-pt-BR.yml index 003815df6623..7845c9211a02 100644 --- a/modules/backlogs/config/locales/crowdin/js-pt-BR.yml +++ b/modules/backlogs/config/locales/crowdin/js-pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: js: work_packages: properties: diff --git a/modules/backlogs/config/locales/crowdin/js-pt-PT.yml b/modules/backlogs/config/locales/crowdin/js-pt-PT.yml index b75a09cb2553..fb1abc58136d 100644 --- a/modules/backlogs/config/locales/crowdin/js-pt-PT.yml +++ b/modules/backlogs/config/locales/crowdin/js-pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: js: work_packages: properties: diff --git a/modules/backlogs/config/locales/crowdin/ms.yml b/modules/backlogs/config/locales/crowdin/ms.yml index 772802c0b818..6bdf1f780351 100644 --- a/modules/backlogs/config/locales/crowdin/ms.yml +++ b/modules/backlogs/config/locales/crowdin/ms.yml @@ -99,7 +99,7 @@ ms: error_backlogs_task_cannot_be_story: "Seting tidak sah. Jenis tugasan yang dipilih tidak boleh dijadikan jenis cerita juga." error_intro_plural: "Ralat-ralat berikut telah ditemui:" error_intro_singular: "Ralat berikut telah ditemui:" - error_outro: "Betulkan ralat-ralat diatas sebelum menghantar semula." + error_outro: "Sila betulkan ralat-ralat di atas sebelum menghantar semula." event_sprint_description: "%{summary}: %{url}\n%{description}" event_sprint_summary: "%{project}: %{summary}" ideal: "ideal" @@ -107,12 +107,12 @@ ms: label_back_to_project: "Kembali ke laman projek" label_backlog: "Tunggakan" label_backlogs: "Tunggakan" - label_backlogs_unconfigured: "Anda belum mengkonfigurasi tunggakan lagi. Sila pergi ke %{administration} > %{plugins}, kemudian klik pautan %{configure} untuk plugin ini. Setelah anda menetapkan medan-medan, kembali ke halaman ini untuk mula menggunakan alat ini." - label_blocks_ids: "ID-ID pakej kerja yang disekat" + label_backlogs_unconfigured: "Anda belum mengkonfigurasi tunggakan lagi. Sila pergi ke %{administration} > %{plugins}, kemudian klik pautan %{configure} untuk plugin ini. Setelah anda menetapkan medan, kembali ke halaman ini untuk mula menggunakan alat ini." + label_blocks_ids: "ID pakej kerja yang disekat" label_burndown: "Burndown" label_column_in_backlog: "Kolum dalam tunggakan" label_hours: "jam" - label_work_package_hierarchy: "Hierarki Pakej kerja " + label_work_package_hierarchy: "Hierarki Pakej kerja" label_master_backlog: "Tunggakan Utama" label_not_prioritized: "tidak diutamakan" label_points: "mata" @@ -122,7 +122,7 @@ ms: label_select_all: "Pilih semua" label_sprint_backlog: "tunggakan pecutan " label_sprint_cards: "Kad eksport" - label_sprint_impediments: "Halangan-halangan Pecutan" + label_sprint_impediments: "Halangan Pecutan" label_sprint_name: "Pecutan \"%{name}\"" label_sprint_velocity: "Kelajuan %{velocity}, berdasarkan %{sprints} pecutan dengan purata %{days} hari" label_stories: "Cerita-cerita" @@ -133,7 +133,7 @@ ms: label_webcal: "Webcal Feed" label_wiki: "Wiki" permission_view_master_backlog: "Paparkan tunggakan utama" - permission_view_taskboards: "Paparkan papan kerja" + permission_view_taskboards: "Paparkan papan tugasan" permission_select_done_statuses: "Pilih status selesai" permission_update_sprints: "Kemas kini pecutan" points_accepted: "mata diterima" @@ -152,7 +152,7 @@ ms: required_burn_rate_points: "kadar pembakaran yang diperlukan (mata)" todo_work_package_description: "%{summary}: %{url}\n%{description}" todo_work_package_summary: "%{type}: %{summary}" - version_settings_display_label: "Kolum dalam backlog" + version_settings_display_label: "Kolum dalam tunggakan" version_settings_display_option_left: "kiri" version_settings_display_option_none: "tiada" version_settings_display_option_right: "kanan" diff --git a/modules/backlogs/config/locales/crowdin/pt-BR.yml b/modules/backlogs/config/locales/crowdin/pt-BR.yml index b8c6e3776b33..63172ca2d9e8 100644 --- a/modules/backlogs/config/locales/crowdin/pt-BR.yml +++ b/modules/backlogs/config/locales/crowdin/pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: plugin_openproject_backlogs: name: "Backlogs OpenProject" description: "Este módulo acrescenta recursos que permitem que as equipes ágeis trabalhem com o OpenProject em projetos Scrum." diff --git a/modules/backlogs/config/locales/crowdin/pt-PT.yml b/modules/backlogs/config/locales/crowdin/pt-PT.yml index 04cea10164e7..c77ddaacd14b 100644 --- a/modules/backlogs/config/locales/crowdin/pt-PT.yml +++ b/modules/backlogs/config/locales/crowdin/pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: plugin_openproject_backlogs: name: "Repositórios OpenProject" description: "Este módulo acrescenta funcionalidades que permitem às equipas Agile trabalhar com o OpenProject em projetos Scrum." diff --git a/modules/backlogs/config/locales/crowdin/zh-TW.yml b/modules/backlogs/config/locales/crowdin/zh-TW.yml index c055614e1c9a..d89c5113ef2e 100644 --- a/modules/backlogs/config/locales/crowdin/zh-TW.yml +++ b/modules/backlogs/config/locales/crowdin/zh-TW.yml @@ -37,7 +37,7 @@ zh-TW: can_only_contain_work_packages_of_current_sprint: "只可以在現在進度中包含工作項目的 IDs" must_block_at_least_one_work_package: "必須包含至少一個項目的 ID" version_id: - task_version_must_be_the_same_as_story_version: "必須與「使用者故事」(User Story)的版本相同。" + task_version_must_be_the_same_as_story_version: "必須與上層「使用者需求」(User Story)的版本相同。" sprint: cannot_end_before_it_starts: "進度不可以在開始前結束" backlogs: @@ -64,8 +64,8 @@ zh-TW: properties: "屬性" rebuild: "重建" rebuild_positions: "重建位置" - remaining_hours: "剩餘工作" - remaining_hours_ideal: "剩餘工作(ideal)" + remaining_hours: "剩餘工時" + remaining_hours_ideal: "剩餘工時(ideal)" show_burndown_chart: "未完成圖" story: "使用者需求" story_points: "需求重點" @@ -147,7 +147,7 @@ zh-TW: rb_label_copy_tasks_none: "無" rb_label_copy_tasks_open: "開啟" rb_label_link_to_original: "包含連結到原本的使用者需求" - remaining_hours: "剩餘工作" + remaining_hours: "剩餘工時" required_burn_rate_hours: "必須的完成率 (小時)" required_burn_rate_points: "必須的完成率 (點數)" todo_work_package_description: "%{summary}: %{url}\n%{description}" diff --git a/modules/backlogs/lib/open_project/backlogs/patches/setting_seeder_patch.rb b/modules/backlogs/lib/open_project/backlogs/patches/setting_seeder_patch.rb index f1d01da5b3a5..4633235c7e17 100644 --- a/modules/backlogs/lib/open_project/backlogs/patches/setting_seeder_patch.rb +++ b/modules/backlogs/lib/open_project/backlogs/patches/setting_seeder_patch.rb @@ -37,7 +37,7 @@ module InstanceMethods def data original_data = super - unless original_data['default_projects_modules'].include? 'backlogs' + if original_data['default_projects_modules']&.exclude? 'backlogs' original_data['default_projects_modules'] << 'backlogs' end diff --git a/modules/bim/app/seeders/bim/basic_data/setting_seeder.rb b/modules/bim/app/seeders/bim/basic_data/setting_seeder.rb index fe8b80117e5f..352fbbf6eea7 100644 --- a/modules/bim/app/seeders/bim/basic_data/setting_seeder.rb +++ b/modules/bim/app/seeders/bim/basic_data/setting_seeder.rb @@ -30,7 +30,7 @@ module BasicData class SettingSeeder < ::BasicData::SettingSeeder def data super.tap do |original_data| - unless original_data['default_projects_modules'].include? 'bim' + if original_data['default_projects_modules']&.exclude? 'bim' original_data['default_projects_modules'] << 'bim' end diff --git a/modules/bim/config/locales/crowdin/cs.seeders.yml b/modules/bim/config/locales/crowdin/cs.seeders.yml index 229150fbe3c3..c7e36b8c2348 100644 --- a/modules/bim/config/locales/crowdin/cs.seeders.yml +++ b/modules/bim/config/locales/crowdin/cs.seeders.yml @@ -280,7 +280,7 @@ cs: * This overview informs all participants about the decisions made * ... item_3: - subject: Passing of preliminary planning + subject: Přijetí předběžného plánu description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_4: subject: Plánování návrhů @@ -363,7 +363,7 @@ cs: * Finish the roof * ... item_4: - subject: Installing the building service systems + subject: Instalace servisních systémů budovy description: |- ## Goal @@ -410,8 +410,8 @@ cs: item_0: title: Vítejte ve vašem demo projektu summary: | - We are glad you joined. - In this module you can communicate project news to your team members. + Jsme rádi, že jste se připojili. + V tomto modulu můžete sdělit zprávy o projektu členům vašeho týmu. description: Aktuální novinky categories: item_0: Kategorie 1 (bude změněno v nastavení projektu) @@ -578,10 +578,10 @@ cs: * ... item_3: subject: Odesílání modelu BIM - description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. + description: Tento typ je hierarchicky nadřazený typům "Clash" a "Request", představuje tedy obecnou poznámku. item_5: subject: Koordinace, první cyklus - description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. + description: Tento typ je hierarchicky nadřazeným typem "Clash" a "Request", proto představuje obecnou poznámku. children: item_0: subject: Koordinace různých modelů BIM diff --git a/modules/bim/config/locales/crowdin/hu.seeders.yml b/modules/bim/config/locales/crowdin/hu.seeders.yml index 2cf07e837605..b1bd901e30f4 100644 --- a/modules/bim/config/locales/crowdin/hu.seeders.yml +++ b/modules/bim/config/locales/crowdin/hu.seeders.yml @@ -105,7 +105,7 @@ hu: item_1: name: Milestones item_2: - name: Tasks + name: Feladatok item_3: name: Csoport tervező boards: @@ -115,7 +115,7 @@ hu: widgets: item_0: options: - name: Welcome + name: Üdvözlünk item_1: options: name: Kezdés @@ -147,7 +147,7 @@ hu: name: Munkacsomagok item_6: options: - name: Milestones + name: Mérföldkövek 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,16 +165,16 @@ hu: item_0: name: Project plan item_1: - name: Milestones + name: Mérföldkövek item_2: - name: Tasks + name: Feladatok item_3: name: Csoport tervező project-overview: widgets: item_0: options: - name: Welcome + name: Üdvözlünk item_1: options: name: Kezdés @@ -202,7 +202,7 @@ hu: name: Munkacsomagok item_6: options: - name: Milestones + name: Mérföldkövek work_packages: item_0: subject: Project kick off construction project @@ -246,7 +246,7 @@ hu: subject: End of basic evaluation description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. item_2: - subject: Preliminary planning + subject: Előzetes tervezés description: This type is hierarchically a parent of the types "Clash" and "Request", thus represents a general note. children: item_0: diff --git a/modules/bim/config/locales/crowdin/js-ms.yml b/modules/bim/config/locales/crowdin/js-ms.yml index c667f3c0b691..24303eab2ae8 100644 --- a/modules/bim/config/locales/crowdin/js-ms.yml +++ b/modules/bim/config/locales/crowdin/js-ms.yml @@ -4,9 +4,9 @@ ms: bcf: label_bcf: 'BCF' import: 'Import' - import_bcf_xml_file: 'Import fail BCF XML (BCF version 2.1)' + import_bcf_xml_file: 'Import fail BCF XML (BCF versi 2.1)' export: 'Eksport' - export_bcf_xml_file: 'Eksport fail BCF XML (BCF version 2.1)' + export_bcf_xml_file: 'Eksport fail BCF XML (BCF versi 2.1)' viewpoint: 'Sudut pandangan' add_viewpoint: 'Tambah sudut pandangan' show_viewpoint: 'Tunjuk sudut pandangan' @@ -26,4 +26,4 @@ ms: split_cards: 'Pemerhati dan kad' revit: revit_add_in: "Revit Add-In" - revit_add_in_settings: "Revit Add-In settings" + revit_add_in_settings: "Seting Revit Add-In" diff --git a/modules/bim/config/locales/crowdin/js-pt-BR.yml b/modules/bim/config/locales/crowdin/js-pt-BR.yml index 646cc77181a5..7425b318dc7a 100644 --- a/modules/bim/config/locales/crowdin/js-pt-BR.yml +++ b/modules/bim/config/locales/crowdin/js-pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-BR: js: bcf: label_bcf: 'BCF' diff --git a/modules/bim/config/locales/crowdin/js-pt-PT.yml b/modules/bim/config/locales/crowdin/js-pt-PT.yml index eb8a6792f08f..3c9b05524a14 100644 --- a/modules/bim/config/locales/crowdin/js-pt-PT.yml +++ b/modules/bim/config/locales/crowdin/js-pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-PT: js: bcf: label_bcf: 'BCF' diff --git a/modules/bim/config/locales/crowdin/ms.seeders.yml b/modules/bim/config/locales/crowdin/ms.seeders.yml index e5e21870b815..fd3a24e2e9c8 100644 --- a/modules/bim/config/locales/crowdin/ms.seeders.yml +++ b/modules/bim/config/locales/crowdin/ms.seeders.yml @@ -75,16 +75,16 @@ ms: text: | Lihat demo projek untuk mula dengan beberapa contoh. - * [(Demo) Construction project]({{opSetting:base_url}}/projects/demo-construction-project): Perancangan, proses BIM, pengurusan BCF, dan pembinaan, semua sepintas lalu. - * [(Demo) Planning & constructing]({{opSetting:base_url}}/projects/demo-planning-constructing-project): Perancangan klasik dan pengurusan pembinaan. - * [(Demo) Bim project]({{opSetting:base_url}}/projects/demo-bim-project): Proses dan koordinasi BIM. - * [(Demo) BCF management]({{opSetting:base_url}}/projects/demo-bcf-management-project): Pengurusan BCF. + * [(Demo) Projek Pembinaan]({{opSetting:base_url}}/projects/demo-construction-project): Perancangan, proses BIM, pengurusan BCF, dan pembinaan, semua sepintas lalu. + * [(Demo) Perancangan & pembinaan]({{opSetting:base_url}}/projects/demo-planning-constructing-project): Perancangan klasik dan pengurusan pembinaan. + * [(Demo) Projek BIM]({{opSetting:base_url}}/projects/demo-bim-project): Proses dan koordinasi BIM. + * [(Demo) Pengurusan BCF]({{opSetting:base_url}}/projects/demo-bcf-management-project): Pengurusan BCF. - Anda juga boleh mencipta [new project]({{opSetting:base_url}}/projects/new) yang baru. + Anda juga boleh mencipta [projek baru]({{opSetting:base_url}}/projects/new) yang baru. Jangan berhenti bekerjasama. Dengan sumber dan minda terbuka. - Anda boleh mengubah teks ucapan selamat datang ini [here]({{opSetting:base_url}}/admin/settings/general). + Anda boleh mengubah teks ucapan selamat datang ini [sini]({{opSetting:base_url}}/admin/settings/general). projects: demo-construction-project: name: "(Demo) Projek pembinaan" @@ -124,20 +124,20 @@ ms: Sebelum anda teruskan, anda harus tahu projek contoh ini terbahagi kepada dua projek yang berbeza: - 1. [Construction project]({{opSetting:base_url}}/projects/demo-planning-constructing-project): Disini anda akan jumpa peranan klasik, beberapa aliran kerja dan pakej kerja untuk projek pembinaan anda. - 2. [Creating BIM Model]({{opSetting:base_url}}/projects/demo-bim-project): Projek ini juga menawarkan peranan, aliran kerja dan pakej kerja tetapi secara khususnya dalam konteks BIM. + 1. [Projek Pembinaan]({{opSetting:base_url}}/projects/demo-planning-constructing-project): Disini anda akan jumpa peranan klasik, beberapa aliran kerja dan pakej kerja untuk projek pembinaan anda. + 2. [Mencipta Model BIM]({{opSetting:base_url}}/projects/demo-bim-project): Projek ini juga menawarkan peranan, aliran kerja dan pakej kerja tetapi secara khususnya dalam konteks BIM. _Cuba ikuti langkah berikut:_ - 1. _Jemput ahli baru ke projek anda_: → Pergi ke [Members]({{opSetting:base_url}}/projects/demo-construction-project/members) dalam navigasi projek. - 2. _Paparkan kerja di dalam projek anda_: → Pergi ke [Work packages]({{opSetting:base_url}}/projects/demo-construction-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%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%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) dalam navigasi projek. - 3. _Cipta pakej pekerjaan yang baru_: → Pergi ke [Work packages → Create]({{opSetting:base_url}}/projects/demo-construction-project/work_packages/new?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%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%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D&type=11). - 4. _Cipta dan kemaskini Gantt chart_: → Pergi ke [Gantt chart]({{opSetting:base_url}}/projects/demo-construction-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22assignee%22%2C%22responsible%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22weeks%22%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) dalam navigasi projek. - 5. _Mengaktifkan modul lanjutan_: → Pergi ke [Project settings → Modules]({{opSetting:base_url}}/projects/demo-construction-project/settings/modules). - 6. _Lihat paparan til untuk dapatkan gambar keseluruhan isu BCF anda:_ → Pergi ke [Work packages]({{opSetting:base_url}}/projects/demo-construction-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22id%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22card%22%7D) - 7. _Pemangkin kerja? Semak papan kami yang baru:_ → Pergi ke [Boards]({{opSetting:base_url}}/projects/demo-construction-project/boards) + 1. _Jemput ahli baru ke projek anda_: → Pergi ke [Ahli]({{opSetting:base_url}}/projects/demo-construction-project/members) dalam navigasi projek. + 2. _Paparkan kerja di dalam projek anda_: → Pergi ke [Pakej kerja]({{opSetting:base_url}}/projects/demo-construction-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%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%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) dalam navigasi projek. + 3. _Cipta pakej pekerjaan yang baru_: → Pergi ke [Pakej kerja → Cipta]({{opSetting:base_url}}/projects/demo-construction-project/work_packages/new?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%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%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D&type=11). + 4. _Cipta dan kemaskini carta Gantt_: → Pergi ke [Carta Gantt]({{opSetting:base_url}}/projects/demo-construction-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22assignee%22%2C%22responsible%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22weeks%22%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) dalam navigasi projek. + 5. _Mengaktifkan modul lanjutan_: → Pergi ke [Seting projek → Modul]({{opSetting:base_url}}/projects/demo-construction-project/settings/modules). + 6. _Lihat paparan til untuk dapatkan gambar keseluruhan isu BCF anda:_ → Pergi ke [Pakej kerja]({{opSetting:base_url}}/projects/demo-construction-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22id%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22card%22%7D) + 7. _Pemangkin kerja? Semak board kami yang baru:_ → Pergi ke [Board]({{opSetting:base_url}}/projects/demo-construction-project/boards) - Disini anda akan jumpa [User Guides](https://www.openproject.org/docs/user-guide/) kami. + Disini anda akan jumpa [Panduan Pengguna](https://www.openproject.org/docs/user-guide/) kami. Sila beritahu kami jika anda mempunyai sebarang soalan atau memerlukan sokongan. Hubungi kami: [support\[at\]openproject.com](mailto:support@openproject.com). item_4: options: @@ -185,14 +185,14 @@ ms: _Cuba ikuti langkah berikut:_ - 1. _Jemput ahli baru ke projek anda:_ → Pergi ke [Members]({{opSetting:base_url}}/projects/demo-planning-constructing-project/members) dalam navigasi projek. - 2. _Lihat kerja dalam projek anda:_ → Pergi ke [Work packages]({{opSetting:base_url}}/projects/demo-planning-constructing-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%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%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) dalam navigasi projek. - 3. _Cipta satu pakej kerja baharu:_ → Pergi ke [Work packages → Create]({{opSetting:base_url}}/projects/demo-planning-constructing-project/work_packages/new?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%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%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D&type=11). - 4. _Cipta dan kemaskini Gantt chart:_ → Pergi ke [Gantt chart]({{opSetting:base_url}}/projects/demo-planning-constructing-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22assignee%22%2C%22responsible%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22weeks%22%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) dalam navigasi project. - 5. _Aktifkan modul lanjutan:_ → Pergi ke [Project settings → Modules]({{opSetting:base_url}}/projects/demo-planning-constructing-project/settings/modules). - 6. _Pemangkin kerja? Cipta satu panel baharu:_ → Pergi ke [Boards]({{opSetting:base_url}}/projects/demo-planning-constructing-project/boards) + 1. _Jemput ahli baru ke projek anda:_ → Pergi ke [Ahli]({{opSetting:base_url}}/projects/demo-planning-constructing-project/members) dalam navigasi projek. + 2. _Lihat kerja dalam projek anda:_ → Pergi ke [Pakej kerja]({{opSetting:base_url}}/projects/demo-planning-constructing-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%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%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) dalam navigasi projek. + 3. _Cipta satu pakej kerja baru:_ → Pergi ke [Pakej kerja → Cipta]({{opSetting:base_url}}/projects/demo-planning-constructing-project/work_packages/new?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%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%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D&type=11). + 4. _Cipta dan kemaskini carta Gantt:_ → Pergi ke [Carta Gantt]({{opSetting:base_url}}/projects/demo-planning-constructing-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22assignee%22%2C%22responsible%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22weeks%22%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) dalam navigasi projek. + 5. _Aktifkan modul lanjutan:_ → Pergi ke [Seting Projek → Modul]({{opSetting:base_url}}/projects/demo-planning-constructing-project/settings/modules). + 6. _Pemangkin kerja? Cipta satu board baharu:_ → Pergi ke [Board]({{opSetting:base_url}}/projects/demo-planning-constructing-project/boards) - Di sini anda akan menemui [User Guides](https://www.openproject.org/docs/user-guide/) kami. + Di sini anda akan menemui [Panduan Pengguna](https://www.openproject.org/docs/user-guide/) kami. Sila beritahu kami untuk sebarang soalan atau bantuan. Hubungi kami: [support\[at\]openproject.com](mailto:support@openproject.com). item_4: options: @@ -209,7 +209,7 @@ ms: description: |- Permulaan projek menandakan permulaan projek di dalam syarikat anda. Setiap orang yang menjadi sebahagian daripada projek ini perlu dijemput untuk menyertai taklimat pertama projek. - Langkah seterusnya adalah menyemak jadual waktu dan menyesuaikan temujanji dengan melihat [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). + Langkah seterusnya adalah menyemak jadual waktu dan menyesuaikan temujanji dengan melihat [Carta Gantt]({{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: Penilaian asas description: Jenis ini adalah induk secara hierarki bagi jenis "Konflik" dan "Permintaan", oleh itu mewakili catatan umum. @@ -318,7 +318,7 @@ ms: ## Huraian * Menyediakan tapak untuk projek - * Kumpulkan pasukan + * Kumpulkan pasukan * ... item_1: subject: Asas @@ -388,7 +388,7 @@ ms: * Menyiapkan pemasangan sistem perkhidmatan bangunan * Menyiapkan pembinaan dalaman - * MEnyiapkan muka bangunan + * Menyiapkan muka bangunan * ... item_6: subject: Majlis perasmian rumah baru @@ -439,17 +439,17 @@ ms: _Cuba ikuti langkah berikut:_ - 1. _Jemput ahli baru ke projek anda:_ → Pergi ke [Members]({{opSetting:base_url}}/projects/demo-bim-project/members) dalam navigasi projek. + 1. _Jemput ahli baru ke projek anda:_ → Pergi ke [Ahli]({{opSetting:base_url}}/projects/demo-bim-project/members) dalam navigasi projek. 2. _Muat naik dan paparkan model 3d dalam format IFC:_ → Pergi ke [BCF]({{opSetting:base_url}}/projects/demo-bim-project/bcf) dalam navigasi projek. 3. _Cipta dan urus isu BCF yang berkaitan dalam model IFC:_ → Pergi ke [BCF]({{opSetting:base_url}}/projects/demo-bim-project/bcf) → Cipta. - 4. _Lihat kerja dalam projek anda:_ → Pergi ke [Work packages]({{opSetting:base_url}}/projects/demo-bim-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%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%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) dalam navigasi projek. - 5. _Cipta satu pakej pekerjaan baharu:_ → Pergi ke [Work packages → Create]({{opSetting:base_url}}/projects/demo-bim-project/work_packages/new?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%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%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D&type=11). - 6. _Cipta dan kemaskini Gantt chart:_ → Pergi ke [Gantt chart]({{opSetting:base_url}}/projects/demo-bim-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22assignee%22%2C%22responsible%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22weeks%22%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) dalam navigasi projek. - 7. _Aktifkan modul lanjutan:_ → Pergi ke [Project settings → Modules]({{opSetting:base_url}}/projects/demo-bim-project/settings/modules). - 8. _Semak paparan til untuk mendapatkan gambaran keseluruhan mengenai isu-isu BCF anda:_ → Pergi ke [Work packages]({{opSetting:base_url}}/projects/demo-bim-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22id%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22card%22%7D) - 9. _Pemangkin kerja? Cipta satu panel baru:_ → Pergi ke [Boards]({{opSetting:base_url}}/projects/demo-bim-project/boards) - - Di sini anda akan menemui [User Guides](https://www.openproject.org/docs/user-guide/) kami. + 4. _Lihat kerja dalam projek anda:_ → Pergi ke [Pakej kerja]({{opSetting:base_url}}/projects/demo-bim-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%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%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) dalam navigasi projek. + 5. _Cipta satu pakej pekerjaan baharu:_ → Pergi ke [Pakej kerja → Cipta]({{opSetting:base_url}}/projects/demo-bim-project/work_packages/new?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%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%22bcfIssueAssociated%22%2C%22o%22%3A%22%3D%22%2C%22v%22%3A%5B%22f%22%5D%7D%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D&type=11). + 6. _Cipta dan kemaskini carta Gantt:_ → Pergi ke [Carta Gantt]({{opSetting:base_url}}/projects/demo-bim-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22assignee%22%2C%22responsible%22%5D%2C%22tv%22%3Atrue%2C%22tzl%22%3A%22weeks%22%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22startDate%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22list%22%7D) dalam navigasi projek. + 7. _Aktifkan modul lanjutan:_ → Pergi ke [Seting Projek → Modul]({{opSetting:base_url}}/projects/demo-bim-project/settings/modules). + 8. _Semak paparan til untuk mendapatkan gambaran keseluruhan mengenai isu-isu BCF anda:_ → Pergi ke [Pakej kerja]({{opSetting:base_url}}/projects/demo-bim-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22priority%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22id%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22card%22%7D) + 9. _Pemangkin kerja? Cipta satu panel baru:_ → Pergi ke [Board]({{opSetting:base_url}}/projects/demo-bim-project/boards) + + Di sini anda akan menemui [Panduan pengguna](https://www.openproject.org/docs/user-guide/) kami. Sila beritahu kami untuk sebarang soalan atau bantuan. Hubungi kami: [support\[at\]openproject.com](mailto:support@openproject.com). item_4: options: @@ -466,7 +466,7 @@ ms: description: |- Permulaan projek menandakan permulaan projek di dalam syarikat anda. Setiap orang yang menjadi sebahagian daripada projek ini perlu dijemput untuk menyertai taklimat pertama projek. - Langkah seterusnya adalah menyemak jadual waktu dan menyesuaikan temujanji dengan melihat [Gantt chart]({{opSetting:base_url}}/projects/demo-bim-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). + Langkah seterusnya adalah menyemak jadual waktu dan menyesuaikan temujanji dengan melihat [Carta Gantt]({{opSetting:base_url}}/projects/demo-bim-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: Penyediaan projek description: Jenis ini adalah induk bagi jenis "Clash" dan "Request", oleh itu mewakili catatan umum. @@ -715,16 +715,16 @@ ms: _Cuba ikuti langkah berikut:_ - 1. _Jemput ahli baru ke projek anda:_ → Pergi ke [Members]({{opSetting:base_url}}/projects/demo-bcf-management-project/members?show_add_members=true) dalam navigasi projek. + 1. _Jemput ahli baru ke projek anda:_ → Pergi ke [Ahli]({{opSetting:base_url}}/projects/demo-bcf-management-project/members?show_add_members=true) dalam navigasi projek. 2. _Muat naik dan lihat model 3d dalam format IFC:_ → Pergi ke [BCF]({{opSetting:base_url}}/projects/demo-bim-project/bcf) dalam navigasi projek. 3. _Cipta dan urus isu BCF yang dihubung secara langsung dalam model IFC:_ → Pergi ke [BCF]({{opSetting:base_url}}/projects/demo-bim-project/bcf) → Cipta. 4. _Lihat fail BCF dalam projek anda:_ → Pergi ke [BCF]({{opSetting:base_url}}/projects/demo-bcf-management-project/work_packages?query_props=%7B%22c%22%3A%5B%22type%22%2C%22id%22%2C%22subject%22%2C%22status%22%2C%22assignee%22%2C%22priority%22%5D%2C%22hl%22%3A%22status%22%2C%22hi%22%3Atrue%2C%22g%22%3A%22%22%2C%22t%22%3A%22id%3Aasc%22%2C%22f%22%3A%5B%5D%2C%22pa%22%3A1%2C%22pp%22%3A100%2C%22dr%22%3A%22card%22%7D) dalam navigasi projek. 5. _Muatkan fail BCF anda:_ → Pergi ke [BCF → Import.]({{opSetting:base_url}}/projects/demo-bcf-management-project/issues/upload) - 6. _Cipta dan kemas kini Gantt chart:_ → Pergi ke [Gantt chart]({{opSetting:base_url}}/projects/demo-bcf-management-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%22days%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) dalam navigasi projek. - 7. _Aktifkan modul lanjutan:_ → Pergi ke [Project settings → Modules.]({{opSetting:base_url}}/projects/demo-bcf-management-project/settings/modules) - 8. _Anda suka pendekatan yang pantas ini? Cipta Board:_ → Pergi ke [Boards]({{opSetting:base_url}}/projects/demo-bcf-management-project/boards). + 6. _Cipta dan kemas kini Carta Gantt:_ → Pergi ke [Carta Gantt]({{opSetting:base_url}}/projects/demo-bcf-management-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%22days%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) dalam navigasi projek. + 7. _Aktifkan modul lanjutan:_ → Pergi ke [Seting Projek → Modul.]({{opSetting:base_url}}/projects/demo-bcf-management-project/settings/modules) + 8. _Anda suka pendekatan yang pantas ini? Cipta Board:_ → Pergi ke [Board]({{opSetting:base_url}}/projects/demo-bcf-management-project/boards). - Disini anda akan menemui [User Guides](https://www.openproject.org/docs/user-guide/) kami. + Disini anda akan menemui [Panduan pengguna](https://www.openproject.org/docs/user-guide/) kami. Sila beritahu kami untuk sebarang soalan atau bantuan. Hubungi kami: [support\[at\]openproject.com](mailto:support@openproject.com). item_4: options: diff --git a/modules/bim/config/locales/crowdin/ms.yml b/modules/bim/config/locales/crowdin/ms.yml index 014d2278eca5..b845326d6795 100644 --- a/modules/bim/config/locales/crowdin/ms.yml +++ b/modules/bim/config/locales/crowdin/ms.yml @@ -74,10 +74,10 @@ ms: oauth: scopes: bcf_v2_1: "Akses penuh untuk BCF v2.1 API" - bcf_v2_1_text: "Aplikasi akan terima akses baca & tulis penuh di OpenProject BCF API v2.1 untuk meaksanakan tindakan bagi pihak anda." + bcf_v2_1_text: "Aplikasi akan terima akses baca & tulis penuh di OpenProject BCF API v2.1 untuk melaksanakan tindakan bagi pihak anda." activerecord: models: - bim/ifc_models/ifc_model: "model IFC" + bim/ifc_models/ifc_model: "Model IFC" attributes: bim/ifc_models/ifc_model: ifc_attachment: "Fail IFC" @@ -88,7 +88,7 @@ ms: bim/ifc_models/ifc_model: attributes: base: - ifc_attachment_missing: "Tiada fail ifc yang dilampirkan" + ifc_attachment_missing: "Tiada fail IFC yang dilampirkan" invalid_ifc_file: "Fail yang ditetapkan adalah fail IFC yang tidak sah." bim/bcf/viewpoint: bitmaps_not_writable: "bitmaps tidak boleh ditulis kerana belum dilaksanakan." @@ -99,7 +99,7 @@ ms: invalid_orthogonal_camera: "kamera_serenjang adalah tidak sah." invalid_perspective_camera: "kamera_perspektif adalah tidak sah." mismatching_guid: "The guid in the json_viewpoint does not match the model's guid." - no_json: "Is not a well structured json." + no_json: "Bukan json yang tersusun dengan baik." snapshot_type_unsupported: "jenis_snapshot perlu sama ada 'png' atau 'jpg'." snapshot_data_blank: "data_snapshot perlu disediakan." unsupported_key: "Properti json yang tidak disokong disertakan." @@ -108,16 +108,16 @@ ms: ifc_models: label_ifc_models: 'Model IFC' label_new_ifc_model: 'Model IFC baharu' - label_show_defaults: 'Show defaults' + label_show_defaults: 'Tunjukkan defaults' label_default_ifc_models: 'Model default IFC ' label_edit_defaults: 'Edit defaults' no_defaults_warning: - title: 'No IFC model was set as default for this project.' + title: 'Tiada model IFC yang ditetapkan sebagai default untuk projek ini.' check_1: 'Semak bahawa anda telah memuat naik sekurang-kurangnya satu model IFC.' check_2: 'Semak bahawa salah satu model IFC ditetapkan sebagai "Default".' no_results: "Tiada model IFC yang telah dimuat naik di dalam projek ini." conversion_status: - label: 'Pemprosesan?' + label: 'Proses?' pending: 'Dalam proses' processing: 'Sedang di proses' completed: 'Selesai' @@ -127,7 +127,7 @@ ms: flash_messages: upload_successful: 'Muat naik berjaya. Akan diproses dan sedia untuk digunakan dalam masa beberapa minit.' conversion: - missing_commands: "Arahan penukar IFC berikut hilang pada sistem ini: %{names}" + missing_commands: "Arahan converter IFC berikut hilang dari sistem ini: %{names}" project_module_ifc_models: "Model IFC" permission_view_ifc_models: "Paparkan model IFC" permission_manage_ifc_models: "Import dan urus model IFC" diff --git a/modules/bim/config/locales/crowdin/pt-BR.seeders.yml b/modules/bim/config/locales/crowdin/pt-BR.seeders.yml index 7774cdba654f..0d82162c385c 100644 --- a/modules/bim/config/locales/crowdin/pt-BR.seeders.yml +++ b/modules/bim/config/locales/crowdin/pt-BR.seeders.yml @@ -2,7 +2,7 @@ #Please do not edit directly. #This file is part of the sources sent to crowdin for translation. --- -pt: +pt-BR: seeds: bim: priorities: diff --git a/modules/bim/config/locales/crowdin/pt-BR.yml b/modules/bim/config/locales/crowdin/pt-BR.yml index 8cc38cdd8892..9c8b89a127b9 100644 --- a/modules/bim/config/locales/crowdin/pt-BR.yml +++ b/modules/bim/config/locales/crowdin/pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here for Rails i18n -pt: +pt-BR: plugin_openproject_bim: name: "Funcionalidade BIM e BCF do OpenProject" description: "Este plugin do OpenProject introduz a funcionalidade BIM e BCF." diff --git a/modules/bim/config/locales/crowdin/pt-PT.seeders.yml b/modules/bim/config/locales/crowdin/pt-PT.seeders.yml index fa7f58af58a3..9de5a7939034 100644 --- a/modules/bim/config/locales/crowdin/pt-PT.seeders.yml +++ b/modules/bim/config/locales/crowdin/pt-PT.seeders.yml @@ -2,7 +2,7 @@ #Please do not edit directly. #This file is part of the sources sent to crowdin for translation. --- -pt: +pt-PT: seeds: bim: priorities: diff --git a/modules/bim/config/locales/crowdin/pt-PT.yml b/modules/bim/config/locales/crowdin/pt-PT.yml index f24bbb2f7ef6..ce55bd40cda8 100644 --- a/modules/bim/config/locales/crowdin/pt-PT.yml +++ b/modules/bim/config/locales/crowdin/pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here for Rails i18n -pt: +pt-PT: plugin_openproject_bim: name: "Funcionalidade BIM e BCF do OpenProject" description: "Este plugin do OpenProject introduz a funcionalidade BIM e BCF." diff --git a/modules/bim/spec/seeders/root_seeder_bim_edition_spec.rb b/modules/bim/spec/seeders/root_seeder_bim_edition_spec.rb index e3605cdec9b8..6101e3095914 100644 --- a/modules/bim/spec/seeders/root_seeder_bim_edition_spec.rb +++ b/modules/bim/spec/seeders/root_seeder_bim_edition_spec.rb @@ -60,6 +60,11 @@ def group_name(reference) expect(Boards::Grid.count).to eq 2 end + it "adds the BIM module to the default_projects_modules setting" do + default_modules = Setting.find_by(name: "default_projects_modules").value + expect(default_modules).to include("bim") + end + it 'creates follows and parent-child relations' do expect(Relation.follows.count).to eq 35 expect(WorkPackage.where.not(parent: nil).count).to eq 55 @@ -210,7 +215,13 @@ def group_name(reference) before_all do with_edition('bim') do - root_seeder.seed_data! + RSpec::Mocks.with_temporary_scope do + # opportunistic way to add a test for bug #53611 without extending the testing time + allow(Settings::Definition["default_projects_modules"]) + .to receive(:writable?).and_return(false) + + root_seeder.seed_data! + end end end diff --git a/modules/boards/config/locales/crowdin/hu.yml b/modules/boards/config/locales/crowdin/hu.yml index 25315bfe4b1f..bca772f432db 100644 --- a/modules/boards/config/locales/crowdin/hu.yml +++ b/modules/boards/config/locales/crowdin/hu.yml @@ -35,5 +35,5 @@ hu: subtasks: > Tábla automatizált oszlopokkal az alelemekhez. A munkacsomagok más listákra húzása ennek megfelelően frissíti a szülőt. upsale: - teaser_text: 'Would you like to automate your workflows with Boards? Advanced boards are an Enterprise add-on. Please upgrade to a paid plan.' + teaser_text: 'Szeretné automatizálni a munkafolyamatait a Boards-szal? A fejlett táblák Enterprise funkció. Kérjük, frissítsen fizetős csomagra.' upgrade: 'Frissítés most' diff --git a/modules/boards/config/locales/crowdin/js-ms.yml b/modules/boards/config/locales/crowdin/js-ms.yml index adda4bf1a517..c1ac594abee6 100644 --- a/modules/boards/config/locales/crowdin/js-ms.yml +++ b/modules/boards/config/locales/crowdin/js-ms.yml @@ -2,85 +2,85 @@ ms: js: boards: - create_new: 'Create new board' - label_unnamed_board: 'Unnamed board' - label_unnamed_list: 'Unnamed list' - label_board_type: 'Board type' + create_new: 'Cipta board baru' + label_unnamed_board: 'Board tanpa nama' + label_unnamed_list: 'Senarai tanpa nama' + label_board_type: "Jenis board\n" upsale: teaser_text: 'Would you like to automate your workflows with Boards? Advanced boards are an Enterprise add-on. Please upgrade to a paid plan.' - upgrade: 'Upgrade now' + upgrade: 'Naik taraf sekarang' lists: - delete: 'Delete list' + delete: 'Padam senarai' version: - is_locked: 'Version is locked. No items can be added to this version.' - is_closed: 'Version is closed. No items can be added to this version.' - close_version: 'Close version' - open_version: 'Open version' - lock_version: 'Lock version' - unlock_version: 'Unlock version' - edit_version: 'Edit version' - show_version: 'Show version' - locked: 'Locked' - closed: 'Closed' - new_board: 'New board' - add_list: 'Add list to board' - add_card: 'Add card' - error_attribute_not_writable: "Cannot move the work package, %{attribute} is not writable." - error_loading_the_list: "Error loading the list: %{error_message}" - error_permission_missing: "The permission to create public queries is missing" - error_cannot_move_into_self: "You can not move a work package into its own column." - text_hidden_list_warning: "Not all lists are displayed because you lack the permission. Contact your admin for more information." - click_to_remove_list: "Click to remove this list" + is_locked: 'Versi ini dikunci. Tiada item yang dapat ditambah kedalam versi ini.' + is_closed: 'Versi ini ditutup. Tiada item yang dapat ditambah kedalam versi ini.' + close_version: 'Versi tertutup' + open_version: 'Versi terbuka' + lock_version: 'Versi terkunci' + unlock_version: 'Versi dibuka' + edit_version: 'Versi edit' + show_version: 'Papar versi' + locked: 'Terkunci' + closed: 'Ditutup' + new_board: 'Papan baru' + add_list: 'Tambah senarai ke board' + add_card: 'Tambah kad' + error_attribute_not_writable: "Pakej kerja tidak boleh digerakkan, %{attribute} tidak boleh ditulis." + error_loading_the_list: "Ralat memuat senarai: %{error_message}" + error_permission_missing: "Kebenaran untuk membuat pertanyaan awam tidak wujud" + error_cannot_move_into_self: "Anda tidak boleh memindahkan pakej kerja ke dalam lajur sendiri." + text_hidden_list_warning: "Tidak semua senarai dipaparkan kerana anda tidak mempunyai kebenaran. Hubungi pengurus anda untut maklumat lanjut." + click_to_remove_list: "Klik untuk hapuskan senarai ini" board_type: - text: 'Board type' - free: 'basic' - select_board_type: 'Please choose the type of board you need.' + text: "Jenis board\n" + free: "asas\n" + select_board_type: 'Sila pilih jenis board yang anda perlukan.' free_text: > - Start from scratch with a blank board. Manually add cards and columns to this board. - action: 'Action board' - action_by_attribute: 'Action board (%{attribute})' + Bermula dari awal dengan board yang kosong. Tambah kad dan lajur kepada board ini secara manual. + action: 'Board tindakan' + action_by_attribute: 'Board tindakan (%{attribute})' action_text: > - A board with filtered lists on %{attribute} attribute. Moving work packages to other lists will update their attribute. + Board dengan senarai yang disaring di atribut %{attribute}. Pemindahan pakej kerja ke senarai lain akan mengemas kini atribut mereka. action_text_subprojects: > - Board with automated columns for subprojects. Dragging work packages to other lists updates the (sub-)project accordingly. + Board dengan kolum automatik untuk subprojek. Menarik pakej kerja ke senarai lain akan mengemas kini (sub-)projek sewajarnya. action_text_subtasks: > - Board with automated columns for sub-elements. Dragging work packages to other lists updates the parent accordingly. + Board dengan kolum automatik untuk sub-elements. Menarik pakej kerja ke senarai lain akan mengemas kini (sub-)projek sewajarnya. action_text_status: > - Basic kanban style board with columns for status such as To Do, In Progress, Done. + Board gaya kanban asas dengan kolum untuk status seperti Untuk Dilakukan, Dalam Pelaksanaan, Selesai. action_text_assignee: > - Board with automated columns based on assigned users. Ideal for dispatching work packages. + Board dengan kolum automatik berdasarkan pengguna yang ditentukan. Ideal untuk penghantaran pakej kerja. action_text_version: > - Board with automated columns based on the version attribute. Ideal for planning product development. + Board dengan kolum automatik berdasarkan versi atribut. Ideal untuk merancang pembangunan produk. action_type: - assignee: assignee + assignee: wakil status: status - version: version - subproject: subproject - subtasks: parent-child + version: versi + subproject: subprojek + subtasks: ibu bapa-anak board_type_title: - assignee: Assignee + assignee: Wakil status: Status - version: Version - subproject: Subproject + version: Versi + subproject: Subprojek subtasks: Parent-child - basic: Basic - select_attribute: "Action attribute" + basic: "Asas\n" + select_attribute: "Atribut tindakan" add_list_modal: labels: - assignee: Select user to add as a new assignee list - status: Select status to add as a new list - version: Select version to add as a new list - subproject: Select subproject to add as a new list - subtasks: Select work package to add as a new list + assignee: Pilih pengguna untuk ditambah sebagai senarai wakil baru + status: Pilih status untuk ditambah sebagai senarai baru + version: Pilih versi untuk ditambah sebagai senarai baru + subproject: Pilih subprojek untuk ditambah sebagai senarai baru + subtasks: Pilih pakej kerja untuk ditambah sebagai senarai baru warning: status: | - There is currently no status available.
- Either there are none or they have all already been added to the board. - assignee: There isn't any member matched with your filter value.
- no_member: This project currently does not have any members that can be added.
- add_members: Add a new member to this project to select users again. + Tiada status yang tersedia pada masa ini.
+ Sama ada sudah tiada atau semua sudah ditambah ke board. + assignee: Tiada ahli yang sepadan dengan nilai penyaringan anda.
+ no_member: Projek ini tidak mempunyai ahli yang boleh ditambah masa ini.
+ add_members: Tambah ahli baru ke projek ini untuk pilih pengguna lagi. configuration_modal: title: 'Configure this board' display_settings: - card_mode: "Display as cards" - table_mode: "Display as table" + card_mode: "Paparkan sebagai kad" + table_mode: "Paparkan sebagai jadual" diff --git a/modules/boards/config/locales/crowdin/js-pt-BR.yml b/modules/boards/config/locales/crowdin/js-pt-BR.yml index b316762e5133..aa4e60e5ce6b 100644 --- a/modules/boards/config/locales/crowdin/js-pt-BR.yml +++ b/modules/boards/config/locales/crowdin/js-pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-BR: js: boards: create_new: 'Criar novo quadro' diff --git a/modules/boards/config/locales/crowdin/js-pt-PT.yml b/modules/boards/config/locales/crowdin/js-pt-PT.yml index bc9108070da1..d447f2d2081c 100644 --- a/modules/boards/config/locales/crowdin/js-pt-PT.yml +++ b/modules/boards/config/locales/crowdin/js-pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-PT: js: boards: create_new: 'Criar novo quadro' diff --git a/modules/boards/config/locales/crowdin/ms.yml b/modules/boards/config/locales/crowdin/ms.yml index 2f209dd4364d..b2e8a041615e 100644 --- a/modules/boards/config/locales/crowdin/ms.yml +++ b/modules/boards/config/locales/crowdin/ms.yml @@ -3,37 +3,37 @@ ms: plugin_openproject_boards: name: "OpenProject Boards" description: "Provides board views." - permission_show_board_views: "View boards" - permission_manage_board_views: "Manage boards" - project_module_board_view: "Boards" + permission_show_board_views: "Paparkan papan" + permission_manage_board_views: "Urus board" + project_module_board_view: "Board" boards: label_board: "Board" - label_boards: "Boards" - label_create_new_board: "Create new board" - label_board_type: "Board type" + label_boards: "Board" + label_create_new_board: "Cipta board baru" + label_board_type: "Jenis board" board_types: - free: Basic - action: "Action board (%{attribute})" + free: "Asas\n" + action: "Board tindakan (%{attribute})" board_type_attributes: - assignee: Assignee + assignee: Wakil status: Status - version: Version - subproject: Subproject - subtasks: Parent-child - basic: Basic + version: Versi + subproject: Subprojek + subtasks: Ibu bapa-anak + basic: "Asas\n" board_type_descriptions: basic: > - Start from scratch with a blank board. Manually add cards and columns to this board. + Bermula dari awal dengan board kosong. Tambah kad dan kolum secara manual kepada board ini. status: > - Basic kanban style board with columns for status such as To Do, In Progress, Done. + Board gaya kanban asas dengan kolum untuk status seperti Untuk Dilakukan, Dalam Pelaksanaan, Selesai. assignee: > - Board with automated columns based on assigned users. Ideal for dispatching work packages. + Board dengan kolum automatik berdasarkan pengguna yang ditentukan. Ideal untuk penghantaran pakej kerja. version: > - Board with automated columns based on the version attribute. Ideal for planning product development. + Board dengan kolum automatik berdasarkan versi atribut. Ideal untuk merancang pembangunan produk. subproject: > - Board with automated columns for subprojects. Dragging work packages to other lists updates the (sub-)project accordingly. + Board dengan kolum automatik untuk subprojek. Menarik pakej kerja ke senarai lain akan mengemas kini (sub-)projek sewajarnya. subtasks: > - Board with automated columns for sub-elements. Dragging work packages to other lists updates the parent accordingly. + Board dengan kolum automatik untuk sub-elements. Menarik pakej kerja ke senarai lain akan mengemas kini (sub-)projek sewajarnya. upsale: teaser_text: 'Would you like to automate your workflows with Boards? Advanced boards are an Enterprise add-on. Please upgrade to a paid plan.' - upgrade: 'Upgrade now' + upgrade: 'Naik taraf sekarang' diff --git a/modules/boards/config/locales/crowdin/pt-BR.seeders.yml b/modules/boards/config/locales/crowdin/pt-BR.seeders.yml index e4bdb243507c..d180fdf67bfc 100644 --- a/modules/boards/config/locales/crowdin/pt-BR.seeders.yml +++ b/modules/boards/config/locales/crowdin/pt-BR.seeders.yml @@ -5,4 +5,4 @@ #located in the modules directories are needed to have crowdin cli correctly #compute the path to the uploaded source file. #This file does not contain any i18n strings. -pt: +pt-BR: diff --git a/modules/boards/config/locales/crowdin/pt-BR.yml b/modules/boards/config/locales/crowdin/pt-BR.yml index 487980ca1315..0149cc4ef9ec 100644 --- a/modules/boards/config/locales/crowdin/pt-BR.yml +++ b/modules/boards/config/locales/crowdin/pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-BR: plugin_openproject_boards: name: "Quadros do OpenProject" description: "Fornece visualizações do quadro." diff --git a/modules/boards/config/locales/crowdin/pt-PT.seeders.yml b/modules/boards/config/locales/crowdin/pt-PT.seeders.yml index e4bdb243507c..bdd962ed457a 100644 --- a/modules/boards/config/locales/crowdin/pt-PT.seeders.yml +++ b/modules/boards/config/locales/crowdin/pt-PT.seeders.yml @@ -5,4 +5,4 @@ #located in the modules directories are needed to have crowdin cli correctly #compute the path to the uploaded source file. #This file does not contain any i18n strings. -pt: +pt-PT: diff --git a/modules/boards/config/locales/crowdin/pt-PT.yml b/modules/boards/config/locales/crowdin/pt-PT.yml index 5bfefefb0647..45805106c57c 100644 --- a/modules/boards/config/locales/crowdin/pt-PT.yml +++ b/modules/boards/config/locales/crowdin/pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-PT: plugin_openproject_boards: name: "Quadros do OpenProject" description: "Fornece vistas do quadro." diff --git a/modules/boards/lib/open_project/boards/patches/setting_seeder_patch.rb b/modules/boards/lib/open_project/boards/patches/setting_seeder_patch.rb index 61f63c826c02..89b9c47a6ddb 100644 --- a/modules/boards/lib/open_project/boards/patches/setting_seeder_patch.rb +++ b/modules/boards/lib/open_project/boards/patches/setting_seeder_patch.rb @@ -35,7 +35,7 @@ module InstanceMethods def data original_data = super - unless original_data['default_projects_modules'].include? 'board_view' + if original_data['default_projects_modules']&.exclude? 'board_view' original_data['default_projects_modules'] << 'board_view' end diff --git a/modules/budgets/config/locales/crowdin/js-ms.yml b/modules/budgets/config/locales/crowdin/js-ms.yml index 84e758bfa94c..e9634ba74563 100644 --- a/modules/budgets/config/locales/crowdin/js-ms.yml +++ b/modules/budgets/config/locales/crowdin/js-ms.yml @@ -23,4 +23,4 @@ ms: js: work_packages: properties: - costObject: "Budget" + costObject: "Anggaran" diff --git a/modules/budgets/config/locales/crowdin/js-pt-BR.yml b/modules/budgets/config/locales/crowdin/js-pt-BR.yml index b61d8f714f35..d821c6ce69c5 100644 --- a/modules/budgets/config/locales/crowdin/js-pt-BR.yml +++ b/modules/budgets/config/locales/crowdin/js-pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: js: work_packages: properties: diff --git a/modules/budgets/config/locales/crowdin/js-pt-PT.yml b/modules/budgets/config/locales/crowdin/js-pt-PT.yml index b61d8f714f35..c5a75d8a6e1e 100644 --- a/modules/budgets/config/locales/crowdin/js-pt-PT.yml +++ b/modules/budgets/config/locales/crowdin/js-pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: js: work_packages: properties: diff --git a/modules/budgets/config/locales/crowdin/ms.yml b/modules/budgets/config/locales/crowdin/ms.yml index 1d0c6e80df10..d4ceeae878a2 100644 --- a/modules/budgets/config/locales/crowdin/ms.yml +++ b/modules/budgets/config/locales/crowdin/ms.yml @@ -34,8 +34,8 @@ ms: status: "Status" subject: "Subjek" type: "Jenis kos" - labor_budget: "Planned labor costs" - material_budget: "Planned unit costs" + labor_budget: "Kos buruh terancang" + material_budget: "Kos unit yang dirancang" work_package: budget_subject: "Tajuk anggaran" models: @@ -46,33 +46,33 @@ ms: budget: "Anggaran" attributes: budget: "Anggaran" - button_add_budget_item: "Add planned costs" - button_add_budget: "Add budget" - button_add_cost_type: "Add cost type" - button_cancel_edit_budget: "Cancel editing budget" - button_cancel_edit_costs: "Cancel editing costs" + button_add_budget_item: "Tambah kos yang dirancang" + button_add_budget: "Tambah anggaran" + button_add_cost_type: "Tambah jenis kos" + button_cancel_edit_budget: "Batalkan anggaran penyuntingan" + button_cancel_edit_costs: "Batalkan kos penyuntingan" caption_labor: "Buruh" caption_labor_costs: "Kos buruh sebenar" caption_material_costs: "Kos unit sebenar" - budgets_title: "Budgets" + budgets_title: "Anggaran" events: - budget: "Budget edited" - help_click_to_edit: "Click here to edit." - help_currency_format: "Format of displayed currency values. %n is replaced with the currency value, %u ist replaced with the currency unit." - help_override_rate: "Enter a value here to override the default rate." - label_budget: "Budget" - label_budget_new: "New budget" - label_budget_plural: "Budgets" - label_budget_id: "Budget #%{id}" - label_deliverable: "Budget" + budget: "Anggaran yang diedit" + help_click_to_edit: "Klik di sini untuk mengedit" + help_currency_format: "Format nilai mata wang yang dipaparkan. %n diganti dengan nilai mata wang, %u diganti dengan unit mata wang." + help_override_rate: "Masukkan nilai disini untuk gantikan kadar default." + label_budget: "Anggaran" + label_budget_new: "Anggaran baru" + label_budget_plural: "Anggaran" + label_budget_id: "Anggaran #%{id}" + label_deliverable: "Anggaran" label_example_placeholder: 'e.g., %{decimal}' - label_view_all_budgets: "View all budgets" - label_yes: "Yes" + label_view_all_budgets: "Paparkan semua anggaran" + label_yes: "Ya" notice_budget_conflict: "Work packages must be of the same project." - notice_no_budgets_available: "No budgets available." - permission_edit_budgets: "Edit budgets" - permission_view_budgets: "View budgets" - project_module_budgets: "Budgets" - text_budget_reassign_to: "Reassign them to this budget:" - text_budget_delete: "Delete the budget from all work packages" - text_budget_destroy_assigned_wp: "There are %{count} work packages assigned to this budget. What do you want to do?" + notice_no_budgets_available: "Tiada bajet yang tersedia." + permission_edit_budgets: "Edit bajet" + permission_view_budgets: "Paparkan anggaran" + project_module_budgets: "Anggaran" + text_budget_reassign_to: "Pindahkan mereka ke anggaran ini:" + text_budget_delete: "Padam anggaran dari semua pakej kerja" + text_budget_destroy_assigned_wp: "Terdapat %{count} pakej kerja ditugaskan untuk anggaran ini. Apa yang anda ingin lakukan?" diff --git a/modules/budgets/config/locales/crowdin/pt-BR.yml b/modules/budgets/config/locales/crowdin/pt-BR.yml index 2ff55be55ffb..6dac6a7faae0 100644 --- a/modules/budgets/config/locales/crowdin/pt-BR.yml +++ b/modules/budgets/config/locales/crowdin/pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: plugin_budgets_engine: name: 'Orçamentos' activerecord: diff --git a/modules/budgets/config/locales/crowdin/pt-PT.yml b/modules/budgets/config/locales/crowdin/pt-PT.yml index 90e2d6642b4e..1b4ced7bc577 100644 --- a/modules/budgets/config/locales/crowdin/pt-PT.yml +++ b/modules/budgets/config/locales/crowdin/pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: plugin_budgets_engine: name: 'Orçamentos' activerecord: diff --git a/modules/calendar/config/locales/crowdin/hu.yml b/modules/calendar/config/locales/crowdin/hu.yml index 5ce8ee12e575..b6e857068d17 100644 --- a/modules/calendar/config/locales/crowdin/hu.yml +++ b/modules/calendar/config/locales/crowdin/hu.yml @@ -4,9 +4,9 @@ hu: name: "OpenProject Calendar" description: "Provides calendar views." label_calendar: "Naptár" - label_calendar_plural: "Naptárak" - label_new_calendar: "New calendar" - permission_view_calendar: "Naptárak megtekintése" - permission_manage_calendars: "Naptárak kezelése" - permission_share_calendars: "Subscribe to iCalendars" + label_calendar_plural: "Naptár" + label_new_calendar: "Új esemény" + permission_view_calendar: "Naptár bejegyzések megtekintése" + permission_manage_calendars: "Naptár kezelés" + permission_share_calendars: "Feliratkozás az iCalendars-ra" project_module_calendar_view: "Naptárak" diff --git a/modules/calendar/config/locales/crowdin/js-hu.yml b/modules/calendar/config/locales/crowdin/js-hu.yml index 4970b7e3381a..73cf2edc1572 100644 --- a/modules/calendar/config/locales/crowdin/js-hu.yml +++ b/modules/calendar/config/locales/crowdin/js-hu.yml @@ -4,5 +4,5 @@ hu: calendar: create_new: 'Új naptár létrehozása' title: 'Naptár' - too_many: 'Összesen %{count} munkacsomag van, de csak %{max} jeleníthető meg.' + too_many: 'Összesen %{százalék_szám} munkacsomag van, de csak %{maximum} jeleníthető meg.' unsaved_title: 'Névtelen naptár' diff --git a/modules/calendar/config/locales/crowdin/js-ms.yml b/modules/calendar/config/locales/crowdin/js-ms.yml index 05b67ba8a855..716f3327511b 100644 --- a/modules/calendar/config/locales/crowdin/js-ms.yml +++ b/modules/calendar/config/locales/crowdin/js-ms.yml @@ -2,7 +2,7 @@ ms: js: calendar: - create_new: 'Create new calendar' - title: 'Calendar' - too_many: 'There are %{count} work packages in total, but only %{max} can be shown.' - unsaved_title: 'Unnamed calendar' + create_new: 'Cipta kalendar baru' + title: 'Kalendar' + too_many: 'Terdapat %{count} pakej kerja secara keseluruhan, tetapi hanya %{max} sahaja yang boleh ditunjukkan.' + unsaved_title: 'Kalendar tanpa nama' diff --git a/modules/calendar/config/locales/crowdin/js-pt-BR.yml b/modules/calendar/config/locales/crowdin/js-pt-BR.yml index 5b6274d63a34..ad51db24e136 100644 --- a/modules/calendar/config/locales/crowdin/js-pt-BR.yml +++ b/modules/calendar/config/locales/crowdin/js-pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-BR: js: calendar: create_new: 'Criar novo calendário' diff --git a/modules/calendar/config/locales/crowdin/js-pt-PT.yml b/modules/calendar/config/locales/crowdin/js-pt-PT.yml index a6e21759e651..84b80223c2fa 100644 --- a/modules/calendar/config/locales/crowdin/js-pt-PT.yml +++ b/modules/calendar/config/locales/crowdin/js-pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-PT: js: calendar: create_new: 'Criar novo calendário' diff --git a/modules/calendar/config/locales/crowdin/ms.yml b/modules/calendar/config/locales/crowdin/ms.yml index 8dc600757562..cacbbff306eb 100644 --- a/modules/calendar/config/locales/crowdin/ms.yml +++ b/modules/calendar/config/locales/crowdin/ms.yml @@ -4,9 +4,9 @@ ms: name: "OpenProject Calendar" description: "Provides calendar views." label_calendar: "Calendar" - label_calendar_plural: "Calendars" - label_new_calendar: "New calendar" - permission_view_calendar: "View calendars" - permission_manage_calendars: "Manage calendars" - permission_share_calendars: "Subscribe to iCalendars" - project_module_calendar_view: "Calendars" + label_calendar_plural: "Kalendar" + label_new_calendar: "Kalendar baru" + permission_view_calendar: "Lihat kalendar" + permission_manage_calendars: "Urus kalendar" + permission_share_calendars: "Langgan ke iCalendars" + project_module_calendar_view: "Kalendar" diff --git a/modules/calendar/config/locales/crowdin/pt-BR.yml b/modules/calendar/config/locales/crowdin/pt-BR.yml index ffc1a019908a..e434cc6516a4 100644 --- a/modules/calendar/config/locales/crowdin/pt-BR.yml +++ b/modules/calendar/config/locales/crowdin/pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-BR: plugin_openproject_calendar: name: "Calendário OpenProject" description: "Fornece visualizações do calendário." diff --git a/modules/calendar/config/locales/crowdin/pt-PT.yml b/modules/calendar/config/locales/crowdin/pt-PT.yml index 8806bbabe1cf..2ce4bfac061f 100644 --- a/modules/calendar/config/locales/crowdin/pt-PT.yml +++ b/modules/calendar/config/locales/crowdin/pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-PT: plugin_openproject_calendar: name: "Calendário OpenProject" description: "Fornece visualizações do calendário." diff --git a/modules/costs/config/locales/crowdin/hu.yml b/modules/costs/config/locales/crowdin/hu.yml index 72ac4c3d60be..7801700ffd6b 100644 --- a/modules/costs/config/locales/crowdin/hu.yml +++ b/modules/costs/config/locales/crowdin/hu.yml @@ -34,7 +34,7 @@ hu: unit: "Egység neve" unit_plural: "Többes számú egység neve" work_package: - costs_by_type: "Elköltött egység" + costs_by_type: "Elhasznált egységek" labor_costs: "Munkaerő költségek" material_costs: "Egység költségek" overall_costs: "Összes költség" @@ -104,7 +104,7 @@ hu: label_work_package_filter_add: "Munkacsomag szűrő hozzáadása" label_kind: "Típus" label_less_or_equal: "<=" - label_log_costs: "Költségek naplózása" + label_log_costs: "Naplózott költségek" label_no: "Nem" label_option_plural: "Beállítások" label_overall_costs: "Összes költség" diff --git a/modules/costs/config/locales/crowdin/js-ms.yml b/modules/costs/config/locales/crowdin/js-ms.yml index 186e0ad5a74e..6bd817b684e5 100644 --- a/modules/costs/config/locales/crowdin/js-ms.yml +++ b/modules/costs/config/locales/crowdin/js-ms.yml @@ -23,10 +23,10 @@ ms: js: work_packages: property_groups: - costs: "Costs" + costs: "Kos" properties: - overallCosts: "Overall costs" - spentUnits: "Spent units" - button_log_costs: "Log unit costs" - label_hour: "hour" - label_hours: "hours" + overallCosts: "Kos keseluruhan" + spentUnits: "Unit yang dibelanjakan" + button_log_costs: "Log kos unit" + label_hour: "jam" + label_hours: "jam" diff --git a/modules/costs/config/locales/crowdin/js-pt-BR.yml b/modules/costs/config/locales/crowdin/js-pt-BR.yml index 546b2d01fba3..b082a46b6d16 100644 --- a/modules/costs/config/locales/crowdin/js-pt-BR.yml +++ b/modules/costs/config/locales/crowdin/js-pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: js: work_packages: property_groups: diff --git a/modules/costs/config/locales/crowdin/js-pt-PT.yml b/modules/costs/config/locales/crowdin/js-pt-PT.yml index 3294144067d6..8498784808e7 100644 --- a/modules/costs/config/locales/crowdin/js-pt-PT.yml +++ b/modules/costs/config/locales/crowdin/js-pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: js: work_packages: property_groups: diff --git a/modules/costs/config/locales/crowdin/ms.yml b/modules/costs/config/locales/crowdin/ms.yml index 4d70b20a5001..a38756aa586b 100644 --- a/modules/costs/config/locales/crowdin/ms.yml +++ b/modules/costs/config/locales/crowdin/ms.yml @@ -26,119 +26,119 @@ ms: activerecord: attributes: cost_entry: - work_package: "Work package" - overridden_costs: "Overridden costs" - spent: "Spent" - spent_on: "Date" + work_package: "Pakej kerja" + overridden_costs: "Kos yang tertindih" + spent: "Dibelanja" + spent_on: "Tarikh" cost_type: - unit: "Unit name" - unit_plural: "Pluralized unit name" + unit: "Nama unit" + unit_plural: "Nama majmuk unit" work_package: - costs_by_type: "Spent units" - labor_costs: "Labor costs" - material_costs: "Unit costs" - overall_costs: "Overall costs" - spent_costs: "Spent costs" - spent_units: "Spent units" + costs_by_type: "Unit yang dibelanjakan" + labor_costs: "Kos buruh" + material_costs: "Kos Unit" + overall_costs: "Kos keseluruhan" + spent_costs: "Kos yang dibelanjakan" + spent_units: "Unit yang dibelanjakan" rate: - rate: "Rate" + rate: "Kadar" user: - default_rates: "Default rates" + default_rates: "Kadar default" models: cost_type: - other: "Cost types" - rate: "Rate" + other: "Jenis kos" + rate: "Kadar" errors: models: work_package: - is_not_a_valid_target_for_cost_entries: "Work package #%{id} is not a valid target for reassigning the cost entries." - nullify_is_not_valid_for_cost_entries: "Cost entries can not be assigned to a project." + is_not_a_valid_target_for_cost_entries: "Pakej kerja #%{id} bukan sasaran yang sah untuk penukaran kos entri." + nullify_is_not_valid_for_cost_entries: "Kos entri tidak dapat ditugaskan ke sebuah projek." attributes: - comment: "Comment" - cost_type: "Cost type" - costs: "Costs" - current_rate: "Current rate" - hours: "Hours" - units: "Units" - valid_from: "Valid from" - fixed_date: "Fixed date" - button_add_rate: "Add rate" - button_log_costs: "Log unit costs" - caption_booked_on_project: "Booked on project" + comment: "Komen" + cost_type: "Jenis kos" + costs: "Kos" + current_rate: "Kadar semasa" + hours: "Jam" + units: "Unit" + valid_from: "Sah dari" + fixed_date: "Tarikh tetap" + button_add_rate: "Tambah kadar" + button_log_costs: "Log kos unit" + caption_booked_on_project: "Ditempah pada projek" caption_default: "Default" - caption_default_rate_history_for: "Default rate history for %{user}" - caption_locked_on: "Locked on" - caption_materials: "Units" - caption_rate_history: "Rate history" - caption_rate_history_for: "Rate history for %{user}" - caption_rate_history_for_project: "Rate history for %{user} in project %{project}" - caption_save_rate: "Save rate" - caption_set_rate: "Set current rate" - caption_show_locked: "Show locked types" - description_date_for_new_rate: "Date for new rate" - group_by_others: "not in any group" - label_between: "between" - label_cost_filter_add: "Add cost entry filter" - label_costlog: "Logged unit costs" - label_cost_plural: "Costs" - label_cost_type_plural: "Cost types" - label_cost_type_specific: "Cost type #%{id}: %{name}" - label_costs_per_page: "Costs per page" - label_currency: "Currency" - label_currency_format: "Format of currency" - label_current_default_rate: "Current default rate" - label_date_on: "on" - label_deleted_cost_types: "Deleted cost types" - label_locked_cost_types: "Locked cost types" - label_display_cost_entries: "Display unit costs" - label_display_time_entries: "Display reported hours" - label_display_types: "Display types" + caption_default_rate_history_for: "Sejarah kadar default untuk %{user}" + caption_locked_on: "Terkunci pada" + caption_materials: "Unit" + caption_rate_history: "Sejarah kadar" + caption_rate_history_for: "Sejarah kadar untuk %{user}" + caption_rate_history_for_project: "Sejarah kadar untuk %{user} dalam projek %{project}" + caption_save_rate: "Kadar simpanan" + caption_set_rate: "Tetapkan kadar semasa" + caption_show_locked: "Papar jenis terkunci" + description_date_for_new_rate: "Tarikh untuk kadar baru" + group_by_others: "tiada dalam mana-mana kumpulan" + label_between: "antara" + label_cost_filter_add: "Tambah saringan kos entri" + label_costlog: "Kos unit yang sudah dilog" + label_cost_plural: "Kos" + label_cost_type_plural: "Jenis kos" + label_cost_type_specific: "Jenis kos #%{id}: %{name}" + label_costs_per_page: "Kos setiap halaman" + label_currency: "Mata Wang" + label_currency_format: "Format mata wang" + label_current_default_rate: "Kadar default semasa" + label_date_on: "pada" + label_deleted_cost_types: "Jenis kos yang dipadam" + label_locked_cost_types: "Jenis kos yang dikunci" + label_display_cost_entries: "Papar kos unit" + label_display_time_entries: "Paparkan jam yang dilaporkan" + label_display_types: "Jenis display" label_edit: "Edit" - label_generic_user: "Generic user" + label_generic_user: "Pengguna umum" label_greater_or_equal: ">=" - label_group_by: "Group by" - label_group_by_add: "Add grouping field" - label_hourly_rate: "Hourly rate" - label_include_deleted: "Include deleted" - label_work_package_filter_add: "Add work package filter" - label_kind: "Type" + label_group_by: "Kumpulkan mengikut" + label_group_by_add: "Tambahkan medan kumpulan" + label_hourly_rate: "Kadar jam" + label_include_deleted: "Sertakan yang dipadam" + label_work_package_filter_add: "Tambah saringan pakej kerja" + label_kind: "Jenis" label_less_or_equal: "<=" - label_log_costs: "Log unit costs" - label_no: "No" - label_option_plural: "Options" - label_overall_costs: "Overall costs" - label_rate: "Rate" - label_rate_plural: "Rates" - label_status_finished: "Finished" - label_units: "Cost units" - label_user: "User" - label_until: "until" - label_valid_from: "Valid from" - label_yes: "Yes" - notice_something_wrong: "Something went wrong. Please try again." - notice_successful_restore: "Successful restore." - notice_successful_lock: "Locked successfully." - notice_cost_logged_successfully: 'Unit cost logged successfully.' - permission_edit_cost_entries: "Edit booked unit costs" - permission_edit_own_cost_entries: "Edit own booked unit costs" - permission_edit_hourly_rates: "Edit hourly rates" - permission_edit_own_hourly_rate: "Edit own hourly rates" - permission_edit_rates: "Edit rates" - permission_log_costs: "Book unit costs" - permission_log_own_costs: "Book unit costs for oneself" - permission_view_cost_entries: "View booked costs" - permission_view_cost_rates: "View cost rates" - permission_view_hourly_rates: "View all hourly rates" - permission_view_own_cost_entries: "View own booked costs" - permission_view_own_hourly_rate: "View own hourly rate" - permission_view_own_time_entries: "View own spent time" - project_module_costs: "Time and costs" - text_assign_time_and_cost_entries_to_project: "Assign reported hours and costs to the project" - text_destroy_cost_entries_question: "%{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" - text_destroy_time_and_cost_entries: "Delete reported hours and costs" - text_destroy_time_and_cost_entries_question: "%{hours} hours, %{cost_entries} were reported on the work packages you are about to delete. What do you want to do ?" - text_reassign_time_and_cost_entries: "Reassign reported hours and costs to this work package:" - text_warning_hidden_elements: "Some entries may have been excluded from the aggregation." - week: "week" + label_log_costs: "Log kos unit" + label_no: "Tidak" + label_option_plural: "Pilihan" + label_overall_costs: "Kos keseluruhan" + label_rate: "Kadar" + label_rate_plural: "Kadar" + label_status_finished: "Selesai" + label_units: "Unit kos" + label_user: "Pengguna" + label_until: "sehingga\n" + label_valid_from: "Sah dari" + label_yes: "Ya" + notice_something_wrong: "Ada ralat berlaku. Sila cuba lagi." + notice_successful_restore: "Pemulihan berjaya." + notice_successful_lock: "Berjaya dikunci." + notice_cost_logged_successfully: 'Unit kos berjaya dilog.' + permission_edit_cost_entries: "Edit kos unit yang ditempah" + permission_edit_own_cost_entries: "Edit kos unit yang ditempah sendiri" + permission_edit_hourly_rates: "Edit kadar jam" + permission_edit_own_hourly_rate: "Edit kadar jam sendiri" + permission_edit_rates: "Edit kadar" + permission_log_costs: "Tempah kos unit" + permission_log_own_costs: "Tempah kos unit untuk diri sendiri" + permission_view_cost_entries: "Papar kos yang ditempah" + permission_view_cost_rates: "Papar kadar kos" + permission_view_hourly_rates: "Papar semua kadar jam" + permission_view_own_cost_entries: "Papar kos yang ditempah sendiri" + permission_view_own_hourly_rate: "Papar kadar jam sendiri" + permission_view_own_time_entries: "Papar masa yang digunakan sendiri" + project_module_costs: "Masa dan kos" + text_assign_time_and_cost_entries_to_project: "Tetapkan jam dilaporkan dan kos kepada projek" + text_destroy_cost_entries_question: "%{cost_entries} dilaporkan pada pakej kerja yang anda akan padamkan. Apakah yang anda ingin lakukan ?" + text_destroy_time_and_cost_entries: "Padam jam dilaporkan dan kos" + text_destroy_time_and_cost_entries_question: "%{hours} jam, %{cost_entries} dilaporkan pada pakej kerja yang anda akan padamkan. Apakah yang anda ingin lakukan ?" + text_reassign_time_and_cost_entries: "Tetapkan semula jam dilaporkan dan kos kepada projek" + text_warning_hidden_elements: "Beberapa entri mungkin telah dikecualikan daripada pengumpulan." + week: "minggu" js: - text_are_you_sure: "Are you sure?" + text_are_you_sure: "Adakah anda pasti?" diff --git a/modules/costs/config/locales/crowdin/pt-BR.yml b/modules/costs/config/locales/crowdin/pt-BR.yml index fe5298744da6..b4ec08e3065f 100644 --- a/modules/costs/config/locales/crowdin/pt-BR.yml +++ b/modules/costs/config/locales/crowdin/pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: plugin_costs: name: "Tempo e custos" description: "Este módulo acrescenta recursos para planejar e monitorar os custos dos projetos." diff --git a/modules/costs/config/locales/crowdin/pt-PT.yml b/modules/costs/config/locales/crowdin/pt-PT.yml index c4d939811e42..e3e3eb6fa74f 100644 --- a/modules/costs/config/locales/crowdin/pt-PT.yml +++ b/modules/costs/config/locales/crowdin/pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: plugin_costs: name: "Tempo e custos" description: "Este módulo acrescenta funcionalidades para planear e acompanhar os custos dos projetos." diff --git a/modules/costs/config/locales/crowdin/zh-TW.yml b/modules/costs/config/locales/crowdin/zh-TW.yml index b9842091a8e6..b22e03c7c0ba 100644 --- a/modules/costs/config/locales/crowdin/zh-TW.yml +++ b/modules/costs/config/locales/crowdin/zh-TW.yml @@ -32,7 +32,7 @@ zh-TW: spent_on: "日期" cost_type: unit: "單位名稱" - unit_plural: "複數單位名稱" + unit_plural: "單位名稱(複數)" work_package: costs_by_type: "支出單位" labor_costs: "工資" @@ -97,7 +97,7 @@ zh-TW: label_generic_user: "一般使用者" label_greater_or_equal: ">=" label_group_by: "分組依據" - label_group_by_add: "新增依「群組」" + label_group_by_add: "增加群組欄位" label_hourly_rate: "小時費率" label_include_deleted: "包含已刪除的" label_work_package_filter_add: "新增工作項目篩選條件" diff --git a/modules/costs/lib/costs/patches/setting_seeder_patch.rb b/modules/costs/lib/costs/patches/setting_seeder_patch.rb index bd0f29a5f59d..d6ad8877ebf5 100644 --- a/modules/costs/lib/costs/patches/setting_seeder_patch.rb +++ b/modules/costs/lib/costs/patches/setting_seeder_patch.rb @@ -35,7 +35,7 @@ module InstanceMethods def data original_data = super - unless original_data['default_projects_modules'].include? 'costs' + if original_data['default_projects_modules']&.exclude? 'costs' original_data['default_projects_modules'] << 'costs' end diff --git a/modules/dashboards/config/locales/crowdin/js-ms.yml b/modules/dashboards/config/locales/crowdin/js-ms.yml index dd14417a0d8e..bdeac21aca9d 100644 --- a/modules/dashboards/config/locales/crowdin/js-ms.yml +++ b/modules/dashboards/config/locales/crowdin/js-ms.yml @@ -1,4 +1,4 @@ ms: js: dashboards: - label: 'Dashboard' + label: 'Papan Pemuka' diff --git a/modules/dashboards/config/locales/crowdin/js-pt-BR.yml b/modules/dashboards/config/locales/crowdin/js-pt-BR.yml index 4ab0b6b573fe..9aafff8e6417 100644 --- a/modules/dashboards/config/locales/crowdin/js-pt-BR.yml +++ b/modules/dashboards/config/locales/crowdin/js-pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: js: dashboards: label: 'Painel' diff --git a/modules/dashboards/config/locales/crowdin/js-pt-PT.yml b/modules/dashboards/config/locales/crowdin/js-pt-PT.yml index f390c59ac102..862ac47440ef 100644 --- a/modules/dashboards/config/locales/crowdin/js-pt-PT.yml +++ b/modules/dashboards/config/locales/crowdin/js-pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: js: dashboards: label: 'Painel de Controlo' diff --git a/modules/dashboards/config/locales/crowdin/ms.yml b/modules/dashboards/config/locales/crowdin/ms.yml index 39e9fb91d90e..aa7bc373532e 100644 --- a/modules/dashboards/config/locales/crowdin/ms.yml +++ b/modules/dashboards/config/locales/crowdin/ms.yml @@ -1,4 +1,4 @@ ms: dashboards: - label: 'Dashboards' - project_module_dashboards: 'Dashboards' + label: 'Papan Pemuka' + project_module_dashboards: 'Papan Pemuka' diff --git a/modules/dashboards/config/locales/crowdin/pt-BR.yml b/modules/dashboards/config/locales/crowdin/pt-BR.yml index 21ba5bc596c0..d55391e6ca30 100644 --- a/modules/dashboards/config/locales/crowdin/pt-BR.yml +++ b/modules/dashboards/config/locales/crowdin/pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: dashboards: label: 'Painéis' project_module_dashboards: 'Painéis' diff --git a/modules/dashboards/config/locales/crowdin/pt-PT.yml b/modules/dashboards/config/locales/crowdin/pt-PT.yml index 6f6e5d785e05..e884662919c2 100644 --- a/modules/dashboards/config/locales/crowdin/pt-PT.yml +++ b/modules/dashboards/config/locales/crowdin/pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: dashboards: label: 'Painéis de controlo' project_module_dashboards: 'Painéis de controle' diff --git a/modules/documents/config/locales/crowdin/ms.yml b/modules/documents/config/locales/crowdin/ms.yml index 3326c8df2806..9d46a3c20f90 100644 --- a/modules/documents/config/locales/crowdin/ms.yml +++ b/modules/documents/config/locales/crowdin/ms.yml @@ -25,19 +25,19 @@ ms: description: "An OpenProject plugin to allow creation of documents in projects." activerecord: models: - document: "Document" + document: "Dokumen" activity: filter: - document: "Documents" - default_doc_category_tech: "Technical documentation" - default_doc_category_user: "User documentation" - enumeration_doc_categories: "Document categories" + document: "Dokumen" + default_doc_category_tech: "Dokumen teknikal" + default_doc_category_user: "Dokumen pengguna" + enumeration_doc_categories: "Kategori dokumen" documents: - label_attachment_author: "Attachment author" - label_document_added: "Document added" - label_document_new: "New document" - label_document_plural: "Documents" - label_documents: "Documents" - permission_manage_documents: "Manage documents" - permission_view_documents: "View documents" - project_module_documents: "Documents" + label_attachment_author: "Pengarang lampiran" + label_document_added: "Dokumen ditambah" + label_document_new: "Dokumen baru" + label_document_plural: "Dokumen" + label_documents: "Dokumen" + permission_manage_documents: "Urus dokumen" + permission_view_documents: "Papar dokumen" + project_module_documents: "Dokumen" diff --git a/modules/documents/config/locales/crowdin/pt-BR.yml b/modules/documents/config/locales/crowdin/pt-BR.yml index e702bd7f9a7d..d3f4f66d2c16 100644 --- a/modules/documents/config/locales/crowdin/pt-BR.yml +++ b/modules/documents/config/locales/crowdin/pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: plugin_openproject_documents: name: "Documentos do OpenProject" description: "Um plugin OpenProject para permitir a criação de documentos em projetos." diff --git a/modules/documents/config/locales/crowdin/pt-PT.yml b/modules/documents/config/locales/crowdin/pt-PT.yml index 964ed01ea63a..22cb9da2f10e 100644 --- a/modules/documents/config/locales/crowdin/pt-PT.yml +++ b/modules/documents/config/locales/crowdin/pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: plugin_openproject_documents: name: "Documentos do OpenProject" description: "Um plugin OpenProject para permitir a criação de documentos em projetos." diff --git a/modules/gantt/config/locales/crowdin/hu.yml b/modules/gantt/config/locales/crowdin/hu.yml index 98184fd5c80c..ec27e875d105 100644 --- a/modules/gantt/config/locales/crowdin/hu.yml +++ b/modules/gantt/config/locales/crowdin/hu.yml @@ -1,3 +1,3 @@ #English strings go here hu: - project_module_gantt: "Gantt charts" + project_module_gantt: "Gantt-diagram" diff --git a/modules/gantt/config/locales/crowdin/js-hu.yml b/modules/gantt/config/locales/crowdin/js-hu.yml index 6f97f460eb46..18ce66ae5c5d 100644 --- a/modules/gantt/config/locales/crowdin/js-hu.yml +++ b/modules/gantt/config/locales/crowdin/js-hu.yml @@ -1,6 +1,6 @@ hu: js: queries: - all_open: 'All open' - timeline: 'Timeline' - milestones: 'Milestones' + all_open: 'Minden nyitott' + timeline: 'Idővonal' + milestones: 'Mérföldkövek' diff --git a/modules/gantt/config/locales/crowdin/js-ms.yml b/modules/gantt/config/locales/crowdin/js-ms.yml index 07a5e58f3777..864dc15345a4 100644 --- a/modules/gantt/config/locales/crowdin/js-ms.yml +++ b/modules/gantt/config/locales/crowdin/js-ms.yml @@ -1,6 +1,6 @@ ms: js: queries: - all_open: 'All open' - timeline: 'Timeline' - milestones: 'Milestones' + all_open: 'Semua terbuka' + timeline: 'Garis masa' + milestones: 'Pencapaian' diff --git a/modules/gantt/config/locales/crowdin/js-pt-BR.yml b/modules/gantt/config/locales/crowdin/js-pt-BR.yml index 0040575842b8..a4802317bbb2 100644 --- a/modules/gantt/config/locales/crowdin/js-pt-BR.yml +++ b/modules/gantt/config/locales/crowdin/js-pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: js: queries: all_open: 'Tudo aberto' diff --git a/modules/gantt/config/locales/crowdin/js-pt-PT.yml b/modules/gantt/config/locales/crowdin/js-pt-PT.yml index d477cf988cc4..bfd6b4a1e0c4 100644 --- a/modules/gantt/config/locales/crowdin/js-pt-PT.yml +++ b/modules/gantt/config/locales/crowdin/js-pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: js: queries: all_open: 'Tudo aberto' diff --git a/modules/gantt/config/locales/crowdin/ko.yml b/modules/gantt/config/locales/crowdin/ko.yml index fff21c8ffe76..2ebb93978e85 100644 --- a/modules/gantt/config/locales/crowdin/ko.yml +++ b/modules/gantt/config/locales/crowdin/ko.yml @@ -1,3 +1,3 @@ #English strings go here ko: - project_module_gantt: "Gantt charts" + project_module_gantt: "Gantt 차트" diff --git a/modules/gantt/config/locales/crowdin/pt-BR.yml b/modules/gantt/config/locales/crowdin/pt-BR.yml index 4cc3a302c38a..4b2fa1b786dc 100644 --- a/modules/gantt/config/locales/crowdin/pt-BR.yml +++ b/modules/gantt/config/locales/crowdin/pt-BR.yml @@ -1,3 +1,3 @@ #English strings go here -pt: - project_module_gantt: "Gantt charts" +pt-BR: + project_module_gantt: "Gráficos de Gantt" diff --git a/modules/gantt/config/locales/crowdin/pt-PT.yml b/modules/gantt/config/locales/crowdin/pt-PT.yml index 30806f322d02..73fb705fcc5a 100644 --- a/modules/gantt/config/locales/crowdin/pt-PT.yml +++ b/modules/gantt/config/locales/crowdin/pt-PT.yml @@ -1,3 +1,3 @@ #English strings go here -pt: +pt-PT: project_module_gantt: "Gráficos de Gantt" diff --git a/modules/github_integration/config/locales/crowdin/js-ms.yml b/modules/github_integration/config/locales/crowdin/js-ms.yml index fd0f1f8418b4..b7df27125487 100644 --- a/modules/github_integration/config/locales/crowdin/js-ms.yml +++ b/modules/github_integration/config/locales/crowdin/js-ms.yml @@ -44,8 +44,8 @@ ms: merged_message: "Pull request #%{pr_number} %{pr_link} for %{repository_link} has been %{pr_state} by %{github_user_link}." referenced_message: "Pull request #%{pr_number} %{pr_link} for %{repository_link} authored by %{github_user_link} referenced this work package." states: - opened: 'opened' - closed: 'closed' + opened: 'dibuka' + closed: 'ditutup' draft: 'drafted' - merged: 'merged' - ready_for_review: 'marked ready for review' + merged: "gabungkan\n" + ready_for_review: 'tandakan bersedia untuk semakan' diff --git a/modules/github_integration/config/locales/crowdin/js-pt-BR.yml b/modules/github_integration/config/locales/crowdin/js-pt-BR.yml index cc5634c62aaa..07bc9f351d5f 100644 --- a/modules/github_integration/config/locales/crowdin/js-pt-BR.yml +++ b/modules/github_integration/config/locales/crowdin/js-pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: js: github_integration: work_packages: diff --git a/modules/github_integration/config/locales/crowdin/js-pt-PT.yml b/modules/github_integration/config/locales/crowdin/js-pt-PT.yml index e20fbd308026..c9bf44aa52a1 100644 --- a/modules/github_integration/config/locales/crowdin/js-pt-PT.yml +++ b/modules/github_integration/config/locales/crowdin/js-pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: js: github_integration: work_packages: diff --git a/modules/github_integration/config/locales/crowdin/ms.yml b/modules/github_integration/config/locales/crowdin/ms.yml index cd422b936e73..6f393c633219 100644 --- a/modules/github_integration/config/locales/crowdin/ms.yml +++ b/modules/github_integration/config/locales/crowdin/ms.yml @@ -24,4 +24,4 @@ ms: name: "OpenProject GitHub Integration" description: "Integrates OpenProject and GitHub for a better workflow" project_module_github: "GitHub" - permission_show_github_content: "Show GitHub content" + permission_show_github_content: "Tunjuk kandungan GitHub" diff --git a/modules/github_integration/config/locales/crowdin/pt-BR.yml b/modules/github_integration/config/locales/crowdin/pt-BR.yml index f793bb60845f..a623297c3791 100644 --- a/modules/github_integration/config/locales/crowdin/pt-BR.yml +++ b/modules/github_integration/config/locales/crowdin/pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: plugin_openproject_github_integration: name: "Integração do OpenProject GitHub" description: "Integra o OpenProject e o GitHub para um melhor fluxo de trabalho" diff --git a/modules/github_integration/config/locales/crowdin/pt-PT.yml b/modules/github_integration/config/locales/crowdin/pt-PT.yml index d1e32ea7bc86..319a17c6e6a0 100644 --- a/modules/github_integration/config/locales/crowdin/pt-PT.yml +++ b/modules/github_integration/config/locales/crowdin/pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: plugin_openproject_github_integration: name: "Integração do OpenProject GitHub" description: "Integra o OpenProject e o GitHub para um melhor fluxo de trabalho" diff --git a/modules/gitlab_integration/README.md b/modules/gitlab_integration/README.md index f48a136354f4..436546b2bf6d 100644 --- a/modules/gitlab_integration/README.md +++ b/modules/gitlab_integration/README.md @@ -2,7 +2,7 @@
-Based on the OpenProject Github Integration, this plugin offers the same functionalities plus other new features. This is the first version that includes the visualization of the status of the *Pipelines* (by now, it is considered in Beta status). You can test it by activating the Pipelines event in the GitLab webhook. Just keep in mind that not all pipelines will be reflected in OpenProject, only Merge Request type pipelines (for more information see the GitLab issue https://gitlab.com/gitlab-org/gitlab/-/issues/345028). Any feedback about the pipelines feature would be very appreciated, whether it works or if issues arise (you can use this ticket https://github.com/btey/openproject-gitlab-integration/issues/43). +Based on the OpenProject GitHub Integration, this plugin offers the same functionalities plus other new features. This is the first version that includes the visualization of the status of the *Pipelines* (by now, it is considered in Beta status). You can test it by activating the Pipelines event in the GitLab webhook. Just keep in mind that not all pipelines will be reflected in OpenProject, only Merge Request type pipelines (for more information see the GitLab issue https://gitlab.com/gitlab-org/gitlab/-/issues/345028). Any feedback about the pipelines feature would be very appreciated, whether it works or if issues arise (you can use this ticket https://github.com/btey/openproject-gitlab-integration/issues/43). In this version it has also been implemented that **all linked or referenced** Issues appear in the GitLab tab (https://github.com/btey/openproject-gitlab-integration/issues/34). The opportunity has also been taken to redesign how the information is presented so that it is visually easy to read and at the same time can continue to provide all the information, including labels and pipeline status. @@ -15,7 +15,7 @@ If there are labels related to the Issue or MR, a button with the label icon wil ## Overview OpenProject module for integration with GitLab: -* Latest Gitlab release tested: **16.6.2** +* Latest GitLab release tested: **16.6.2** * Latest OpenProject release tested: **13.1.2** (for OP v13.0.X use v2.1.2) The reference system is based on the same system as for GitHub integration. You can use a link to the work package or just use “OP#87” or "PP#87" in the title/description of the Issue/MR in GitLab. @@ -136,7 +136,7 @@ A typical workflow on GitLab side would be: ## Configuration -You will have to configure both **OpenProject** and **Gitlab** for the integration to work. +You will have to configure both **OpenProject** and **GitLab** for the integration to work. In case of **Docker** installation, follow the official OpenProject documentation [here](https://www.openproject.org/docs/installation-and-operations/installation/docker/#openproject-plugins). If for some reason the installation with Docker described in the official documentation does not work for you, you can try building your own docker image: * Clone from the Openproject Repo: `git clone https://github.com/opf/openproject.git --branch=stable/13 --depth=1 .` @@ -147,11 +147,11 @@ In case of **Docker** installation, follow the official OpenProject documentatio In case of **DEB/RPM** based instalation, follow the official OpenProject documentation [here](https://www.openproject.org/docs/installation-and-operations/configuration/plugins/). -In case of [**manual**](https://www.openproject.org/docs/installation-and-operations/installation/manual/) installation, this plugin should be installed in the same place as the Github plugin that comes bundled with OpenProject. +In case of [**manual**](https://www.openproject.org/docs/installation-and-operations/installation/manual/) installation, this plugin should be installed in the same place as the GitHub plugin that comes bundled with OpenProject. -- **Github plugin path:** `modules/github_integration` +- **GitHub plugin path:** `modules/github_integration` -- **Path to put Gitlab plugin:** `modules/gitlab_integration` +- **Path to put GitLab plugin:** `modules/gitlab_integration` But first you must modify **Gemfile.lock** and **Gemfile.modules** so that OpenProject detects the new module. @@ -198,13 +198,13 @@ bundle config set deployment First you will need to create a user in OpenProject that will make the comments. The user will have to be added to each project with a role that allows them to comment on work packages and change status. -Once the user is created you need to generate an OpenProject API token for it to use later on the Gitlab side: +Once the user is created you need to generate an OpenProject API token for it to use later on the GitLab side: * Login as the newly created user. * Go to My Account (click on Avatar in top right corner). * Go to Access Token. * Click on generate in the API row. -* Copy the generated key. You can now configure the necessary webhook in Gitlab. +* Copy the generated key. You can now configure the necessary webhook in GitLab. ### The webhook in GitLab @@ -227,7 +227,7 @@ You need to configure just two things in the webhook: Now the integration is set up on both sides and you can use it. -> **Note:** If you are installing and configuring OpenProject on the same server as GitLab you will need to enable in Gitlab the option [`Allow requests to the local network from web hooks and services`](https://docs.gitlab.com/ee/security/webhooks.html#allow-requests-to-the-local-network-from-webhooks-and-integrations) so that it can send the data locally to the OpenProject webhook since they will be on the same machine. +> **Note:** If you are installing and configuring OpenProject on the same server as GitLab you will need to enable in GitLab the option [`Allow requests to the local network from web hooks and services`](https://docs.gitlab.com/ee/security/webhooks.html#allow-requests-to-the-local-network-from-webhooks-and-integrations) so that it can send the data locally to the OpenProject webhook since they will be on the same machine. ## How to report bugs or issues diff --git a/modules/gitlab_integration/config/locales/crowdin/cs.yml b/modules/gitlab_integration/config/locales/crowdin/cs.yml index 13e8550e2a2b..e98796a3fe4a 100644 --- a/modules/gitlab_integration/config/locales/crowdin/cs.yml +++ b/modules/gitlab_integration/config/locales/crowdin/cs.yml @@ -27,20 +27,20 @@ cs: gitlab_issue: attributes: labels: - invalid_schema: "must be an array of hashes with keys: color, title" + invalid_schema: "musí být pole hash s klíči: barva, název" gitlab_merge_request: attributes: labels: - invalid_schema: "must be an array of hashes with keys: color, title" + invalid_schema: "musí být pole hashů s klíči: barva, název" project_module_gitlab: "GitLab" - permission_show_gitlab_content: "Show GitLab content" + permission_show_gitlab_content: "Zobrazit obsah GitLab" gitlab_integration: merge_request_opened_comment: > **MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). merge_request_closed_comment: > **MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). merge_request_merged_comment: > - **MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}). + **MR sloučeno:** Požadavek na sloučení %{mr_number} [%{mr_title}](%{mr_url}) pro [%{repository}](%{repository_url}) byl sloučen [%{gitlab_user}](%{gitlab_user_url}). merge_request_reopened_comment: > **MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). note_commit_referenced_comment: > diff --git a/modules/gitlab_integration/config/locales/crowdin/fr.yml b/modules/gitlab_integration/config/locales/crowdin/fr.yml index 722fe35e01a9..49efd5005bb1 100644 --- a/modules/gitlab_integration/config/locales/crowdin/fr.yml +++ b/modules/gitlab_integration/config/locales/crowdin/fr.yml @@ -27,41 +27,41 @@ fr: gitlab_issue: attributes: labels: - invalid_schema: "must be an array of hashes with keys: color, title" + invalid_schema: "doit être un tableau de hachages avec les clés : color, title" gitlab_merge_request: attributes: labels: - invalid_schema: "must be an array of hashes with keys: color, title" + invalid_schema: "doit être un tableau de hachages avec les clés : color, title" project_module_gitlab: "GitLab" - permission_show_gitlab_content: "Show GitLab content" + permission_show_gitlab_content: "Afficher le contenu GitLab" gitlab_integration: merge_request_opened_comment: > - **MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). + **MR ouverte :** La demande de fusion %{mr_number} [%{mr_title}](%{mr_url}) pour [%{repository}](%{repository_url}) a été ouverte par [%{gitlab_user}](%{gitlab_user_url}). merge_request_closed_comment: > - **MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). + **MR fermée :** La demande de fusion %{mr_number} [%{mr_title}](%{mr_url}) pour [%{repository}](%{repository_url}) a été fermée par [%{gitlab_user}](%{gitlab_user_url}). merge_request_merged_comment: > - **MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}). + **MR fusionnée :** La demande de fusion %{mr_number} [%{mr_title}](%{mr_url}) pour [%{repository}](%{repository_url}) a été fusionnée par [%{gitlab_user}](%{gitlab_user_url}). merge_request_reopened_comment: > - **MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). + **MR rouverte :** La demande de fusion %{mr_number} [%{mr_title}](%{mr_url}) pour [%{repository}](%{repository_url}) a été rouverte par [%{gitlab_user}](%{gitlab_user_url}). note_commit_referenced_comment: > - **Referenced in Commit:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in a Commit Note [%{commit_id}](%{commit_url}) on [%{repository}](%{repository_url}): %{commit_note} + **Mentionné dans un commit :** [%{gitlab_user}](%{gitlab_user_url}) a mentionné ce WP dans une note de commit [%{commit_id}](%{commit_url}) sur [%{repository}](%{repository_url}) : %{commit_note} note_mr_referenced_comment: > - **Referenced in MR:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} + **Mentionné dans une MR :**[%{gitlab_user}](%{gitlab_user_url}) a mentionné ce WP dans la demande de fusion %{mr_number} [%{mr_title}](%{mr_url}) sur [%{repository}](%{repository_url}) : %{mr_note} note_mr_commented_comment: > - **Commented in MR:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} + **Commentaire dans une MR :**[%{gitlab_user}](%{gitlab_user_url}) a commenté ce WP dans la demande de fusion %{mr_number} [%{mr_title}](%{mr_url}) sur [%{repository}](%{repository_url}) : %{mr_note} note_issue_referenced_comment: > - **Referenced in Issue:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} + **Mentionné dans un problème :**[%{gitlab_user}](%{gitlab_user_url}) a mentionné ce WP dans le problème %{issue_number} [%{issue_title}](%{issue_url}) sur [%{repository}](%{repository_url}) : %{issue_note} note_issue_commented_comment: > - **Commented in Issue:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} + **Commentaire dans un problème :**[%{gitlab_user}](%{gitlab_user_url}) a commenté ce WP dans le problème %{issue_number} [%{issue_title}](%{issue_url}) sur [%{repository}](%{repository_url}) : %{issue_note} note_snippet_referenced_comment: > - **Referenced in Snippet:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) on [%{repository}](%{repository_url}): %{snippet_note} + **Mentionné dans un extrait :**[%{gitlab_user}](%{gitlab_user_url}) a mentionné ce WP dans l'extrait %{snippet_number} [%{snippet_title}](%{snippet_url}) sur [%{repository}](%{repository_url}) : %{snippet_note} issue_opened_referenced_comment: > - **Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). + **Problème ouvert :** Le problème %{issue_number} [%{issue_title}](%{issue_url}) pour [%{repository}](%{repository_url}) a été ouvert par [%{gitlab_user}](%{gitlab_user_url}). issue_closed_referenced_comment: > - **Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). + **Problème fermé :** Le problème %{issue_number} [%{issue_title}](%{issue_url}) pour [%{repository}](%{repository_url}) a été fermé par [%{gitlab_user}](%{gitlab_user_url}). issue_reopened_referenced_comment: > - **Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). + **Problème rouvert :** Le problème %{issue_number} [%{issue_title}](%{issue_url}) pour [%{repository}](%{repository_url}) a été rouvert par [%{gitlab_user}](%{gitlab_user_url}). push_single_commit_comment: > - **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} + **Push en MR :** [%{gitlab_user}](%{gitlab_user_url}) a fait un push de [%{commit_number}](%{commit_url}) vers [%{repository}](%{repository_url}) à %{commit_timestamp} : %{commit_note} push_multiple_commits_comment: > - **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} + **Push en MR :** [%{gitlab_user}](%{gitlab_user_url}) a fait un push de plusieurs commits [%{commit_number}](%{commit_url}) vers [%{repository}](%{repository_url}) à %{commit_timestamp} : %{commit_note} diff --git a/modules/gitlab_integration/config/locales/crowdin/hu.yml b/modules/gitlab_integration/config/locales/crowdin/hu.yml index 257b45b34344..8bcb794353e5 100644 --- a/modules/gitlab_integration/config/locales/crowdin/hu.yml +++ b/modules/gitlab_integration/config/locales/crowdin/hu.yml @@ -27,41 +27,41 @@ hu: gitlab_issue: attributes: labels: - invalid_schema: "must be an array of hashes with keys: color, title" + invalid_schema: "egy hash tömbnek kell lennie a következő kulcsokkal: color, title" gitlab_merge_request: attributes: labels: - invalid_schema: "must be an array of hashes with keys: color, title" + invalid_schema: "egy hash tömbnek kell lennie a következő kulcsokkal: color, title" project_module_gitlab: "GitLab" - permission_show_gitlab_content: "Show GitLab content" + permission_show_gitlab_content: "GitLab tartalom megjelenítése" gitlab_integration: merge_request_opened_comment: > - **MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). + **MR megnyitva:** Egyesítési kérelem (merge request) %{mr_number} [%{mr_title}](%{mr_url}) a következőhöz: [%{repository}](%{repository_url}) megnyitva [%{gitlab_user}](%{gitlab_user_url}) által. merge_request_closed_comment: > - **MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). + **MR lezárva:** Egyesítési kérelem (merge request) %{mr_number} [%{mr_title}](%{mr_url}) a következőhöz: [%{repository}](%{repository_url}) lezárva [%{gitlab_user}](%{gitlab_user_url}) által. merge_request_merged_comment: > - **MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}). + **MR egyesítve:** Egyesítési kérelem (merge request) %{mr_number} [%{mr_title}](%{mr_url}) a következőhöz: [%{repository}](%{repository_url}) egyesítve [%{gitlab_user}](%{gitlab_user_url}) által. merge_request_reopened_comment: > - **MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). + **MR újranyitva:** Egyesítési kérelem (merge request) %{mr_number} [%{mr_title}](%{mr_url}) a következőhöz: [%{repository}](%{repository_url}) újranyitva [%{gitlab_user}](%{gitlab_user_url}) által. note_commit_referenced_comment: > - **Referenced in Commit:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in a Commit Note [%{commit_id}](%{commit_url}) on [%{repository}](%{repository_url}): %{commit_note} + **Hivatkozva a következő commitban:** [%{gitlab_user}](%{gitlab_user_url}) hivatkozott erre a WP-re a(z) [%{commit_id}](%{commit_url}) commitban a(z) [%{repository}](%{repository_url}) repositoryban, az üzenet: %{commit_note} note_mr_referenced_comment: > - **Referenced in MR:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} + **Hivatkozva a következő egyesítési kérelemben:** [%{gitlab_user}](%{gitlab_user_url}) hivatkozott erre a WP-re a(z) %{mr_number}%{mr_title}%{mr_url} MR-ben a(z) [%{repository}](%{repository_url}) repositoryban, az üzenet: %{mr_note} note_mr_commented_comment: > - **Commented in MR:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} + **Hozzászólva a következő egyesítési kérelemben:** [%{gitlab_user}](%{gitlab_user_url}) hozzászólt ehhez a WP-hez a(z) %{mr_number}[%{mr_title}]%{mr_url} MR-ben a(z) [%{repository}](%{repository_url}) repositoryban, az üzenet: %{mr_note} note_issue_referenced_comment: > - **Referenced in Issue:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} + **Hivatkozva a következőben:** [%{gitlab_user}](%{gitlab_user_url}) hivatkozott erre a WP-re a(z) %{issue_number}[%{issue_title}]%{issue_url} a(z) [%{repository}](%{repository_url}) repositoryban: %{issue_note} note_issue_commented_comment: > - **Commented in Issue:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} + **Hozzászólva a következőben:** [%{gitlab_user}](%{gitlab_user_url}) hozzászólt ehhez a WP-hez a(z) %{issue_number}[%{issue_title}]%{issue_url} a(z) [%{repository}](%{repository_url}) repositoryban: %{issue_note} note_snippet_referenced_comment: > - **Referenced in Snippet:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) on [%{repository}](%{repository_url}): %{snippet_note} + **Hivatkozva a következőben:** [%{gitlab_user}](%{gitlab_user_url}) hivatkozott erre a WP-re a(z) %{snippet_number}[%{snippet_title}]%{snippet_url} a(z) [%{repository}](%{repository_url}) repositoryban: %{snippet_note} issue_opened_referenced_comment: > - **Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). + **Kérdés megnyitva:** %{issue_number}[%{issue_title}]%{issue_url} a következőhöz: [%{repository}](%{repository_url}) megnyitva [%{gitlab_user}](%{gitlab_user_url}) által. issue_closed_referenced_comment: > - **Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). + **Kérdés lezárva:** %{issue_number}[%{issue_title}]%{issue_url} a következőhöz: [%{repository}](%{repository_url}) lezárva [%{gitlab_user}](%{gitlab_user_url}) által. issue_reopened_referenced_comment: > - **Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). + **Kérdés újranyitva:** %{issue_number}[%{issue_title}]%{issue_url} a következőhöz: [%{repository}](%{repository_url}) újranyitva [%{gitlab_user}](%{gitlab_user_url}) által. push_single_commit_comment: > - **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} + **Frissítés az MR-ben:** [%{gitlab_user}](%{gitlab_user_url}) frissítette a következőkkel: [%{commit_number}](%{commit_url}) a(z) [%{repository}](%{repository_url}) ekkor: %{commit_timestamp}, üzenet: %{commit_note} push_multiple_commits_comment: > - **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} + **Frissítés az MR-ben:** [%{gitlab_user}](%{gitlab_user_url}) frissítette a következőkkel: [%{commit_number}](%{commit_url}) a(z) [%{repository}](%{repository_url}) ekkor: %{commit_timestamp}, üzenet: %{commit_note} diff --git a/modules/gitlab_integration/config/locales/crowdin/js-cs.yml b/modules/gitlab_integration/config/locales/crowdin/js-cs.yml index 62fb529b55dd..8d48c4a1cf1e 100644 --- a/modules/gitlab_integration/config/locales/crowdin/js-cs.yml +++ b/modules/gitlab_integration/config/locales/crowdin/js-cs.yml @@ -37,7 +37,7 @@ cs: description: Kopírovat git snippents do schránky git_actions: branch_name: název větve - commit_message: Commit message + commit_message: Commitnout zprávu cmd: Vytvořit větev s prázdným commitem title: Rychlé snippety pro Git copy_success: '✅ Zkopírováno!' diff --git a/modules/gitlab_integration/config/locales/crowdin/js-fr.yml b/modules/gitlab_integration/config/locales/crowdin/js-fr.yml index db5e0fe362c5..986d516a7a3c 100644 --- a/modules/gitlab_integration/config/locales/crowdin/js-fr.yml +++ b/modules/gitlab_integration/config/locales/crowdin/js-fr.yml @@ -26,25 +26,25 @@ fr: work_packages: tab_name: "GitLab" tab_header_issue: - title: "Issues" + title: "Problèmes" tab_header_mr: - title: "Merge requests" + title: "Demandes de fusion" create_mr: - label: Create MR - description: Create a Merge Request + label: Créer une MR + description: Créer une demande de fusion copy_menu: - label: Git snippets - description: Copy git snippets to clipboard + label: Extraits de code Git + description: Copier les extraits de code git dans le presse-papiers git_actions: - branch_name: Branch name - commit_message: Commit message - cmd: Create branch with empty commit - title: Quick snippets for Git - copy_success: '✅ Copied!' - copy_error: '❌ Copy failed!' + branch_name: Nom de la branche + commit_message: Message de commit + cmd: Créer une branche avec un commit vide + title: Extraits de code rapides pour Git + copy_success: '✅ Copié !' + copy_error: '❌ La copie a échoué !' tab_issue: - empty: 'There are no issues linked yet. Link an existing issue by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the issue title/description or create a new issue.' + empty: 'Aucun problème n''a encore été associé. Associez un problème existant en utilisant le code OP#%{wp_id} (ou PP#%{wp_id} pour les liens privés) dans le titre/la description du problème ou créez un nouveau problème.' tab_mrs: - empty: 'There are no merge requests linked yet. Link an existing MR by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the MR title/description or create a new MR.' + empty: 'Aucune demande de fusion (MR) n''a encore été associée. Associez une MR existante en utilisant le code OP#%{wp_id} (ou PP#%{wp_id} pour les liens privés) dans le titre/la description de la M ou créez une nouvelle MR.' gitlab_pipelines: Pipelines - updated_on: Updated on + updated_on: Mis à jour le diff --git a/modules/gitlab_integration/config/locales/crowdin/js-hu.yml b/modules/gitlab_integration/config/locales/crowdin/js-hu.yml index a254c559dbab..de7ad84d6a4b 100644 --- a/modules/gitlab_integration/config/locales/crowdin/js-hu.yml +++ b/modules/gitlab_integration/config/locales/crowdin/js-hu.yml @@ -26,25 +26,25 @@ hu: work_packages: tab_name: "GitLab" tab_header_issue: - title: "Issues" + title: "Kérdések" tab_header_mr: - title: "Merge requests" + title: "Egyesítési kérelmek (merge requests)" create_mr: - label: Create MR - description: Create a Merge Request + label: MR létrehozása + description: Egyesítési kérelem (merge request) létrehozása copy_menu: - label: Git snippets - description: Copy git snippets to clipboard + label: Git snippetek + description: "Git snippetek másolása a vágólapra\n" git_actions: - branch_name: Branch name - commit_message: Commit message - cmd: Create branch with empty commit - title: Quick snippets for Git - copy_success: '✅ Copied!' - copy_error: '❌ Copy failed!' + branch_name: Branch neve + commit_message: Commit üzenet + cmd: Branch létrehozása üres committal + title: Gyors snippetek a Githez + copy_success: '✅ Másolva!' + copy_error: '❌ Másolás sikertelen!' tab_issue: - empty: 'There are no issues linked yet. Link an existing issue by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the issue title/description or create a new issue.' + empty: 'Még nincsenek kapcsolódó kérdések. Hivatkozzon egy meglévő kérdésre a kérdés címében/leírásában található OP#%{wp_id} (vagy PP#%{wp_id} a privát hivatkozások esetében) kód használatával, vagy hozzon létre egy új kérdést.' tab_mrs: - empty: 'There are no merge requests linked yet. Link an existing MR by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the MR title/description or create a new MR.' - gitlab_pipelines: Pipelines - updated_on: Updated on + empty: 'Még nincsenek hozzákapcsolt egyesítési kérelmek (merge requests). Linkelj egy meglévő MR-t az OP#%{wp_id} (vagy a PP#%{wp_id} a privát linkekhez) kód használatával az MR címében/leírásában, vagy hozz létre egy új MR-t.' + gitlab_pipelines: Pipeline-ok + updated_on: Frissítve ekkor diff --git a/modules/gitlab_integration/config/locales/crowdin/js-ko.yml b/modules/gitlab_integration/config/locales/crowdin/js-ko.yml index f12c9b5f7a9d..242a580490a3 100644 --- a/modules/gitlab_integration/config/locales/crowdin/js-ko.yml +++ b/modules/gitlab_integration/config/locales/crowdin/js-ko.yml @@ -26,25 +26,25 @@ ko: work_packages: tab_name: "GitLab" tab_header_issue: - title: "Issues" + title: "이슈" tab_header_mr: - title: "Merge requests" + title: "병합 요청" create_mr: - label: Create MR - description: Create a Merge Request + label: MR 만들기 + description: 병합 요청 만들기 copy_menu: - label: Git snippets - description: Copy git snippets to clipboard + label: Git 코드 조각 + description: 클립보드에 Git 코드 조각 복사 git_actions: - branch_name: Branch name - commit_message: Commit message - cmd: Create branch with empty commit - title: Quick snippets for Git - copy_success: '✅ Copied!' - copy_error: '❌ Copy failed!' + branch_name: 브랜치 이름 + commit_message: 커밋 메시지 + cmd: 빈 커밋으로 브랜치 만들기 + title: Git용 빠른 코드 조각 + copy_success: '✅ 복사 완료!' + copy_error: '❌ 복사 실패!' tab_issue: - empty: 'There are no issues linked yet. Link an existing issue by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the issue title/description or create a new issue.' + empty: '아직 링크된 이슈가 없습니다. 이슈 제목/설명에 OP#%{wp_id}(또는 비공개 링크의 경우 PP#%{wp_id}) 코드를 사용하여 기존 이슈를 링크하거나 새 이슈를 만드세요.' tab_mrs: - empty: 'There are no merge requests linked yet. Link an existing MR by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the MR title/description or create a new MR.' - gitlab_pipelines: Pipelines - updated_on: Updated on + empty: '아직 링크된 병합 요청이 없습니다. MR 제목/설명에 OP#%{wp_id}(또는 비공개 링크의 경우 PP#%{wp_id}) 코드를 사용하여 기존 MR을 링크하거나 새 MR을 만드세요.' + gitlab_pipelines: 파이프라인 + updated_on: 업데이트 날짜 diff --git a/modules/gitlab_integration/config/locales/crowdin/js-ms.yml b/modules/gitlab_integration/config/locales/crowdin/js-ms.yml index dadbf166788a..7ac7b6630061 100644 --- a/modules/gitlab_integration/config/locales/crowdin/js-ms.yml +++ b/modules/gitlab_integration/config/locales/crowdin/js-ms.yml @@ -26,25 +26,25 @@ ms: work_packages: tab_name: "GitLab" tab_header_issue: - title: "Issues" + title: "Isu" tab_header_mr: - title: "Merge requests" + title: "Permintaan gabungan" create_mr: - label: Create MR - description: Create a Merge Request + label: Cipta MR + description: Cipta satu Merge Request copy_menu: label: Git snippets description: Copy git snippets to clipboard git_actions: - branch_name: Branch name - commit_message: Commit message + branch_name: Nama cawangan + commit_message: Mesej Commit cmd: Create branch with empty commit title: Quick snippets for Git - copy_success: '✅ Copied!' - copy_error: '❌ Copy failed!' + copy_success: '✅ Disalin!' + copy_error: '❌ Salinan gagal!' tab_issue: - empty: 'There are no issues linked yet. Link an existing issue by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the issue title/description or create a new issue.' + empty: 'Tiada isu yang dipautkan lagi. Pautkan isu-isu yang sedia ada dengan menggunakan code OP#%{wp_id} (or PP#%{wp_id} for private links) dalam tajuk isu/penerangan atau cipta issue yang baru.' tab_mrs: - empty: 'There are no merge requests linked yet. Link an existing MR by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the MR title/description or create a new MR.' - gitlab_pipelines: Pipelines - updated_on: Updated on + empty: 'Tiada permintaan gabungan yang dipautkan lagi. Pautkan MR sedia ada dengan menggunakan code OP#%{wp_id} (or PP#%{wp_id} for private links) dalam tajuk MR/penerangan atau cipta MR yang baru.' + gitlab_pipelines: Saluran + updated_on: Dikemas kini pada diff --git a/modules/gitlab_integration/config/locales/crowdin/js-pt-BR.yml b/modules/gitlab_integration/config/locales/crowdin/js-pt-BR.yml index d4f0f5c838e5..4c30f98f039c 100644 --- a/modules/gitlab_integration/config/locales/crowdin/js-pt-BR.yml +++ b/modules/gitlab_integration/config/locales/crowdin/js-pt-BR.yml @@ -20,31 +20,31 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See docs/COPYRIGHT.rdoc for more details. #++ -pt: +pt-BR: js: gitlab_integration: work_packages: tab_name: "GitLab" tab_header_issue: - title: "Issues" + title: "Problemas" tab_header_mr: - title: "Merge requests" + title: "Solicitações de combinação" create_mr: - label: Create MR - description: Create a Merge Request + label: Criar SC + description: Criar uma Solicitação de Combinação copy_menu: - label: Git snippets - description: Copy git snippets to clipboard + label: Trechos de código Git + description: Copiar trechos de código git para área de transferência git_actions: - branch_name: Branch name - commit_message: Commit message - cmd: Create branch with empty commit - title: Quick snippets for Git - copy_success: '✅ Copied!' - copy_error: '❌ Copy failed!' + branch_name: Nome da ramificação + commit_message: Mensagem de confirmação + cmd: Criar ramificação com a confirmação vazia + title: Trechos de código rápido para Git + copy_success: '✅ Copiado!' + copy_error: '❌ Falha ao copiar!' tab_issue: - empty: 'There are no issues linked yet. Link an existing issue by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the issue title/description or create a new issue.' + empty: 'Ainda não há problemas vinculados. Para vincular um problema existente, use o código OP#%{wp_id} (ou PP#%{wp_id} para links privados) no título ou descrição do problema. Você também pode criar um novo problema.' tab_mrs: - empty: 'There are no merge requests linked yet. Link an existing MR by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the MR title/description or create a new MR.' + empty: 'Ainda não há solicitações de combinação vinculadas. Para vincular uma SC existente, use o código OP#%{wp_id} (ou PP#%{wp_id} para links privados) no título ou descrição da SC. Você também pode criar um nova SC.' gitlab_pipelines: Pipelines - updated_on: Updated on + updated_on: Atualizado em diff --git a/modules/gitlab_integration/config/locales/crowdin/js-pt-PT.yml b/modules/gitlab_integration/config/locales/crowdin/js-pt-PT.yml index 028bbc84e0a9..f90aa30e9a4a 100644 --- a/modules/gitlab_integration/config/locales/crowdin/js-pt-PT.yml +++ b/modules/gitlab_integration/config/locales/crowdin/js-pt-PT.yml @@ -20,7 +20,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See docs/COPYRIGHT.rdoc for more details. #++ -pt: +pt-PT: js: gitlab_integration: work_packages: @@ -33,18 +33,18 @@ pt: label: Criar MR description: Crie Pedido de Fusão copy_menu: - label: Git snippets + label: Fragmentos de código Git description: Copiar pedaços de código git para área de transferência git_actions: branch_name: Nome do ramo - commit_message: Commit message + commit_message: Mensagem de confirmação cmd: Criar ramificação com a confirmação vazia - title: Quick snippets for Git + title: Fragmentos de código rápido para Git copy_success: '✅ Copiado!' copy_error: '❌ A cópia falhou!' tab_issue: - empty: 'There are no issues linked yet. Link an existing issue by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the issue title/description or create a new issue.' + empty: 'Ainda não existem problemas associados. Associe um problema existente utilizando o código OP#%{wp_id} (ou PP#%{wp_id} para ligações privadas) no título/descrição do problema ou crie um problema novo.' tab_mrs: - empty: 'There are no merge requests linked yet. Link an existing MR by using the code OP#%{wp_id} (or PP#%{wp_id} for private links) in the MR title/description or create a new MR.' + empty: 'Ainda não existem pedidos de fusão associados. Associe um MR existente utilizando o código OP#%{wp_id} (ou PP#%{wp_id} para ligações privadas) no título/descrição do MR ou crie um novo MR.' gitlab_pipelines: Pipelines updated_on: Atualizado em diff --git a/modules/gitlab_integration/config/locales/crowdin/js-zh-CN.yml b/modules/gitlab_integration/config/locales/crowdin/js-zh-CN.yml index fbac2ff2cc5a..e98ce1c40f00 100644 --- a/modules/gitlab_integration/config/locales/crowdin/js-zh-CN.yml +++ b/modules/gitlab_integration/config/locales/crowdin/js-zh-CN.yml @@ -43,8 +43,8 @@ zh-CN: copy_success: '✅ 已复制!' copy_error: '❌ 复制失败!' tab_issue: - empty: '尚未链接任何问题。请在问题标题/描述中使用代码 OP#%{wp_id}(对于私有链接,使用代码 PP#%{wp_id})链接现有问题,或者创建新问题。' + empty: '尚未链接任何问题。请在问题标题/描述中使用代码 OP#%{wp_id}(对于不公开链接,使用代码 PP#%{wp_id})链接现有问题,或者创建新问题。' tab_mrs: - empty: '尚未链接任何合并请求。请在问题标题/描述中使用代码 OP#%{wp_id}(对于私有链接,使用代码 PP#%{wp_id})链接现有合并请求,或者创建新的合并请求。' + empty: '尚未链接任何合并请求。请在合并请求标题/描述中使用代码 OP#%{wp_id}(对于不公开链接,使用代码 PP#%{wp_id})链接现有合并请求,或者创建新的合并请求。' gitlab_pipelines: 管道 updated_on: 更新时间 diff --git a/modules/gitlab_integration/config/locales/crowdin/ko.yml b/modules/gitlab_integration/config/locales/crowdin/ko.yml index 170c1e616024..319e7b535c37 100644 --- a/modules/gitlab_integration/config/locales/crowdin/ko.yml +++ b/modules/gitlab_integration/config/locales/crowdin/ko.yml @@ -27,41 +27,41 @@ ko: gitlab_issue: attributes: labels: - invalid_schema: "must be an array of hashes with keys: color, title" + invalid_schema: "키가 있는 해시 배열이어야 합니다: color, title" gitlab_merge_request: attributes: labels: - invalid_schema: "must be an array of hashes with keys: color, title" + invalid_schema: "키가 있는 해시 배열이어야 합니다: color, title" project_module_gitlab: "GitLab" - permission_show_gitlab_content: "Show GitLab content" + permission_show_gitlab_content: "GitLab 콘텐츠 표시" gitlab_integration: merge_request_opened_comment: > - **MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). + **MR 열림:** [%{repository}](%{repository_url})에 대한 병합 요청 %{mr_number} [%{mr_title}](%{mr_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 열렸습니다. merge_request_closed_comment: > - **MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). + **MR 닫힘:** [%{repository}](%{repository_url})에 대한 병합 요청 %{mr_number} [%{mr_title}](%{mr_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 닫혔습니다. merge_request_merged_comment: > - **MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}). + **MR 병합됨:** [%{repository}](%{repository_url})에 대한 병합 요청 %{mr_number} [%{mr_title}](%{mr_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 병합되었습니다. merge_request_reopened_comment: > - **MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). + **MR 다시 열림:** [%{repository}](%{repository_url})에 대한 병합 요청 %{mr_number} [%{mr_title}](%{mr_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 다시 열렸습니다. note_commit_referenced_comment: > - **Referenced in Commit:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in a Commit Note [%{commit_id}](%{commit_url}) on [%{repository}](%{repository_url}): %{commit_note} + **커밋에서 참조됨:** [%{gitlab_user}](%{gitlab_user_url}) 님이 [%{repository}](%{repository_url})의 커밋 메모 [%{commit_id}](%{commit_url})에서 이 WP를 참조했습니다: %{commit_note} note_mr_referenced_comment: > - **Referenced in MR:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} + **MR에서 참조됨:** [%{gitlab_user}](%{gitlab_user_url}) 님이 [%{repository}](%{repository_url})의 병합 요청 %{mr_number} [%{mr_title}](%{mr_url})에서 이 WP를 참조했습니다: %{mr_note} note_mr_commented_comment: > - **Commented in MR:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} + **MR에서 코멘트 작성됨:** [%{gitlab_user}](%{gitlab_user_url}) 님이 [%{repository}](%{repository_url})의 병합 요청 %{mr_number} [%{mr_title}](%{mr_url})에서 이 WP에 대해 코멘트를 작성했습니다: %{mr_note} note_issue_referenced_comment: > - **Referenced in Issue:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} + **이슈에서 참조됨:** [%{gitlab_user}](%{gitlab_user_url}) 님이 [%{repository}](%{repository_url})의 이슈 %{issue_number} [%{issue_title}](%{issue_url})에서 이 WP를 참조했습니다: %{issue_note} note_issue_commented_comment: > - **Commented in Issue:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} + **이슈에서 코멘트 작성됨:** [%{gitlab_user}](%{gitlab_user_url}) 님이 [%{repository}](%{repository_url})의 이슈 %{issue_number} [%{issue_title}](%{issue_url})에서 이 WP에 대해 코멘트를 작성했습니다: %{issue_note} note_snippet_referenced_comment: > - **Referenced in Snippet:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) on [%{repository}](%{repository_url}): %{snippet_note} + **코드 조각에서 참조됨:** [%{gitlab_user}](%{gitlab_user_url}) 님이 [%{repository}](%{repository_url})의 코드 조각 %{snippet_number} [%{snippet_title}](%{snippet_url})에서 이 WP를 참조했습니다: %{snippet_note} issue_opened_referenced_comment: > - **Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). + **이슈 열림:** [%{repository}](%{repository_url})에 대한 이슈 %{issue_number} [%{issue_title}](%{issue_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 열렸습니다. issue_closed_referenced_comment: > - **Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). + **이슈 닫힘:** [%{repository}](%{repository_url})에 대한 이슈 %{issue_number} [%{issue_title}](%{issue_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 닫혔습니다. issue_reopened_referenced_comment: > - **Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). + **이슈 다시 열림:** [%{repository}](%{repository_url})에 대한 이슈 %{issue_number} [%{issue_title}](%{issue_url})이(가) [%{gitlab_user}](%{gitlab_user_url}) 님에 의해 다시 열렸습니다. push_single_commit_comment: > - **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} + **MR에서 푸시됨:** [%{gitlab_user}](%{gitlab_user_url}) 님이 [%{commit_number}](%{commit_url})을(를) %{commit_timestamp}, [%{repository}](%{repository_url})에 푸시했습니다: %{commit_note} push_multiple_commits_comment: > - **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} + **MR에서 푸시됨:** [%{gitlab_user}](%{gitlab_user_url}) 님이 여러 커밋 [%{commit_number}](%{commit_url})을(를) %{commit_timestamp}, [%{repository}](%{repository_url})에 푸시했습니다: %{commit_note} diff --git a/modules/gitlab_integration/config/locales/crowdin/lt.yml b/modules/gitlab_integration/config/locales/crowdin/lt.yml index f5550ea73e12..0c7ba744fb4e 100644 --- a/modules/gitlab_integration/config/locales/crowdin/lt.yml +++ b/modules/gitlab_integration/config/locales/crowdin/lt.yml @@ -33,7 +33,7 @@ lt: labels: invalid_schema: "turi būti masyvas raktų: spalva, antraštė" project_module_gitlab: "GitLab" - permission_show_gitlab_content: "Show GitLab content" + permission_show_gitlab_content: "Rodyti GitLab turinį" gitlab_integration: merge_request_opened_comment: > **MR Atidarytas:** Suliejimo prašymą %{mr_number} [%{mr_title}](%{mr_url}) skirtą [%{repository}](%{repository_url}) atidarė [%{gitlab_user}](%{gitlab_user_url}). diff --git a/modules/gitlab_integration/config/locales/crowdin/ms.yml b/modules/gitlab_integration/config/locales/crowdin/ms.yml index f188537aacf5..4bf57dc825aa 100644 --- a/modules/gitlab_integration/config/locales/crowdin/ms.yml +++ b/modules/gitlab_integration/config/locales/crowdin/ms.yml @@ -33,34 +33,34 @@ ms: labels: invalid_schema: "must be an array of hashes with keys: color, title" project_module_gitlab: "GitLab" - permission_show_gitlab_content: "Show GitLab content" + permission_show_gitlab_content: "Tunjuk kandungan GitLab" gitlab_integration: merge_request_opened_comment: > - **MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). + **MR Dibuka:** Permintaan gabungan %{mr_number} [%{mr_title}](%{mr_url}) untuk [%{repository}](%{repository_url}) telah dibuka oleh [%{gitlab_user}](%{gitlab_user_url}). merge_request_closed_comment: > - **MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). + **MR Ditutup:** Permintaan gabungan %{mr_number} [%{mr_title}](%{mr_url}) untuk [%{repository}](%{repository_url}) telah dibuka oleh [%{gitlab_user}](%{gitlab_user_url}). merge_request_merged_comment: > - **MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}). + **Gabungan MR:** Permintaan gabungan %{mr_number} [%{mr_title}](%{mr_url}) untuk [%{repository}](%{repository_url}) telah digabungkan oleh [%{gitlab_user}](%{gitlab_user_url}). merge_request_reopened_comment: > - **MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). + **MR Dibuka semula:** Permintaan gabungan %{mr_number} [%{mr_title}](%{mr_url}) untuk [%{repository}](%{repository_url}) sudah dibuka semula oleh [%{gitlab_user}](%{gitlab_user_url}). note_commit_referenced_comment: > - **Referenced in Commit:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in a Commit Note [%{commit_id}](%{commit_url}) on [%{repository}](%{repository_url}): %{commit_note} + **Dirujuk dalam Commit:** [%{gitlab_user}](%{gitlab_user_url}) dirujuk WP ini dalam satu Commit Note [%{commit_id}](%{commit_url}) pada [%{repository}](%{repository_url}): %{commit_note} note_mr_referenced_comment: > - **Referenced in MR:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} + **Dirujuk dalam MR:** [%{gitlab_user}](%{gitlab_user_url}) dirujuk WP ini dalam satu Merge Request %{mr_number} [%{mr_title}](%{mr_url}) pada [%{repository}](%{repository_url}): %{mr_note} note_mr_commented_comment: > - **Commented in MR:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} + **Memberi komen dalam MR:** [%{gitlab_user}](%{gitlab_user_url}) memberi komen WP ini dalam Merge Request %{mr_number} [%{mr_title}](%{mr_url}) pada [%{repository}](%{repository_url}): %{mr_note} note_issue_referenced_comment: > - **Referenced in Issue:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} + **Dirujuk dalam Issue:** [%{gitlab_user}](%{gitlab_user_url}) dirujuk WP ini dalam satu Issue %{issue_number} [%{issue_title}](%{issue_url}) pada [%{repository}](%{repository_url}): %{issue_note} note_issue_commented_comment: > - **Commented in Issue:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} + **Memberi komen dalam Issue:** [%{gitlab_user}](%{gitlab_user_url}) dirujuk WP ini dalam Issue %{issue_number} [%{issue_title}](%{issue_url}) pada [%{repository}](%{repository_url}): %{issue_note} note_snippet_referenced_comment: > - **Referenced in Snippet:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) on [%{repository}](%{repository_url}): %{snippet_note} + **Dirujuk dalam Snippet:** [%{gitlab_user}](%{gitlab_user_url}) dirujuk WP ini dalam Snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) pada [%{repository}](%{repository_url}): %{snippet_note} issue_opened_referenced_comment: > - **Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). + **Isu Dibuka:** Isu %{issue_number} [%{issue_title}](%{issue_url}) untuk [%{repository}](%{repository_url}) sudah dibuka oleh [%{gitlab_user}](%{gitlab_user_url}). issue_closed_referenced_comment: > - **Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). + **Isu Ditutup:** Isu %{issue_number} [%{issue_title}](%{issue_url}) untuk [%{repository}](%{repository_url}) sudah ditutup oleh [%{gitlab_user}](%{gitlab_user_url}). issue_reopened_referenced_comment: > - **Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). + **Isu Dibuka Semula:** Isu %{issue_number} [%{issue_title}](%{issue_url}) untuk [%{repository}](%{repository_url}) sudah dibuka semula oleh [%{gitlab_user}](%{gitlab_user_url}). push_single_commit_comment: > **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} push_multiple_commits_comment: > diff --git a/modules/gitlab_integration/config/locales/crowdin/pt-BR.yml b/modules/gitlab_integration/config/locales/crowdin/pt-BR.yml index ab338568862d..992338e9171a 100644 --- a/modules/gitlab_integration/config/locales/crowdin/pt-BR.yml +++ b/modules/gitlab_integration/config/locales/crowdin/pt-BR.yml @@ -20,48 +20,48 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See docs/COPYRIGHT.rdoc for more details. #++ -pt: +pt-BR: activerecord: errors: models: gitlab_issue: attributes: labels: - invalid_schema: "must be an array of hashes with keys: color, title" + invalid_schema: "deve ser um array de hashes com as chaves: cor, título" gitlab_merge_request: attributes: labels: - invalid_schema: "must be an array of hashes with keys: color, title" + invalid_schema: "deve ser um array de hashes com as chaves: cor, título" project_module_gitlab: "GitLab" - permission_show_gitlab_content: "Show GitLab content" + permission_show_gitlab_content: "Exibir conteúdo GitLab" gitlab_integration: merge_request_opened_comment: > - **MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). + **MR Aberto:** Solicitação de combinação %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi aberta por [%{gitlab_user}](%{gitlab_user_url}). merge_request_closed_comment: > - **MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). + **SC Fechada:** Solicitação de combinação %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi fechada por [%{gitlab_user}](%{gitlab_user_url}). merge_request_merged_comment: > - **MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}). + **SC Combinada:** Solicitação de combinação %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi combinado por [%{gitlab_user}](%{gitlab_user_url}). merge_request_reopened_comment: > - **MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). + **SC Reaberta:** Solicitação de combinação %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi reaberta por [%{gitlab_user}](%{gitlab_user_url}). note_commit_referenced_comment: > - **Referenced in Commit:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in a Commit Note [%{commit_id}](%{commit_url}) on [%{repository}](%{repository_url}): %{commit_note} + **Referenciado em Confirmação:** [%{gitlab_user}](%{gitlab_user_url}) referenciou este WP em uma Nota de Confirmação %{commit_id}](%{commit_url}) em [%{repository}](%{repository_url}): %{commit_note} note_mr_referenced_comment: > - **Referenced in MR:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} + **Referenciado na SC:** [%{gitlab_user}](%{gitlab_user_url}) referenciou este WP em Solicitação de Combinação %{mr_number} [%{mr_title}](%{mr_url}) em [%{repository}](%{repository_url}): %{mr_note} note_mr_commented_comment: > - **Commented in MR:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} + **Comentado na SC:** [%{gitlab_user}](%{gitlab_user_url}) comentado este WP em Solicitação de Combinação %{mr_number} [%{mr_title}](%{mr_url}) em [%{repository}](%{repository_url}): %{mr_note} note_issue_referenced_comment: > - **Referenced in Issue:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} + **Referenciado em Problema:** [%{gitlab_user}](%{gitlab_user_url}) referenciou este WP em Problema %{issue_number} [%{issue_title}](%{issue_url}) em [%{repository}](%{repository_url}): %{issue_note} note_issue_commented_comment: > - **Commented in Issue:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} + **Comentou em Problema:** [%{gitlab_user}](%{gitlab_user_url}) comentou este WP em Problema %{issue_number} [%{issue_title}](%{issue_url}) em [%{repository}](%{repository_url}): %{issue_note} note_snippet_referenced_comment: > - **Referenced in Snippet:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) on [%{repository}](%{repository_url}): %{snippet_note} + **Referenciou em Snippet:** [%{gitlab_user}](%{gitlab_user_url}) referenciou este WP no Snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) em [%{repository}](%{repository_url}): %{snippet_note} issue_opened_referenced_comment: > - **Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). + **Problema Aberto:** Problema %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) foi aberto por [%{gitlab_user}](%{gitlab_user_url}). issue_closed_referenced_comment: > - **Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). + **Problema Fechado:** Problema %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) foi fechado por [%{gitlab_user}](%{gitlab_user_url}). issue_reopened_referenced_comment: > - **Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). + **Problema Reaberto:** Problema %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) foi reaberto por [%{gitlab_user}](%{gitlab_user_url}). push_single_commit_comment: > - **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} + **Submetido em SC:** [%{gitlab_user}](%{gitlab_user_url}) submeteu [%{commit_number}](%{commit_url}) a [%{repository}](%{repository_url}) em %{commit_timestamp}: %{commit_note} push_multiple_commits_comment: > - **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} + **Submetido em SC:** [%{gitlab_user}](%{gitlab_user_url}) submeteu várias confirmações [%{commit_number}](%{commit_url}) a [%{repository}](%{repository_url}) em %{commit_timestamp}: %{commit_note} diff --git a/modules/gitlab_integration/config/locales/crowdin/pt-PT.yml b/modules/gitlab_integration/config/locales/crowdin/pt-PT.yml index 548286d56923..8cfdaaaa5baf 100644 --- a/modules/gitlab_integration/config/locales/crowdin/pt-PT.yml +++ b/modules/gitlab_integration/config/locales/crowdin/pt-PT.yml @@ -20,7 +20,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See docs/COPYRIGHT.rdoc for more details. #++ -pt: +pt-PT: activerecord: errors: models: @@ -33,35 +33,35 @@ pt: labels: invalid_schema: "deve ser um conjunto de hashes com as chaves: cor, título" project_module_gitlab: "GitLab" - permission_show_gitlab_content: "Show GitLab content" + permission_show_gitlab_content: "Mostrar conteúdo GitLab" gitlab_integration: merge_request_opened_comment: > - **MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). + **MR aberto:** Pedido de fusão %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi aberto por [%{gitlab_user}](%{gitlab_user_url}). merge_request_closed_comment: > - **MR Closed:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). + **MR fechado:** Pedido de fusão %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi fechado por [%{gitlab_user}](%{gitlab_user_url}). merge_request_merged_comment: > - **MR Merged:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been merged by [%{gitlab_user}](%{gitlab_user_url}). + **MR fundido:** Pedido de fusão %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi fundido por [%{gitlab_user}](%{gitlab_user_url}). merge_request_reopened_comment: > - **MR Reopened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). + **MR reaberto:** Pedido de fusão %{mr_number} [%{mr_title}](%{mr_url}) para [%{repository}](%{repository_url}) foi reaberto por [%{gitlab_user}](%{gitlab_user_url}). note_commit_referenced_comment: > - **Referenced in Commit:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in a Commit Note [%{commit_id}](%{commit_url}) on [%{repository}](%{repository_url}): %{commit_note} + **Referenciado em Confirmação:** [%{gitlab_user}](%{gitlab_user_url}) referenciou este WP numa Nota de Confirmação [%{commit_id}](%{commit_url}) em [%{repository}](%{repository_url}): %{commit_note} note_mr_referenced_comment: > - **Referenced in MR:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} + **Referenciado em MR:** [%{gitlab_user}](%{gitlab_user_url}) referenciou este WP no Pedido de Fusão %{mr_number} [%{mr_title}](%{mr_url}) em [%{repository}](%{repository_url}): %{mr_note} note_mr_commented_comment: > - **Commented in MR:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Merge Request %{mr_number} [%{mr_title}](%{mr_url}) on [%{repository}](%{repository_url}): %{mr_note} + **Comentado em RM:** [%{gitlab_user}](%{gitlab_user_url}) comentou este WP no Pedido de Fusão %{mr_number} [%{mr_title}](%{mr_url}) em [%{repository}](%{repository_url}): %{mr_note} note_issue_referenced_comment: > - **Referenced in Issue:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} + **Referenciado no Problema:** [%{gitlab_user}](%{gitlab_user_url}) referenciou este WP no Problema %{issue_number} [%{issue_title}](%{issue_url}) em [%{repository}](%{repository_url}): %{issue_note} note_issue_commented_comment: > - **Commented in Issue:** [%{gitlab_user}](%{gitlab_user_url}) commented this WP in Issue %{issue_number} [%{issue_title}](%{issue_url}) on [%{repository}](%{repository_url}): %{issue_note} + **Comentado no Problema:** [%{gitlab_user}](%{gitlab_user_url}) comentou este WP no Problema %{issue_number} [%{issue_title}](%{issue_url}) em [%{repository}](%{repository_url}): %{issue_note} note_snippet_referenced_comment: > - **Referenced in Snippet:** [%{gitlab_user}](%{gitlab_user_url}) referenced this WP in Snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) on [%{repository}](%{repository_url}): %{snippet_note} + **Referenciado no Snippet:** [%{gitlab_user}](%{gitlab_user_url}) referenciou este WP no Snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) em [%{repository}](%{repository_url}): %{snippet_note} issue_opened_referenced_comment: > - **Issue Opened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). + **Problema Aberto:** Problema %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) foi aberto por [%{gitlab_user}](%{gitlab_user_url}). issue_closed_referenced_comment: > - **Issue Closed:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been closed by [%{gitlab_user}](%{gitlab_user_url}). + **Problema Fechado:** Problema %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) foi fechado por [%{gitlab_user}](%{gitlab_user_url}). issue_reopened_referenced_comment: > - **Issue Reopened:** Issue %{issue_number} [%{issue_title}](%{issue_url}) for [%{repository}](%{repository_url}) has been reopened by [%{gitlab_user}](%{gitlab_user_url}). + **Problema Reaberto:** Problema %{issue_number} [%{issue_title}](%{issue_url}) para [%{repository}](%{repository_url}) foi reaberto por [%{gitlab_user}](%{gitlab_user_url}). push_single_commit_comment: > - **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} + **Enviado no MR:** [%{gitlab_user}](%{gitlab_user_url}) enviou [%{commit_number}](%{commit_url}) para [%{repository}](%{repository_url}) em %{commit_timestamp}: %{commit_note} push_multiple_commits_comment: > - **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url}) to [%{repository}](%{repository_url}) at %{commit_timestamp}: %{commit_note} + **Enviado no MR:** [%{gitlab_user}](%{gitlab_user_url}) enviou vários compromissos [%{commit_number}](%{commit_url}) para [%{repository}](%{repository_url}) em %{commit_timestamp}: %{commit_note} diff --git a/modules/gitlab_integration/config/locales/crowdin/zh-CN.yml b/modules/gitlab_integration/config/locales/crowdin/zh-CN.yml index 21dc519abdc8..c55bc8e54a11 100644 --- a/modules/gitlab_integration/config/locales/crowdin/zh-CN.yml +++ b/modules/gitlab_integration/config/locales/crowdin/zh-CN.yml @@ -48,11 +48,11 @@ zh-CN: note_mr_referenced_comment: > **在合并请求中引用**:[%{gitlab_user}](%{gitlab_user_url}) 在 [%{repository}](%{repository_url}) 上的合并请求 %{mr_number} [%{mr_title}](%{mr_url}) 中引用了此工作包: %{mr_note} note_mr_commented_comment: > - **在合并请求中添加注释**:[%{gitlab_user}](%{gitlab_user_url}) 在 [%{repository}](%{repository_url}) 上的合并请求 %{mr_number} [%{mr_title}](%{mr_url}) 中对此工作包添加了注释:%{mr_note} + **在合并请求中添加评论**:[%{gitlab_user}](%{gitlab_user_url}) 在 [%{repository}](%{repository_url}) 上的合并请求 %{mr_number} [%{mr_title}](%{mr_url}) 中对此工作包添加了评论:%{mr_note} note_issue_referenced_comment: > **在问题中引用**:[%{gitlab_user}](%{gitlab_user_url}) 在 [%{repository}](%{repository_url}) 上的问题 %{issue_number} [%{issue_title}](%{issue_url}) 中引用了此工作包:%{issue_note} note_issue_commented_comment: > - **在问题中添加注释**:[%{gitlab_user}](%{gitlab_user_url}) 在 [%{repository}](%{repository_url}) 上的问题 %{issue_number} [%{issue_title}](%{issue_url}) 中对此工作包添加了注释:%{issue_note} + **在问题中添加评论**:[%{gitlab_user}](%{gitlab_user_url}) 在 [%{repository}](%{repository_url}) 上的问题 %{issue_number} [%{issue_title}](%{issue_url}) 中对此工作包添加了评论:%{issue_note} note_snippet_referenced_comment: > **在代码段中引用**:[%{gitlab_user}](%{gitlab_user_url}) 在 [%{repository}](%{repository_url}) 上的代码段 %{snippet_number} [%{snippet_title}](%{snippet_url}) 中引用了此工作包:%{snippet_note} issue_opened_referenced_comment: > @@ -62,6 +62,6 @@ zh-CN: issue_reopened_referenced_comment: > **问题已重新打开**:[%{repository}](%{repository_url}) 的问题 %{issue_number} [%{issue_title}](%{issue_url}) 已由 [%{gitlab_user}](%{gitlab_user_url}) 重新打开。 push_single_commit_comment: > - **在合并请求中推送**:[%{gitlab_user}](%{gitlab_user_url}) 在 %{commit_timestamp} 将 [%{commit_number}](%{commit_url}) 推送到 [%{repository}](%{repository_url}):%{commit_note} + **在合并请求中推送**:[%{gitlab_user}](%{gitlab_user_url}) 在 %{commit_timestamp} 将 [%{commit_number}](%{commit_url}) 推送到 [%{repository}](%{repository_url}): %{commit_note} push_multiple_commits_comment: > - **在合并请求中推送**:[%{gitlab_user}](%{gitlab_user_url}) 在 %{commit_timestamp} 将多个提交 [%{commit_number}](%{commit_url}) 推送到 [%{repository}](%{repository_url}):%{commit_note} + **在合并请求中推送**:[%{gitlab_user}](%{gitlab_user_url}) 在 %{commit_timestamp} 将多个提交 [%{commit_number}](%{commit_url}) 推送到 [%{repository}](%{repository_url}): %{commit_note} diff --git a/modules/gitlab_integration/config/locales/crowdin/zh-TW.yml b/modules/gitlab_integration/config/locales/crowdin/zh-TW.yml index 01490cacdcc4..40a9833d98af 100644 --- a/modules/gitlab_integration/config/locales/crowdin/zh-TW.yml +++ b/modules/gitlab_integration/config/locales/crowdin/zh-TW.yml @@ -33,7 +33,7 @@ zh-TW: labels: invalid_schema: "must be an array of hashes with keys: color, title" project_module_gitlab: "GitLab" - permission_show_gitlab_content: "Show GitLab content" + permission_show_gitlab_content: "顯示 GitLab內容" gitlab_integration: merge_request_opened_comment: > **MR Opened:** Merge request %{mr_number} [%{mr_title}](%{mr_url}) for [%{repository}](%{repository_url}) has been opened by [%{gitlab_user}](%{gitlab_user_url}). diff --git a/modules/grids/config/locales/crowdin/js-fr.yml b/modules/grids/config/locales/crowdin/js-fr.yml index 081f4d32579f..d1b4ba04e64f 100644 --- a/modules/grids/config/locales/crowdin/js-fr.yml +++ b/modules/grids/config/locales/crowdin/js-fr.yml @@ -8,7 +8,7 @@ fr: text: "Certains composants, comme le composant de graphique des lots de travaux, ne sont disponibles que dans l'édition Entreprise." link: 'Version Entreprise' widgets: - missing_permission: "You don't have the necessary permissions to view this widget." + missing_permission: "Vous n'avez pas les autorisations nécessaires pour voir ce widget." custom_text: title: 'Texte personnalisé' documents: diff --git a/modules/grids/config/locales/crowdin/js-hu.yml b/modules/grids/config/locales/crowdin/js-hu.yml index b99f932267e2..b4eeeac35780 100644 --- a/modules/grids/config/locales/crowdin/js-hu.yml +++ b/modules/grids/config/locales/crowdin/js-hu.yml @@ -8,7 +8,7 @@ hu: text: "Some widgets, like the work package graph widget, are only available in the Enterprise edition." link: 'Enterprise edition.' widgets: - missing_permission: "You don't have the necessary permissions to view this widget." + missing_permission: "Nincs meg a szükséges jogosultsága a widget megtekintéséhez." custom_text: title: 'Egyéni szöveg' documents: diff --git a/modules/grids/config/locales/crowdin/js-ko.yml b/modules/grids/config/locales/crowdin/js-ko.yml index 986c2254921c..0ff08ebf3717 100644 --- a/modules/grids/config/locales/crowdin/js-ko.yml +++ b/modules/grids/config/locales/crowdin/js-ko.yml @@ -8,7 +8,7 @@ ko: text: "작업 패키지 그래프 위젯 같은 일부 위젯은 다음에서만 사용 가능합니다:" link: 'Enterprise edition' widgets: - missing_permission: "You don't have the necessary permissions to view this widget." + missing_permission: "이 위젯을 보는 데 필요한 권한이 없습니다." custom_text: title: '사용자 지정 텍스트' documents: diff --git a/modules/grids/config/locales/crowdin/js-ms.yml b/modules/grids/config/locales/crowdin/js-ms.yml index ac5ff97f96f9..6d2b04941ad8 100644 --- a/modules/grids/config/locales/crowdin/js-ms.yml +++ b/modules/grids/config/locales/crowdin/js-ms.yml @@ -1,67 +1,67 @@ ms: js: grid: - add_widget: 'Add widget' - remove: 'Remove widget' - configure: 'Configure widget' + add_widget: 'Tambah widget' + remove: 'Buang widget' + configure: 'Konfigurasi widget' upsale: text: "Some widgets, like the work package graph widget, are only available in the Enterprise edition." link: 'Enterprise edition.' widgets: - missing_permission: "You don't have the necessary permissions to view this widget." + missing_permission: "Anda tidak mempunyai kebenaran yang diperlukan untuk melihat widget ini." custom_text: - title: 'Custom text' + title: 'Teks custom' documents: - title: 'Documents' - no_results: 'No documents yet.' + title: 'Dokumen' + no_results: 'Tiada dokumen lagi.' members: - title: 'Members' - no_results: 'No visible members.' - view_all_members: 'View all members' - add: 'Member' - too_many: 'Displaying %{count} of %{total} members.' + title: 'Ahli' + no_results: 'Tiada ahli nyata.' + view_all_members: 'Lihat semua ahli' + add: 'Ahli' + too_many: 'Memaparkan %{count} dari %{total} ahli.' news: - title: 'News' - at: 'at' - no_results: 'Nothing new to report.' + title: 'Berita' + at: 'pada' + no_results: 'Tiada benda baru untuk dilapor.' project_description: - title: 'Project description' - no_results: "No description has been written yet. One can be provided in the 'Project settings'." + title: 'Penerangan projek' + no_results: "Tiada penerangan yang tertulis lagi. Penerangan boleh diberikan di dalam 'Seting Projek'." project_details: - title: 'Project details' - no_results: 'No custom fields have been defined for projects.' + title: 'Butiran projek' + no_results: 'Tiada medan langganan yang telah ditetapkan untuk projek.' project_status: - title: 'Project status' - not_started: 'Not started' - on_track: 'On track' - off_track: 'Off track' - at_risk: 'At risk' - not_set: 'Not set' - finished: 'Finished' - discontinued: 'Discontinued' + title: 'Status projek' + not_started: 'Belum dimulakan' + on_track: 'Ikut jadual' + off_track: 'Lari jadual' + at_risk: 'Berisiko' + not_set: 'Tidak ditetapkan' + finished: 'Selesai' + discontinued: 'Dihentikan' subprojects: - title: 'Subprojects' - no_results: 'No subprojects.' + title: 'Subprojek' + no_results: 'Tiada subprojek.' time_entries_current_user: - title: 'My spent time' - displayed_days: 'Days displayed in the widget:' + title: 'Masa yang saya gunakan' + displayed_days: 'Hari yang dipaparkan dalam widget:' time_entries_list: - title: 'Spent time (last 7 days)' - no_results: 'No time entries for the last 7 days.' + title: 'Masa yang diguna (7 hari lepas)' + no_results: 'Tiada catatan masa untuk 7 hari yang lalu.' work_packages_accountable: - title: "Work packages I am accountable for" + title: "Pakej kerja yang saya bertanggungjawab" work_packages_assigned: - title: 'Work packages assigned to me' + title: 'Pakej kerja yang ditugaskan pada saya' work_packages_created: - title: 'Work packages created by me' + title: 'Pakej kerja yang saya cipta' work_packages_watched: - title: 'Work packages watched by me' + title: 'Pakej kerja yang saya pantau' work_packages_table: - title: 'Work packages table' + title: 'Jadual pakej kerja' work_packages_graph: - title: 'Work packages graph' + title: 'Graf pakej kerja' work_packages_calendar: - title: 'Calendar' + title: 'Kalendar' work_packages_overview: - title: 'Work packages overview' - placeholder: 'Click to edit ...' + title: 'Gambaran keseluruhan pakej kerja' + placeholder: 'Klik untuk edit ...' diff --git a/modules/grids/config/locales/crowdin/js-pt-BR.yml b/modules/grids/config/locales/crowdin/js-pt-BR.yml index 589f704ef934..c39352b80807 100644 --- a/modules/grids/config/locales/crowdin/js-pt-BR.yml +++ b/modules/grids/config/locales/crowdin/js-pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: js: grid: add_widget: 'Adicionar widget' diff --git a/modules/grids/config/locales/crowdin/js-pt-PT.yml b/modules/grids/config/locales/crowdin/js-pt-PT.yml index 924418f14a34..470c6a6212a3 100644 --- a/modules/grids/config/locales/crowdin/js-pt-PT.yml +++ b/modules/grids/config/locales/crowdin/js-pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: js: grid: add_widget: 'Adicionar widget' @@ -8,7 +8,7 @@ pt: text: "Alguns widgets, como o widget gráfico do pacote de trabalho, estão disponíveis apenas na edição Enterprise." link: 'Edição Enterprise.' widgets: - missing_permission: "You don't have the necessary permissions to view this widget." + missing_permission: "Não tem as permissões necessárias para visualizar este widget." custom_text: title: 'Texto personalizado' documents: diff --git a/modules/grids/config/locales/crowdin/ms.yml b/modules/grids/config/locales/crowdin/ms.yml index b1cda5f505a2..6064500c7c01 100644 --- a/modules/grids/config/locales/crowdin/ms.yml +++ b/modules/grids/config/locales/crowdin/ms.yml @@ -1,16 +1,16 @@ ms: grids: - label_widget_in_grid: "Widget contained in Grid %{grid_name}" + label_widget_in_grid: "Widget yang terdapat dalam Grid %{grid_name}" activerecord: attributes: grids/grid: - page: "Page" - row_count: "Number of rows" - column_count: "Number of columns" - widgets: "Widgets" + page: "Halaman" + row_count: "Bilangan baris" + column_count: "Bilangan lajur" + widgets: "Widget" errors: models: grids/grid: - overlaps: 'overlap.' - outside: 'is outside of the grid.' - end_before_start: 'end value needs to be larger than the start value.' + overlaps: 'bertindih.' + outside: 'luar daripada grid' + end_before_start: 'nilai akhir perlu lebih besar daripada nilai mula.' diff --git a/modules/grids/config/locales/crowdin/pt-BR.yml b/modules/grids/config/locales/crowdin/pt-BR.yml index 1f8442bd164d..94418b933836 100644 --- a/modules/grids/config/locales/crowdin/pt-BR.yml +++ b/modules/grids/config/locales/crowdin/pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: grids: label_widget_in_grid: "Widget contido na Grade %{grid_name}" activerecord: diff --git a/modules/grids/config/locales/crowdin/pt-PT.yml b/modules/grids/config/locales/crowdin/pt-PT.yml index 34c68b02bce0..dbc6415e633a 100644 --- a/modules/grids/config/locales/crowdin/pt-PT.yml +++ b/modules/grids/config/locales/crowdin/pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: grids: label_widget_in_grid: "Widget contido na Grelha %{grid_name}" activerecord: diff --git a/modules/job_status/config/locales/crowdin/js-ms.yml b/modules/job_status/config/locales/crowdin/js-ms.yml index 7a10dfee9ef8..6da3079e8e32 100644 --- a/modules/job_status/config/locales/crowdin/js-ms.yml +++ b/modules/job_status/config/locales/crowdin/js-ms.yml @@ -1,17 +1,17 @@ ms: js: job_status: - download_starts: 'The download should start automatically.' - click_to_download: 'Or click here to download.' - title: 'Background job status' - redirect: 'You are being redirected.' - redirect_link: 'Please click here to continue.' - redirect_errors: 'Due to these errors, you will not be redirected automatically.' - errors: 'Some errors have occurred' + download_starts: 'Proses muat turun akan mula secara automatik.' + click_to_download: 'Atau klik sini untuk muat turun.' + title: 'Latar belakang status kerja' + redirect: 'Anda sedang dialihkan.' + redirect_link: 'Sila klik sini untuk teruskan.' + redirect_errors: 'Disebabkan ralat ini, anda tidak akan dialihkan secara automatik.' + errors: "Beberapa ralat telah berlaku\n" generic_messages: - not_found: 'This job could not be found.' - in_queue: 'The job has been queued and will be processed shortly.' - in_process: 'The job is currently being processed.' - error: 'The job has failed to complete.' - cancelled: 'The job has been cancelled due to an error.' - success: 'The job completed successfully.' + not_found: 'Kerja ini tidak dapat dijumpai.' + in_queue: 'Kerja ini sedang menunggu giliran dan akan di proses sebentar lagi.' + in_process: 'Kerja ini sedang diproses.' + error: 'Kerja ini gagal disiapkan.' + cancelled: 'Kerja ini telah dibatalkan disebabkan oleh sebuah ralat.' + success: 'Kerja ini selesai dengan jayanya.' diff --git a/modules/job_status/config/locales/crowdin/js-pt-BR.yml b/modules/job_status/config/locales/crowdin/js-pt-BR.yml index fb2cf29d3368..f69fcd5a0e39 100644 --- a/modules/job_status/config/locales/crowdin/js-pt-BR.yml +++ b/modules/job_status/config/locales/crowdin/js-pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: js: job_status: download_starts: 'O download deve iniciar automaticamente.' diff --git a/modules/job_status/config/locales/crowdin/js-pt-PT.yml b/modules/job_status/config/locales/crowdin/js-pt-PT.yml index ac1e013d8119..1dbc20237719 100644 --- a/modules/job_status/config/locales/crowdin/js-pt-PT.yml +++ b/modules/job_status/config/locales/crowdin/js-pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: js: job_status: download_starts: 'O download deve iniciar automaticamente.' diff --git a/modules/job_status/config/locales/crowdin/pt-BR.yml b/modules/job_status/config/locales/crowdin/pt-BR.yml index ec08d1fbbb60..45c91159ffe6 100644 --- a/modules/job_status/config/locales/crowdin/pt-BR.yml +++ b/modules/job_status/config/locales/crowdin/pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: plugin_openproject_job_status: name: "Situação do trabalho OpenProject" description: "Listagem e situação dos trabalhos em segundo plano." diff --git a/modules/job_status/config/locales/crowdin/pt-PT.yml b/modules/job_status/config/locales/crowdin/pt-PT.yml index 01b7b950b87b..bec78ecb81c7 100644 --- a/modules/job_status/config/locales/crowdin/pt-PT.yml +++ b/modules/job_status/config/locales/crowdin/pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: plugin_openproject_job_status: name: "Estado do trabalho OpenProject" description: "Listagem e estado dos trabalhos em segundo plano." diff --git a/modules/ldap_groups/config/locales/crowdin/ms.yml b/modules/ldap_groups/config/locales/crowdin/ms.yml index 3cd8fb469f14..e24a0ebb4176 100644 --- a/modules/ldap_groups/config/locales/crowdin/ms.yml +++ b/modules/ldap_groups/config/locales/crowdin/ms.yml @@ -6,53 +6,53 @@ ms: attributes: ldap_groups/synchronized_group: dn: 'DN' - ldap_auth_source: 'LDAP connection' - sync_users: 'Sync users' + ldap_auth_source: 'Sambungan LDAP' + sync_users: 'Selaraskan pengguna' ldap_groups/synchronized_filter: - filter_string: 'LDAP filter' - ldap_auth_source: 'LDAP connection' - group_name_attribute: "Group name attribute" - sync_users: 'Sync users' - base_dn: "Search base DN" + filter_string: 'Penapis LDAP' + ldap_auth_source: 'Sambungan LDAP' + group_name_attribute: "Atribut nama kumpulan" + sync_users: 'Selaraskan pengguna' + base_dn: "Pangkalan carian DN" models: - ldap_groups/synchronized_group: 'Synchronized LDAP group' - ldap_groups/synchronized_filter: 'LDAP Group synchronization filter' + ldap_groups/synchronized_group: 'Kumpulan LDAP yang diselaraskan' + ldap_groups/synchronized_filter: 'Penapis penyelarasan kumpulan LDAP' errors: models: ldap_groups/synchronized_filter: must_contain_base_dn: "Filter base DN must be contained within the LDAP connection's base DN" ldap_groups: - label_menu_item: 'LDAP group synchronization' + label_menu_item: 'Sinkronisasi kumpulan LDAP' label_group_key: 'LDAP group filter key' - label_synchronize: 'Synchronize' + label_synchronize: 'Selaraskan' settings: - name_attribute: 'LDAP groups name attribute' - name_attribute_text: 'The LDAP attribute used for naming the OpenProject group when created by a filter' + name_attribute: 'Atribut nama kumpulan LDAP' + name_attribute_text: 'Atribut LDAP yang digunakan untuk menamakan kumpulan OpenProject apabila dicipta oleh penapis' synchronized_filters: - add_new: 'Add synchronized LDAP filter' - singular: 'LDAP Group synchronization filter' - plural: 'LDAP Group synchronization filters' + add_new: 'Tambah penapis LDAP yang diselaraskan' + singular: 'Penapis penyelarasan kumpulan LDAP' + plural: 'Penapis penyelarasan kumpulan LDAP' label_n_groups_found: - one: "1 group found by the filter" - other: "%{count} groups found by the filter" - zero: "No groups were found by the filter" + one: "1 kumpulan dijumpai oleh penapis" + other: "%{count} kumpulan dijumpai oleh penapis" + zero: "Tiada kumpulan yang dijumpai penapis" destroy: - title: 'Remove synchronized filter %{name}' - confirmation: "If you continue, the synchronized filter %{name} and all groups %{groups_count} created through it will be removed." - removed_groups: "Warning: This will remove the following groups from OpenProject and remove it from all projects!" - verification: "Enter the filter name %{name} to verify the deletion." + title: 'Buang penapis yang diselaraskan %{name}' + confirmation: "Jika anda teruskan, penapis yang diselaraskan %{name} dan semua kumpulan %{groups_count} yang dicipta melalui itu akan dikeluarkan." + removed_groups: "Amaran: Ini akan menghapuskan kumpulan berikut dari OpenProject dan menghapusnya dari semua projek!" + verification: "Masukkan nama penapis %{name} untuk mengesahkan pembuangan." form: - group_name_attribute_text: 'Enter the attribute of the LDAP group used for setting the OpenProject group name.' - filter_string_text: 'Enter the RFC4515 LDAP filter that returns groups in your LDAP to synchronize with OpenProject.' + group_name_attribute_text: 'Masukkan atribut kumpulan LDAP yang digunakan untuk tetapkan nama kumpulan OpenProject.' + filter_string_text: 'Masukkan penapis LDAP RFC4515 yang kembalikan kumpulan dalam LDAP untuk selaraskan dengan OpenProject.' base_dn_text: > Enter the search base DN to use for this filter. It needs to be below the base DN of the selected LDAP connection. Leave this option empty to reuse the base DN of the connection synchronized_groups: - add_new: 'Add synchronized LDAP group' + add_new: 'Tambah kumpulan LDAP yang diselaraskan' destroy: - title: 'Remove synchronized group %{name}' - confirmation: "If you continue, the synchronized group %{name} and all %{users_count} users synchronized through it will be removed." - info: "Note: The OpenProject group itself and members added outside this LDAP synchronization will not be removed." - verification: "Enter the group's name %{name} to verify the deletion." + title: 'Keluarkan kumpulan yang diselaraskan %{name}' + confirmation: "Jika anda teruskan, kumpulan yang diselaraskan %{name} dan semua pengguna %{users_count} yang diselaraskan melalui itu akan dikeluarkan." + info: "Perhatian: Kumpulan OpenProject itu sendiri dan ahli yang ditambah di luar penjanaan LDAP tidak akan dikeluarkan." + verification: "Masukkan nama kumpulan %{name} untuk mengesahkan pembuangan." help_text_html: | This module allows you to set up a synchronization between LDAP and OpenProject groups. It depends on LDAP groups need to use the groupOfNames / memberOf attribute set to be working with OpenProject. diff --git a/modules/ldap_groups/config/locales/crowdin/pt-BR.yml b/modules/ldap_groups/config/locales/crowdin/pt-BR.yml index 520680581282..5674ce36a1e4 100644 --- a/modules/ldap_groups/config/locales/crowdin/pt-BR.yml +++ b/modules/ldap_groups/config/locales/crowdin/pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: plugin_openproject_ldap_groups: name: "Grupos LDAP do OpenProject" description: "Sincronização de associações de grupos LDAP." diff --git a/modules/ldap_groups/config/locales/crowdin/pt-PT.yml b/modules/ldap_groups/config/locales/crowdin/pt-PT.yml index e78e0ac38495..3bf9b12f09ed 100644 --- a/modules/ldap_groups/config/locales/crowdin/pt-PT.yml +++ b/modules/ldap_groups/config/locales/crowdin/pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: plugin_openproject_ldap_groups: name: "Grupos LDAP do OpenProject" description: "Sincronização de associações de grupos LDAP." diff --git a/modules/meeting/config/locales/crowdin/hu.yml b/modules/meeting/config/locales/crowdin/hu.yml index bae9e9033bcf..2bfd634dc3ce 100644 --- a/modules/meeting/config/locales/crowdin/hu.yml +++ b/modules/meeting/config/locales/crowdin/hu.yml @@ -34,7 +34,7 @@ hu: notes: "Jegyzet" participants: "Közreműködők" participant: - one: "1 Participant" + one: "1 résztvevő" other: "%{count} résztvevő" participants_attended: "Résztvevők" participants_invited: "Meghívottak" @@ -96,9 +96,9 @@ hu: label_start_date: "Kezdési dátum" meeting: copy: - title: "Copy meeting %{title}" - agenda: "Copy agenda" - agenda_text: "Copy the agenda of the old meeting" + title: "%{title} megbeszélés másolása" + agenda: "Napirend másolása" + agenda_text: "A régi megbeszélés napirendjének másolása" email: open_meeting_link: "Nyitott megbeszélés" invited: @@ -142,43 +142,43 @@ hu: text_meeting_minutes_for_meeting: 'a "%{meeting}" megbeszélés jegyzőkönyve' text_notificiation_invited: "Ez a levél alább egy ics bejegyzést tartalmaz a megbeszélésről:" text_meeting_empty_heading: "A megbeszélésed üres." - 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_edit_title: "Edit meeting title" - label_meeting_delete: "Delete meeting" + text_meeting_empty_description_1: "Kezdje az alábbi napirendi pontok hozzáadásával. Az egyes napirendi pontok lehetnek egyszerű címek, de további részleteket, például időtartamot és megjegyzéseket is hozzáadhat." + text_meeting_empty_description_2: "A meglévő munkacsomagokhoz is hozzáadhat hivatkozásokat. Ilyenkor a kapcsolódó jegyzetek automatikusan láthatóvá válnak a munkacsomag \"Megbeszélések\" lapján." + label_meeting_empty_action: "Napirendi pont hozzáadása" + label_meeting_actions: "Megbeszélések intézkedései" + label_meeting_edit_title: "Megbeszélés címének szerkesztése" + label_meeting_delete: "Megbeszélés törlése" label_meeting_created_by: "Létrehozta" - label_meeting_last_updated: "Last updated" - label_agenda_item_undisclosed_wp: "Work package #%{id} not visible" - label_agenda_item_deleted_wp: "Deleted work package reference" - label_agenda_item_actions: "Agenda items actions" + label_meeting_last_updated: "Utoljára frissítve" + label_agenda_item_undisclosed_wp: "Munkacsomag #%{id} nem látható" + label_agenda_item_deleted_wp: "Törölt munkacsomag-hivatkozás" + label_agenda_item_actions: "A napirendi pontok intézkedései" label_agenda_item_move_to_top: "Mozgatás felfelé" label_agenda_item_move_to_bottom: "Mozgatás az aljára" label_agenda_item_move_up: "Mozgatás felfelé" label_agenda_item_move_down: "Mozgás lefelé" label_agenda_item_add_notes: "Megjegyzések hozzáadása" - label_meeting_details: "Meeting details" - label_meeting_details_edit: "Edit meeting details" + label_meeting_details: "A megbeszélés részletei" + label_meeting_details_edit: "Megbeszélés részleteinek szerkesztése" label_meeting_state_open: "Open" label_meeting_state_closed: "Lezárva" - label_meeting_reopen_action: "Reopen meeting" - label_meeting_close_action: "Close meeting" - text_meeting_open_description: "This meeting is open. You can add/remove agenda items and edit them as you please. After the meeting is over, close it to lock it." - text_meeting_closed_description: "This meeting is closed. You cannot add/remove agenda items anymore." - label_meeting_manage_participants: "Manage participants" - label_meeting_no_participants: "No participants" - label_meeting_show_hide_participants: "Show/hide %{count} more" + label_meeting_reopen_action: "A megbeszélés újranyitása" + label_meeting_close_action: "Megbeszélés lezárása" + text_meeting_open_description: "Ez a megbeszélés nyitott. A napirendi pontokat tetszés szerint hozzáadhatja/eltávolíthatja és szerkesztheti. A megbeszélés végeztével zárja be, hogy archíválja azt." + text_meeting_closed_description: "Ez a megbeszélés zárt. Többé nem tud napirendi pontokat hozzáadni/eltávolítani." + label_meeting_manage_participants: "Résztvevők kezelése" + label_meeting_no_participants: "Nincsenek résztvevők" + label_meeting_show_hide_participants: "%{count} további elem megjelenítése/elrejtése" label_meeting_show_all_participants: "Minden megjelenítése" - 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." - label_add_work_package_to_meeting_dialog_title: "Add work package to meeting" - label_add_work_package_to_meeting_dialog_button: "Add to meeting" + label_meeting_add_participants: "Résztvevők hozzáadása" + text_meeting_not_editable_anymore: "Ez a megbeszélés már nem szerkeszthető." + text_meeting_not_present_anymore: "Ez a megbeszélés törlésre került. Kérjük, válasszon ki egy másik megbeszélést." + label_add_work_package_to_meeting_dialog_title: "Munkacsomag hozzáadása a megbeszéléshez" + label_add_work_package_to_meeting_dialog_button: "Hozzáadás a megbeszéléshez" label_meeting_selection_caption: "It's only possible to add this work package to upcoming or ongoing open meetings." - text_add_work_package_to_meeting_description: "A work package can be added to one or multiple meetings for discussion. Any notes concerning it are also visible here." - text_agenda_item_no_notes: "No notes provided" - text_agenda_item_not_editable_anymore: "This agenda item is not editable anymore." - text_work_package_has_no_upcoming_meeting_agenda_items: "This work package is not scheduled in an upcoming meeting agenda yet." - text_work_package_add_to_meeting_hint: "Use the \"Add to meeting\" button to add this work package to an upcoming meeting." - text_work_package_has_no_past_meeting_agenda_items: "This work package was not mentioned in a past meeting." + text_add_work_package_to_meeting_description: "Egy munkacsomagot egy vagy több megbeszéléshez is hozzá lehet adni megvitatásra. Az ezzel kapcsolatos megjegyzések szintén itt láthatók." + text_agenda_item_no_notes: "Nincs hozzáadott jegyzet. " + text_agenda_item_not_editable_anymore: "Ez a napirendi pont már nem szerkeszthető." + text_work_package_has_no_upcoming_meeting_agenda_items: "Ez a munkacsomag még nem szerepel a következő megbeszélések napirendjén." + text_work_package_add_to_meeting_hint: "Használja a \"Hozzáadás a megbeszéléshez\" gombot, ha ezt a munkacsomagot hozzá kívánja adni egy közelgő értekezlethez." + text_work_package_has_no_past_meeting_agenda_items: "Ez a munkacsomag nem került említésre egy korábbi megbeszélésen." diff --git a/modules/meeting/config/locales/crowdin/js-ms.yml b/modules/meeting/config/locales/crowdin/js-ms.yml index a633717befab..d209653a73bb 100644 --- a/modules/meeting/config/locales/crowdin/js-ms.yml +++ b/modules/meeting/config/locales/crowdin/js-ms.yml @@ -21,4 +21,4 @@ #++ ms: js: - label_meetings: 'Meetings' + label_meetings: 'Mesyuarat' diff --git a/modules/meeting/config/locales/crowdin/js-pt-BR.yml b/modules/meeting/config/locales/crowdin/js-pt-BR.yml index 5f850f4538e2..47c62b8943fd 100644 --- a/modules/meeting/config/locales/crowdin/js-pt-BR.yml +++ b/modules/meeting/config/locales/crowdin/js-pt-BR.yml @@ -19,6 +19,6 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: js: label_meetings: 'Reuniões' diff --git a/modules/meeting/config/locales/crowdin/js-pt-PT.yml b/modules/meeting/config/locales/crowdin/js-pt-PT.yml index 5f850f4538e2..16cdac936349 100644 --- a/modules/meeting/config/locales/crowdin/js-pt-PT.yml +++ b/modules/meeting/config/locales/crowdin/js-pt-PT.yml @@ -19,6 +19,6 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: js: label_meetings: 'Reuniões' diff --git a/modules/meeting/config/locales/crowdin/ms.seeders.yml b/modules/meeting/config/locales/crowdin/ms.seeders.yml index 595a75234889..ffdf184cb36f 100644 --- a/modules/meeting/config/locales/crowdin/ms.seeders.yml +++ b/modules/meeting/config/locales/crowdin/ms.seeders.yml @@ -9,21 +9,21 @@ ms: demo-project: meetings: item_0: - title: Weekly + title: Mingguan meeting_agenda_items: item_0: - title: Good news + title: Berita baik item_1: - title: Updates from development team + title: Kemas kini dari pasukan pembangunan item_2: - title: Updates from product team + title: Kemas kini dari pasukan produk item_3: - title: Updates from marketing team + title: Kemas kini dari pasukan pemasaran item_4: - title: Updates from sales team + title: Kemas kini dari pasukan jualan item_5: - title: Review of quarterly goals + title: Penilaian matlamat suku tahunan item_6: - title: Core values feedback + title: Maklum balas nilai teras item_7: - title: General topics + title: Topik umum diff --git a/modules/meeting/config/locales/crowdin/ms.yml b/modules/meeting/config/locales/crowdin/ms.yml index a6f52fc90ea7..9ad233d4322b 100644 --- a/modules/meeting/config/locales/crowdin/ms.yml +++ b/modules/meeting/config/locales/crowdin/ms.yml @@ -28,156 +28,156 @@ ms: activerecord: attributes: meeting: - type: "Meeting type" - location: "Location" - duration: "Duration" - notes: "Notes" - participants: "Participants" + type: "Jenis mesyuarat" + location: "Lokasi" + duration: "Tempoh" + notes: "Nota" + participants: "Peserta" participant: - other: "%{count} Participants" - participants_attended: "Attendees" - participants_invited: "Invitees" - project: "Project" - start_date: "Date" - start_time: "Time" - start_time_hour: "Starting time" + other: "1 Peserta" + participants_attended: "Peserta" + participants_invited: "Jemputan" + project: "Projek" + start_date: "Tarikh" + start_time: "Masa" + start_time_hour: "Masa mula" meeting_agenda_items: - title: "Title" - author: "Responsible" - duration_in_minutes: "Duration (min)" - description: "Notes" + title: "Tajuk" + author: "Bertanggungjawab" + duration_in_minutes: "Tempoh (minit)" + description: "Nota" errors: messages: - invalid_time_format: "is not a valid time. Required format: HH:MM" + invalid_time_format: "bukan masa yang sah. Format yang diperlukan: JJ:MM" models: - structured_meeting: "Meeting (dynamic)" - meeting_agenda_item: "Agenda item" + structured_meeting: "Mesyuarat (dinamik)" + meeting_agenda_item: "Item agenda" meeting_agenda: "Agenda" - meeting_minutes: "Minutes" + meeting_minutes: "Minit mesyuarat" activity: filter: - meeting: "Meetings" - description_attended: "attended" - description_invite: "invited" + meeting: "Mesyuarat" + description_attended: "dihadiri" + description_invite: "dijemput" events: - meeting: Meeting edited - meeting_agenda: Meeting agenda edited - meeting_agenda_closed: Meeting agenda closed - meeting_agenda_opened: Meeting agenda opened - meeting_minutes: Meeting minutes edited - meeting_minutes_created: Meeting minutes created - error_notification_with_errors: "Failed to send notification. The following recipients could not be notified: %{recipients}" - label_meeting: "Meeting" - label_meeting_plural: "Meetings" - label_meeting_new: "New Meeting" - label_meeting_edit: "Edit Meeting" + meeting: Mesyuarat telah diedit + meeting_agenda: Agenda mesyuarat yang diedit + meeting_agenda_closed: Agenda mesyuarat ditutup + meeting_agenda_opened: Agenda mesyuarat dibuka + meeting_minutes: Minit mesyuarat diedit + meeting_minutes_created: Minit mesyuarat dicipta + error_notification_with_errors: "Gagal untuk hantar pemberitahuan. Penerima berikut tidak dapat diberitahu: %{recipients}" + label_meeting: "Mesyuarat" + label_meeting_plural: "Mesyuarat" + label_meeting_new: "Mesyuarat Baharu" + label_meeting_edit: "Edit mesyuarat" label_meeting_agenda: "Agenda" - label_meeting_minutes: "Minutes" - label_meeting_close: "Close" - label_meeting_open: "Open" - label_meeting_agenda_close: "Close the agenda to begin the Minutes" - label_meeting_date_time: "Date/Time" - label_meeting_diff: "Diff" - label_upcoming_meetings: "Upcoming meetings" - label_past_meetings: "Past meetings" - label_upcoming_meetings_short: "Upcoming" - label_past_meetings_short: "Past" - label_involvement: "Involvement" - label_upcoming_invitations: "Upcoming invitations" - label_past_invitations: "Past invitations" - label_attendee: "Attendee" - label_author: "Creator" - label_notify: "Send for review" - label_icalendar: "Send iCalendar" - label_icalendar_download: "Download iCalendar event" + label_meeting_minutes: "Minit" + label_meeting_close: "Tutup" + label_meeting_open: "Buka" + label_meeting_agenda_close: "Tutup agenda untuk mulakan minit" + label_meeting_date_time: "Tarikh/Masa" + label_meeting_diff: "Beza" + label_upcoming_meetings: "Mesyuarat akan datang" + label_past_meetings: "Mesyuarat lalu" + label_upcoming_meetings_short: "Akan Datang" + label_past_meetings_short: "Lalu" + label_involvement: "Penglibatan" + label_upcoming_invitations: "Jemputan akan datang" + label_past_invitations: "Jemputan lalu" + label_attendee: "Peserta" + label_author: "Pencipta" + label_notify: "Hantar untuk semakan" + label_icalendar: "Hantar iCalendar\n" + label_icalendar_download: "Muat turun acara dalam iCalendar" label_version: "Versi" - label_time_zone: "Time zone" - label_start_date: "Start date" + label_time_zone: "Zon waktu" + label_start_date: "Tarikh mula" meeting: copy: - title: "Copy meeting %{title}" - agenda: "Copy agenda" - agenda_text: "Copy the agenda of the old meeting" + title: "Salin mesyuarat %{title}" + agenda: "Salin agenda" + agenda_text: "Salin agenda mesyuarat lama" email: - open_meeting_link: "Open meeting" + open_meeting_link: "Buka mesyuarat" invited: - summary: "%{actor} has sent you an invitation for the meeting %{title}" + summary: "%{actor} menghantar anda jemputan untuk mesyuarat %{title}" rescheduled: header: "Meeting %{title} has been rescheduled" - summary: "Meeting %{title} has been rescheduled by %{actor}" - body: "The meeting %{title} has been rescheduled by %{actor}." - old_date_time: "Old date/time" - new_date_time: "New date/time" - label_mail_all_participants: "Send email to all participants" + summary: "Mesyuarat %{title} telah dijadual semula oleh %{actor}" + body: "Mesyuarat %{title} telah dijadual semula oleh %{actor}" + old_date_time: "Tarikh/masa lama" + new_date_time: "Tarikh/masa baru" + label_mail_all_participants: "Hantar emel ke semua peserta" types: - classic: 'Classic' - classic_text: 'Organize your meeting in a formattable text agenda and protocol.' - structured: 'Dynamic' - structured_text: 'Organize your meeting as a list of agenda items, optionally linking them to a work package.' - structured_text_copy: 'Copying a meeting will currently not copy the associated meeting agenda items, just the details' - copied: "Copied from Meeting #%{id}" - notice_successful_notification: "Notification sent successfully" - notice_timezone_missing: No time zone is set and %{zone} is assumed. To choose your time zone, please click here. - permission_create_meetings: "Create meetings" - permission_edit_meetings: "Edit meetings" - permission_delete_meetings: "Delete meetings" - permission_view_meetings: "View meetings" - permission_create_meeting_agendas: "Create meeting agendas" - permission_create_meeting_agendas_explanation: "Allows editing the Classic Meeting's agenda content." - permission_manage_agendas: "Manage agendas" - permission_manage_agendas_explanation: "Allows managing the Dynamic Meeting's agenda items." - permission_close_meeting_agendas: "Close agendas" - permission_send_meeting_agendas_notification: "Send review notification for agendas" - permission_create_meeting_minutes: "Manage minutes" - permission_send_meeting_minutes_notification: "Send review notification for minutes" - permission_meetings_send_invite: "Invite users to meetings" - permission_send_meeting_agendas_icalendar: "Send meeting agenda as calendar entry" - project_module_meetings: "Meetings" - text_duration_in_hours: "Duration in hours" - text_in_hours: "in hours" - text_meeting_agenda_for_meeting: 'agenda for the meeting "%{meeting}"' - text_meeting_closing_are_you_sure: "Are you sure you want to close the meeting agenda?" - text_meeting_agenda_open_are_you_sure: "This will overwrite all changes in the minutes! Do you want to continue?" - text_meeting_minutes_for_meeting: 'minutes for the meeting "%{meeting}"' - text_notificiation_invited: "This mail contains an ics entry for the meeting below:" - text_meeting_empty_heading: "Your meeting is empty" - 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_edit_title: "Edit meeting title" - label_meeting_delete: "Delete meeting" - label_meeting_created_by: "Created by" - label_meeting_last_updated: "Last updated" - label_agenda_item_undisclosed_wp: "Work package #%{id} not visible" - label_agenda_item_deleted_wp: "Deleted work package reference" - label_agenda_item_actions: "Agenda items actions" - label_agenda_item_move_to_top: "Move to top" - label_agenda_item_move_to_bottom: "Move to bottom" - label_agenda_item_move_up: "Move up" - label_agenda_item_move_down: "Move down" - label_agenda_item_add_notes: "Add notes" - label_meeting_details: "Meeting details" - label_meeting_details_edit: "Edit meeting details" - label_meeting_state_open: "Open" - label_meeting_state_closed: "Closed" - label_meeting_reopen_action: "Reopen meeting" - label_meeting_close_action: "Close meeting" - text_meeting_open_description: "This meeting is open. You can add/remove agenda items and edit them as you please. After the meeting is over, close it to lock it." - text_meeting_closed_description: "This meeting is closed. You cannot add/remove agenda items anymore." - 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: "Show all" - 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." - label_add_work_package_to_meeting_dialog_title: "Add work package to meeting" - label_add_work_package_to_meeting_dialog_button: "Add to meeting" + classic: 'Klasik' + classic_text: 'Susun mesyuarat anda dalam agenda teks boleh format dan protokol.' + structured: 'Dinamik' + structured_text: 'Susun mesyuarat anda sebagai senarai butiran agenda, secara pilihan menghubungnya kepada pakej kerja.' + structured_text_copy: 'Menyalin mesyuarat pada masa ini tidak akan menyalin item agenda mesyuarat yang berkaitan, hanya butiran sahaja' + copied: "Salin dari mesyuarat #%{id}" + notice_successful_notification: "Pemberitahuan berjaya dihantar" + notice_timezone_missing: Tiada zon waktu yang ditetapkan dan %{zone} adalah andaian.Untuk pilih zon waktu anda, sila klik sini. + permission_create_meetings: "Cipta mesyuarat" + permission_edit_meetings: "Edit mesyuarat" + permission_delete_meetings: "Hapuskan Mesyuarat" + permission_view_meetings: "Lihat Mesyuarat" + permission_create_meeting_agendas: "Cipta agenda mesyuarat" + permission_create_meeting_agendas_explanation: "Benarkan kandungan agenda Mesyuarat Klasik untuk diedit" + permission_manage_agendas: "Urus agenda" + permission_manage_agendas_explanation: "Benarkan pengurusan item agenda Dinamik Mesyuarat." + permission_close_meeting_agendas: "Tutup agenda" + permission_send_meeting_agendas_notification: "Hantar pemberitahuan semakan untuk agenda" + permission_create_meeting_minutes: "Urus minit mesyuarat" + permission_send_meeting_minutes_notification: "Hantar pemberitahuan semakan untuk minit mesyuarat" + permission_meetings_send_invite: "Jemput pengguna ke mesyuarat" + permission_send_meeting_agendas_icalendar: "Hantar agenda mesyuarat sebagai kemasukan kalendar" + project_module_meetings: "Mesyuarat" + text_duration_in_hours: "Jangka masa dalam jam" + text_in_hours: "dalam jam" + text_meeting_agenda_for_meeting: 'agenda untuk mesyuarat "%{meeting}"' + text_meeting_closing_are_you_sure: "Adakah anda pasti anda ingin menutup agenda mesyuarat?" + text_meeting_agenda_open_are_you_sure: "Ini akan menggantikan semua perubahan dalam minit mesyuarat! Adakah anda ingin teruskan?" + text_meeting_minutes_for_meeting: 'minit untuk mesyuarat "%{meeting}"' + text_notificiation_invited: "Mel ini mengandungi kemasukan ics untuk mesyuarat dibawah:" + text_meeting_empty_heading: "Mesyuarat anda kosong" + text_meeting_empty_description_1: "Mula dengan menambah item agenda dibawah. Setiap item boleh jadi seringkas tajuk, tapi anda juga boleh tambah butiran tambahan seperti jangka masa dan nota." + text_meeting_empty_description_2: "Anda juga boleh menambah rujukan ke pakej kerja yang sedia ada. Apabila anda lakukan, nota berkaitan secara automatik akan boleh dilihat dalam tab \"Mesyuarat\" pakej kerja." + label_meeting_empty_action: "Tambah item agenda" + label_meeting_actions: "Tindakan mesyuarat" + label_meeting_edit_title: "Edit tajuk mesyuarat" + label_meeting_delete: "Hapuskan mesyuarat" + label_meeting_created_by: "Dicipta oleh" + label_meeting_last_updated: "Kemas kini terakhir" + label_agenda_item_undisclosed_wp: "Pakej kerja #%{id} tidak kelihatan" + label_agenda_item_deleted_wp: "Hapuskan rujukan pakej kerja" + label_agenda_item_actions: "Tindakan item agenda" + label_agenda_item_move_to_top: "Alih ke paling atas" + label_agenda_item_move_to_bottom: "Alih ke paling bawah" + label_agenda_item_move_up: "Alihkan ke atas" + label_agenda_item_move_down: "Gerak ke bawah" + label_agenda_item_add_notes: "Tambah nota" + label_meeting_details: "Butiran mesyuarat" + label_meeting_details_edit: "Edit butiran mesyuarat" + label_meeting_state_open: "Buka" + label_meeting_state_closed: "Ditutup" + label_meeting_reopen_action: "Buka semula mesyuarat" + label_meeting_close_action: "Tutup mesyuarat" + text_meeting_open_description: "Mesyuarat ini terbuka. Anda boleh tambah/keluarkan item agenda dan edit mereka sesuka hati. Setelah mesyuarat berakhir, tutup mesyuarat untuk kunci." + text_meeting_closed_description: "Mesyuarat ini ditutup. Anda tidak boleh tambah/keluarkan item agenda lagi." + label_meeting_manage_participants: "Urus peserta" + label_meeting_no_participants: "Tiada peserta" + label_meeting_show_hide_participants: "Tunjuk/hilangkan %{count} lagi" + label_meeting_show_all_participants: "Tunjukkan semua" + label_meeting_add_participants: "Tambah peserta" + text_meeting_not_editable_anymore: "Mesyuarat ini tidak boleh diedit lagi." + text_meeting_not_present_anymore: "Mesyuarat ini telah dihapuskan. Sila pilih mesyuarat lain." + label_add_work_package_to_meeting_dialog_title: "Tambah pakej kerja ke mesyuarat" + label_add_work_package_to_meeting_dialog_button: "Tambah ke mesyuarat" label_meeting_selection_caption: "It's only possible to add this work package to upcoming or ongoing open meetings." - text_add_work_package_to_meeting_description: "A work package can be added to one or multiple meetings for discussion. Any notes concerning it are also visible here." - text_agenda_item_no_notes: "No notes provided" - text_agenda_item_not_editable_anymore: "This agenda item is not editable anymore." - text_work_package_has_no_upcoming_meeting_agenda_items: "This work package is not scheduled in an upcoming meeting agenda yet." - text_work_package_add_to_meeting_hint: "Use the \"Add to meeting\" button to add this work package to an upcoming meeting." - text_work_package_has_no_past_meeting_agenda_items: "This work package was not mentioned in a past meeting." + text_add_work_package_to_meeting_description: "Pakej kerja boleh ditambah kepada satu atau beberapa mesyuarat untuk perbincangan. Sebarang nota berkaitan juga kelihatan di sini." + text_agenda_item_no_notes: "Tiada nota disediakan" + text_agenda_item_not_editable_anymore: "Item agenda tidak boleh diedit lagi." + text_work_package_has_no_upcoming_meeting_agenda_items: "Pakej kerja ini belum dijadualkan dalam mana-mana agenda mesyuarat akan datang lagi." + text_work_package_add_to_meeting_hint: "Guna butang \"Tambah ke mesyuarat\" untuk tambah pakej kerja ini ke mesyuarat akan datang." + text_work_package_has_no_past_meeting_agenda_items: "Pakej kerja ini masih belum diutarakan dalam mesyuarat yang lalu." diff --git a/modules/meeting/config/locales/crowdin/pt-BR.seeders.yml b/modules/meeting/config/locales/crowdin/pt-BR.seeders.yml index 8049e00f3b77..2d1eb4c6d26e 100644 --- a/modules/meeting/config/locales/crowdin/pt-BR.seeders.yml +++ b/modules/meeting/config/locales/crowdin/pt-BR.seeders.yml @@ -2,7 +2,7 @@ #Please do not edit directly. #This file is part of the sources sent to crowdin for translation. --- -pt: +pt-BR: seeds: standard: projects: diff --git a/modules/meeting/config/locales/crowdin/pt-BR.yml b/modules/meeting/config/locales/crowdin/pt-BR.yml index 5e6db0db004f..c20cde6f42ac 100644 --- a/modules/meeting/config/locales/crowdin/pt-BR.yml +++ b/modules/meeting/config/locales/crowdin/pt-BR.yml @@ -20,7 +20,7 @@ #See COPYRIGHT and LICENSE files for more details. #++ #English strings go here for Rails i18n -pt: +pt-BR: plugin_openproject_meeting: name: "Reunião do OpenProject" description: >- diff --git a/modules/meeting/config/locales/crowdin/pt-PT.seeders.yml b/modules/meeting/config/locales/crowdin/pt-PT.seeders.yml index 80e5be5ebe2f..4f63928bdae6 100644 --- a/modules/meeting/config/locales/crowdin/pt-PT.seeders.yml +++ b/modules/meeting/config/locales/crowdin/pt-PT.seeders.yml @@ -2,7 +2,7 @@ #Please do not edit directly. #This file is part of the sources sent to crowdin for translation. --- -pt: +pt-PT: seeds: standard: projects: diff --git a/modules/meeting/config/locales/crowdin/pt-PT.yml b/modules/meeting/config/locales/crowdin/pt-PT.yml index 87e1555225bf..5431a9b95d5e 100644 --- a/modules/meeting/config/locales/crowdin/pt-PT.yml +++ b/modules/meeting/config/locales/crowdin/pt-PT.yml @@ -20,7 +20,7 @@ #See COPYRIGHT and LICENSE files for more details. #++ #English strings go here for Rails i18n -pt: +pt-PT: plugin_openproject_meeting: name: "Reunião do OpenProject" description: >- diff --git a/modules/meeting/lib/open_project/meeting/patches/setting_seeder_patch.rb b/modules/meeting/lib/open_project/meeting/patches/setting_seeder_patch.rb index 5c4c641eee2a..c00c3617ecab 100644 --- a/modules/meeting/lib/open_project/meeting/patches/setting_seeder_patch.rb +++ b/modules/meeting/lib/open_project/meeting/patches/setting_seeder_patch.rb @@ -35,7 +35,7 @@ module InstanceMethods def data original_data = super - unless original_data['default_projects_modules'].include? 'meetings' + if original_data['default_projects_modules']&.exclude? 'meetings' original_data['default_projects_modules'] << 'meetings' end diff --git a/modules/my_page/config/locales/crowdin/js-ms.yml b/modules/my_page/config/locales/crowdin/js-ms.yml index 80596bfff1f9..d831c4788ca9 100644 --- a/modules/my_page/config/locales/crowdin/js-ms.yml +++ b/modules/my_page/config/locales/crowdin/js-ms.yml @@ -1,4 +1,4 @@ ms: js: my_page: - label: "My page" + label: "Halaman saya" diff --git a/modules/my_page/config/locales/crowdin/js-pt-BR.yml b/modules/my_page/config/locales/crowdin/js-pt-BR.yml index 859e96f039bf..03810b223f34 100644 --- a/modules/my_page/config/locales/crowdin/js-pt-BR.yml +++ b/modules/my_page/config/locales/crowdin/js-pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: js: my_page: label: "Minha página" diff --git a/modules/my_page/config/locales/crowdin/js-pt-PT.yml b/modules/my_page/config/locales/crowdin/js-pt-PT.yml index d9dc89e0571b..787cc615dbb6 100644 --- a/modules/my_page/config/locales/crowdin/js-pt-PT.yml +++ b/modules/my_page/config/locales/crowdin/js-pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: js: my_page: label: "A minha página" diff --git a/modules/openid_connect/config/locales/crowdin/ms.yml b/modules/openid_connect/config/locales/crowdin/ms.yml index b9415982cf55..54b0a4a5da91 100644 --- a/modules/openid_connect/config/locales/crowdin/ms.yml +++ b/modules/openid_connect/config/locales/crowdin/ms.yml @@ -3,15 +3,15 @@ ms: name: "OpenProject OpenID Connect" description: "Adds OmniAuth OpenID Connect strategy providers to Openproject." logout_warning: > - You have been logged out. The contents of any form you submit may be lost. Please [log in]. + Anda telah log keluar. Apa-apa bentuk kandungan yang anda hantar mungkin hilang. Sila [log masuk]. activemodel: attributes: openid_connect/provider: - name: Name - display_name: Display name + name: Nama + display_name: Nama paparan identifier: Identifier - secret: Secret - scope: Scope + secret: "Sulit\n" + scope: Skop limit_self_registration: Limit self registration openid_connect: menu_title: OpenID providers diff --git a/modules/openid_connect/config/locales/crowdin/pt-BR.yml b/modules/openid_connect/config/locales/crowdin/pt-BR.yml index 41d80a844de5..74764dad5681 100644 --- a/modules/openid_connect/config/locales/crowdin/pt-BR.yml +++ b/modules/openid_connect/config/locales/crowdin/pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: plugin_openproject_openid_connect: name: "Conectar OpenProject OpenID" description: "Adiciona provedores de estratégia OmniAuth OpenID Connect ao Openproject." diff --git a/modules/openid_connect/config/locales/crowdin/pt-PT.yml b/modules/openid_connect/config/locales/crowdin/pt-PT.yml index e64f1d0d91f2..8ac260196e32 100644 --- a/modules/openid_connect/config/locales/crowdin/pt-PT.yml +++ b/modules/openid_connect/config/locales/crowdin/pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: plugin_openproject_openid_connect: name: "OpenProject OpenID Connect" description: "Adiciona fornecedores da estratégia OmniAuth OpenID Connect ao Openproject." diff --git a/modules/overviews/config/locales/crowdin/js-ms.yml b/modules/overviews/config/locales/crowdin/js-ms.yml index ce56c542e74a..351a2df46c34 100644 --- a/modules/overviews/config/locales/crowdin/js-ms.yml +++ b/modules/overviews/config/locales/crowdin/js-ms.yml @@ -1,4 +1,4 @@ ms: js: overviews: - label: 'Overview' + label: 'Ringkasan' diff --git a/modules/overviews/config/locales/crowdin/js-pt-BR.yml b/modules/overviews/config/locales/crowdin/js-pt-BR.yml index 436bc25f1a36..7f83bd2a2caa 100644 --- a/modules/overviews/config/locales/crowdin/js-pt-BR.yml +++ b/modules/overviews/config/locales/crowdin/js-pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: js: overviews: label: 'Visão geral' diff --git a/modules/overviews/config/locales/crowdin/js-pt-PT.yml b/modules/overviews/config/locales/crowdin/js-pt-PT.yml index 0b2501692c3f..bf7cabe59466 100644 --- a/modules/overviews/config/locales/crowdin/js-pt-PT.yml +++ b/modules/overviews/config/locales/crowdin/js-pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: js: overviews: label: 'Sinopse' diff --git a/modules/overviews/config/locales/crowdin/ms.yml b/modules/overviews/config/locales/crowdin/ms.yml index 7ce6b82e59b0..0017c72bc4cb 100644 --- a/modules/overviews/config/locales/crowdin/ms.yml +++ b/modules/overviews/config/locales/crowdin/ms.yml @@ -1,4 +1,4 @@ ms: overviews: - label: 'Overview' - permission_manage_overview: 'Manage overview page' + label: 'Ringkasan' + permission_manage_overview: 'Urus halaman ringkasan' diff --git a/modules/overviews/config/locales/crowdin/pt-BR.yml b/modules/overviews/config/locales/crowdin/pt-BR.yml index d52a98c9f0e4..62a5e4574b57 100644 --- a/modules/overviews/config/locales/crowdin/pt-BR.yml +++ b/modules/overviews/config/locales/crowdin/pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: overviews: label: 'Visão geral' permission_manage_overview: 'Gerenciar página de visão geral' diff --git a/modules/overviews/config/locales/crowdin/pt-PT.yml b/modules/overviews/config/locales/crowdin/pt-PT.yml index bb1318a226f0..d25abafa09e9 100644 --- a/modules/overviews/config/locales/crowdin/pt-PT.yml +++ b/modules/overviews/config/locales/crowdin/pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: overviews: label: 'Visão geral' permission_manage_overview: 'Gerir página de visão geral' diff --git a/modules/recaptcha/config/locales/crowdin/ms.yml b/modules/recaptcha/config/locales/crowdin/ms.yml index 6b72f03df7bb..f633df7b0ed1 100644 --- a/modules/recaptcha/config/locales/crowdin/ms.yml +++ b/modules/recaptcha/config/locales/crowdin/ms.yml @@ -5,18 +5,18 @@ ms: description: "This module provides recaptcha checks during login." recaptcha: label_recaptcha: "reCAPTCHA" - button_please_wait: 'Please wait ...' - verify_account: "Verify your account" - error_captcha: "Your account could not be verified. Please contact an administrator." + button_please_wait: 'Sila tunggu ...' + verify_account: "Sahkan akaun anda" + error_captcha: "Akaun anda tidak dapat disahkan. Sila hubungi pengurus." settings: website_key: 'Website key' - response_limit: 'Response limit for HCaptcha' + response_limit: 'Had tindak balas untuk Hcaptcha' response_limit_text: 'The maximum number of characters to treat the HCaptcha response as valid.' website_key_text: 'Enter the website key you created on the reCAPTCHA admin console for this domain.' secret_key: 'Secret key' secret_key_text: 'Enter the secret key you created on the reCAPTCHA admin console.' - type: 'Use reCAPTCHA' - type_disabled: 'Disable reCAPTCHA' + type: 'Gunakan reCAPTCHA' + type_disabled: 'Nyahaktifkan reCAPTCHA' type_v2: 'reCAPTCHA v2' type_v3: 'reCAPTCHA v3' type_hcaptcha: 'HCaptcha' diff --git a/modules/recaptcha/config/locales/crowdin/pt-BR.yml b/modules/recaptcha/config/locales/crowdin/pt-BR.yml index 83fcf63093cb..16dffd5b6778 100644 --- a/modules/recaptcha/config/locales/crowdin/pt-BR.yml +++ b/modules/recaptcha/config/locales/crowdin/pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here for Rails i18n -pt: +pt-BR: plugin_openproject_recaptcha: name: "ReCaptcha do OpenProject" description: "Este módulo fornece verificações recaptcha durante o início de sessão." diff --git a/modules/recaptcha/config/locales/crowdin/pt-PT.yml b/modules/recaptcha/config/locales/crowdin/pt-PT.yml index 9344c9bdf49e..7982b12d7a42 100644 --- a/modules/recaptcha/config/locales/crowdin/pt-PT.yml +++ b/modules/recaptcha/config/locales/crowdin/pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here for Rails i18n -pt: +pt-PT: plugin_openproject_recaptcha: name: "ReCaptcha do OpenProject" description: "Este módulo fornece verificações recaptcha durante o início de sessão." diff --git a/modules/reporting/config/locales/crowdin/js-ms.yml b/modules/reporting/config/locales/crowdin/js-ms.yml index d11c0e7c5a91..cb941b73531b 100644 --- a/modules/reporting/config/locales/crowdin/js-ms.yml +++ b/modules/reporting/config/locales/crowdin/js-ms.yml @@ -22,5 +22,5 @@ ms: js: reporting_engine: - label_remove: "Delete" - label_response_error: "There was an error handling the query." + label_remove: "Hapus" + label_response_error: "Terdapat ralat semasa mengendalikan pertanyaan." diff --git a/modules/reporting/config/locales/crowdin/js-pt-BR.yml b/modules/reporting/config/locales/crowdin/js-pt-BR.yml index 30c0350863d9..c94fd8e3d4f0 100644 --- a/modules/reporting/config/locales/crowdin/js-pt-BR.yml +++ b/modules/reporting/config/locales/crowdin/js-pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: js: reporting_engine: label_remove: "Excluir" diff --git a/modules/reporting/config/locales/crowdin/js-pt-PT.yml b/modules/reporting/config/locales/crowdin/js-pt-PT.yml index 58373c5bb89b..dbe5aa4f6c33 100644 --- a/modules/reporting/config/locales/crowdin/js-pt-PT.yml +++ b/modules/reporting/config/locales/crowdin/js-pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: js: reporting_engine: label_remove: "Eliminar" diff --git a/modules/reporting/config/locales/crowdin/ms.yml b/modules/reporting/config/locales/crowdin/ms.yml index 69037b11ff4a..72942a3c31f6 100644 --- a/modules/reporting/config/locales/crowdin/ms.yml +++ b/modules/reporting/config/locales/crowdin/ms.yml @@ -23,72 +23,72 @@ ms: plugin_openproject_reporting: name: "OpenProject Reporting" description: "This plugin allows creating custom cost reports with filtering and grouping created by the OpenProject Time and costs plugin." - button_save_as: "Save report as..." - comments: "Comment" - cost_reports_title: "Time and costs" - label_cost_report: "Cost report" - label_cost_report_plural: "Cost reports" - description_drill_down: "Show details" - description_filter_selection: "Selection" + button_save_as: "Simpan laporan sebagai..." + comments: "Komen" + cost_reports_title: "Masa dan kos" + label_cost_report: "Laporan kos" + label_cost_report_plural: "Laporan kos" + description_drill_down: "Papar butiran" + description_filter_selection: "Pilihan" description_multi_select: "Show multiselect" description_remove_filter: "Remove filter" information_restricted_depending_on_permission: "Depending on your permissions this page might contain restricted information." - label_click_to_edit: "Click to edit." - label_closed: "closed" - label_columns: "Columns" + label_click_to_edit: "Klik untuk edit." + label_closed: "ditutup" + label_columns: "Lajur" label_cost_entry_attributes: "Cost entry attributes" - label_days_ago: "during the last days" - label_entry: "Cost entry" + label_days_ago: "pada hari-hari terakhir" + label_entry: "Kemasukan kos" label_filter_text: "Filter text" label_filter_value: "Value" label_filters: "Filter" label_greater: ">" - label_is_not_project_with_subprojects: "is not (includes subprojects)" - label_is_project_with_subprojects: "is (includes subprojects)" - label_work_package_attributes: "Work package attributes" + label_is_not_project_with_subprojects: "adalah tidak (termasuk subprojek)" + label_is_project_with_subprojects: "adalah (termasuk subprojek)" + label_work_package_attributes: "Atribut pakej kerja" label_less: "<" - label_logged_by_reporting: "Logged by" - label_money: "Cash value" - label_month_reporting: "Month (Spent)" - label_new_report: "New cost report" - label_open: "open" - label_operator: "Operator" - label_private_report_plural: "Private cost reports" - label_progress_bar_explanation: "Generating report..." - label_public_report_plural: "Public cost reports" - label_really_delete_question: "Are you sure you want to delete this report?" - label_rows: "Rows" - label_saving: "Saving ..." - label_spent_on_reporting: "Date (Spent)" - label_sum: "Sum" - label_units: "Units" - label_week_reporting: "Week (Spent)" - label_year_reporting: "Year (Spent)" - label_count: "Count" + label_logged_by_reporting: "Dilog oleh" + label_money: "Nilai tunai" + label_month_reporting: "Bulan (Dihabiskan)" + label_new_report: "Laporan kos baru" + label_open: "buka" + label_operator: "Pengendali" + label_private_report_plural: "Laporan kos peribadi" + label_progress_bar_explanation: "Menjana laporan..." + label_public_report_plural: "Laporan kos umum" + label_really_delete_question: "Adakah anda pasti anda ingin menghapuskan laporan ini?" + label_rows: "Baris" + label_saving: "Menyimpan ..." + label_spent_on_reporting: "Tarikh (Dihabiskan)" + label_sum: "Jumlah" + label_units: "Unit" + label_week_reporting: "Minggu (Dihabiskan)" + label_year_reporting: "Tahun (Dihabiskan)" + label_count: "Hitung" label_filter: "Filter" label_filter_add: "Add Filter" label_filter_plural: "Filters" - label_group_by: "Group by" + label_group_by: "Kumpulkan mengikut" label_group_by_add: "Add Group-by Attribute" label_inactive: "«inactive»" - label_no: "No" - label_none: "(no data)" - label_no_reports: "There are no cost reports yet." - label_report: "Report" - label_yes: "Yes" - load_query_question: "Report will have %{size} table cells and may take some time to render. Do you still want to try rendering it?" - permission_save_cost_reports: "Save public cost reports" - permission_save_private_cost_reports: "Save private cost reports" - project_module_reporting_module: "Cost reports" - text_costs_are_rounded_note: "Displayed values are rounded. All calculations are based on the non-rounded values." + label_no: "Tidak" + label_none: "(tiada data)" + label_no_reports: "Masih tiada laporan kos." + label_report: "Laporan" + label_yes: "Ya" + load_query_question: "Laporan akan ada %{size} kotak jadual dan mungkin memerlukan sedikit masa untuk dihasilkan. Adakah anda masih mahu cuba untuk menghasilkan?" + permission_save_cost_reports: "Simpan laporan kos umum" + permission_save_private_cost_reports: "Simpan laporan kos peribadi" + project_module_reporting_module: "Laporan kos" + text_costs_are_rounded_note: "Nilai yang dipaparkan adalah dibundarkan. Semua kiraan adalah berdasarkan nilai yang tidak dibundarkan." toggle_multiselect: "activate/deactivate multiselect" - units: "Units" - validation_failure_date: "is not a valid date" - validation_failure_integer: "is not a valid integer" + units: "Unit" + validation_failure_date: "bukan tarikh yang sah" + validation_failure_integer: "bukan integer yang sah" export: cost_reports: title: "Your Cost Reports XLS export" reporting: group_by: - selected_columns: "Selected columns" - selected_rows: "Selected rows" + selected_columns: "Lajur terpilih" + selected_rows: "Baris terpilih" diff --git a/modules/reporting/config/locales/crowdin/pt-BR.yml b/modules/reporting/config/locales/crowdin/pt-BR.yml index 5f77c6611e28..fe16440fb12c 100644 --- a/modules/reporting/config/locales/crowdin/pt-BR.yml +++ b/modules/reporting/config/locales/crowdin/pt-BR.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: plugin_openproject_reporting: name: "Relatórios do OpenProject" description: "Este plugin permite a criação de relatórios de custos personalizados com filtragem e agrupamento criados pelo plugin OpenProject Time e custos." diff --git a/modules/reporting/config/locales/crowdin/pt-PT.yml b/modules/reporting/config/locales/crowdin/pt-PT.yml index d5d5b525186c..d16aea0d54ef 100644 --- a/modules/reporting/config/locales/crowdin/pt-PT.yml +++ b/modules/reporting/config/locales/crowdin/pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: plugin_openproject_reporting: name: "Relatórios do OpenProject" description: "Este plugin permite criar relatórios de custos personalizados com filtragem e agrupamento criados pelo plugin OpenProject Time e custos." diff --git a/modules/reporting/lib/open_project/reporting/patches/setting_seeder_patch.rb b/modules/reporting/lib/open_project/reporting/patches/setting_seeder_patch.rb index 45c7dbb1481b..f91de7dbedf6 100644 --- a/modules/reporting/lib/open_project/reporting/patches/setting_seeder_patch.rb +++ b/modules/reporting/lib/open_project/reporting/patches/setting_seeder_patch.rb @@ -35,7 +35,7 @@ module InstanceMethods def data original_data = super - unless original_data['default_projects_modules'].include? 'reporting_module' + if original_data['default_projects_modules']&.exclude? 'reporting_module' original_data['default_projects_modules'] << 'reporting_module' end diff --git a/modules/storages/app/views/storages/admin/storages/edit.html.erb b/modules/storages/app/views/storages/admin/storages/edit.html.erb index ced7dadc37cf..c0035698bf10 100644 --- a/modules/storages/app/views/storages/admin/storages/edit.html.erb +++ b/modules/storages/app/views/storages/admin/storages/edit.html.erb @@ -74,7 +74,7 @@ See COPYRIGHT and LICENSE files for more details. <% end %> <% end %> -<% if @storage.provider_type_nextcloud? && @storage.automatic_management_enabled? %> +<% if @storage.automatic_management_enabled? %> <%= render(Primer::Alpha::Layout.new(stacking_breakpoint: :lg)) do |component| %> <% component.with_main() do %> <%= render(::Storages::Admin::StorageViewComponent.new(@storage)) %> diff --git a/modules/storages/config/locales/crowdin/cs.yml b/modules/storages/config/locales/crowdin/cs.yml index efe2768f6411..5a466dc9f299 100644 --- a/modules/storages/config/locales/crowdin/cs.yml +++ b/modules/storages/config/locales/crowdin/cs.yml @@ -63,7 +63,7 @@ cs: one_drive: Povolit OpenProject přístup k Azure datům pomocí OAuth pro připojení OneDrive/Sharepoint. redirect_uri_incomplete: one_drive: Dokončete nastavení správným přesměrováním URI. - confirm_replace_oauth_application: This action will reset the current OAuth credentials. After confirming you will have to reenter the credentials at the storage provider and all remote users will have to authorize against OpenProject again. Are you sure you want to proceed? + confirm_replace_oauth_application: Tato akce obnoví aktuální OAuth přihlašovací údaje. Po potvrzení budete muset znovu zadat přihlašovací údaje u poskytovatele úložiště a všichni vzdálení uživatelé budou muset znovu autorizovat proti OpenProject Jste si jisti, že chcete pokračovat? confirm_replace_oauth_client: This action will reset the current OAuth credentials. After confirming you will have to enter new credentials from the storage provider and all users will have to authorize against %{provider_type} again. Are you sure you want to proceed? delete_warning: input_delete_confirmation: Zadejte název úložiště souboru %{file_storage} pro potvrzení odstranění. diff --git a/modules/storages/config/locales/crowdin/js-pt-BR.yml b/modules/storages/config/locales/crowdin/js-pt-BR.yml index 9a28a2b6299d..3b18fc043427 100644 --- a/modules/storages/config/locales/crowdin/js-pt-BR.yml +++ b/modules/storages/config/locales/crowdin/js-pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-BR: js: storages: link_files_in_storage: "Vincular arquivos em %{storageType}" diff --git a/modules/storages/config/locales/crowdin/js-pt-PT.yml b/modules/storages/config/locales/crowdin/js-pt-PT.yml index ca2915605e49..3afdd9bc6d84 100644 --- a/modules/storages/config/locales/crowdin/js-pt-PT.yml +++ b/modules/storages/config/locales/crowdin/js-pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-PT: js: storages: link_files_in_storage: "Vincular ficheiros em %{storageType}" diff --git a/modules/storages/config/locales/crowdin/ko.yml b/modules/storages/config/locales/crowdin/ko.yml index c75b1a656cbf..3a0ff53aeb9c 100644 --- a/modules/storages/config/locales/crowdin/ko.yml +++ b/modules/storages/config/locales/crowdin/ko.yml @@ -53,8 +53,8 @@ ko: complete_without_setup: 이것 없이 완료 done_complete_setup: 완료, 설정 완료 done_continue: 완료, 계속 - replace_oauth_application: Replace OpenProject OAuth - replace_oauth_client: Replace %{provider_type} OAuth + replace_oauth_application: OpenProject OAuth 바꾸기 + replace_oauth_client: '%{provider_type} OAuth 바꾸기' save_and_continue: 저장 및 계속 select_folder: 폴더 선택 configuration_checks: @@ -63,8 +63,8 @@ ko: one_drive: OpenProject가 OAuth를 사용하여 Azure 데이터에 액세스하고 OneDrive/Sharepoint에 연결하도록 허용합니다. redirect_uri_incomplete: one_drive: 올바른 URI 리디렉션으로 설정을 완료합니다. - confirm_replace_oauth_application: This action will reset the current OAuth credentials. After confirming you will have to reenter the credentials at the storage provider and all remote users will have to authorize against OpenProject again. Are you sure you want to proceed? - confirm_replace_oauth_client: This action will reset the current OAuth credentials. After confirming you will have to enter new credentials from the storage provider and all users will have to authorize against %{provider_type} again. Are you sure you want to proceed? + confirm_replace_oauth_application: 이 작업은 현재 OAuth 자격 증명을 재설정합니다. 확인 후 저장소 공급자에서 자격 증명을 다시 입력해야 하며 모든 원격 사용자는 OpenProject에 대해 다시 인증해야 합니다. 계속하시겠습니까? + confirm_replace_oauth_client: 이 작업은 현재 OAuth 자격 증명을 재설정합니다. 확인 후 저장소 공급자의 새로운 자격 증명을 입력해야 하며 모든 사용자는 %{provider_type}에 대해 다시 인증해야 합니다. 계속하시겠습니까? delete_warning: input_delete_confirmation: 파일 저장소 이름 %{file_storage}을(를) 입력하여 삭제를 확인합니다. irreversible_notice: 파일 저장소를 삭제하면 되돌릴 수 없습니다. @@ -178,12 +178,12 @@ ko: 저장소가 연결되었습니다! 이 저장소를 사용하려면 원하는 각 프로젝트의 프로젝트 설정에서 모듈과 특정 저장소를 활성화해야 합니다. oauth_grant_nudge_modal: access_granted: 액세스 승인됨 - access_granted_screen_reader: Access granted. You are now ready to use %{storage}. + access_granted_screen_reader: 액세스 권한이 부여되었습니다. 이제 %{storage} 사용 준비가 완료되었습니다. body: 프로젝트 폴더에 액세스하려면 %{storage}에 로그인해야 합니다. cancel_button_label: 나중에 하겠습니다 - confirm_button_aria_label: Login to %{storage} + confirm_button_aria_label: '%{storage}에 로그인' confirm_button_label: 로그인 - requesting_access_to: Requesting access to %{storage} + requesting_access_to: '%{storage}에 대한 액세스 요청' storage_ready: 이제 %{storage}을(를) 사용할 준비가 되었습니다 title: 한 단계 더... open_project_storage_modal: diff --git a/modules/storages/config/locales/crowdin/ms.yml b/modules/storages/config/locales/crowdin/ms.yml index d59102a58689..28265d562136 100644 --- a/modules/storages/config/locales/crowdin/ms.yml +++ b/modules/storages/config/locales/crowdin/ms.yml @@ -6,101 +6,101 @@ ms: storages/storage: creator: Pencipta drive: Drive ID - host: Host + host: Hos name: Nama provider_type: Provider type tenant: Directory (tenant) ID errors: messages: - not_linked_to_project: is not linked to project. + not_linked_to_project: tidak terpaut dengan projek. models: storages/file_link: attributes: origin_id: - only_numeric_or_uuid: can only be numeric or uuid. + only_numeric_or_uuid: boleh menjadi dalam format numerik atau uuid. storages/project_storage: attributes: project_folder_mode: - mode_unavailable: is not available for this storage. + mode_unavailable: tidak tersedia untuk penyimpanan ini. storages/storage: attributes: host: authorization_header_missing: is not fully set up. The Nextcloud instance does not receive the "Authorization" header, which is necessary for a Bearer token based authorization of API requests. Please double check your HTTP server configuration. - cannot_be_connected_to: can not be connected to. - minimal_nextcloud_version_unmet: does not meet minimal version requirements (must be Nextcloud 23 or higher) - not_nextcloud_server: is not a Nextcloud server - op_application_not_installed: appears to not have the app "OpenProject integration" installed. Please install it first and then try again. + cannot_be_connected_to: tidak boleh disambungkan. + minimal_nextcloud_version_unmet: tidak memenuhi keperluan versi minimum (mesti Nextcloud 23 atau lebih tinggi) + not_nextcloud_server: adalah bukan server Nextcloud + op_application_not_installed: kelihatan tidak mempunyai aplikasi "Integrasi OpenProject" dipasang. Sila pasang terlebih dahulu dan cuba sekali lagi. password: - invalid_password: is not valid. - unknown_error: could not be validated. Please check your storage connection and try again. + invalid_password: tidak sah. + unknown_error: tidak dapat disahkan. Sila periksa sambungan storan anda dan cuba lagi. models: file_link: Fail - storages/storage: Storage + storages/storage: Storan api_v3: errors: - too_many_elements_created_at_once: Too many elements created at once. Expected %{max} at most, got %{actual}. + too_many_elements_created_at_once: Terlalu banyak unsur dicipta dalam satu masa. Dijangka %{max} paling banyak, mendapat %{actual}. permission_create_files: Cipta fail permission_delete_files: Padam fail - permission_manage_file_links: Manage file links - permission_manage_storages_in_project: Manage file storages in project + permission_manage_file_links: Urus pautan fail + permission_manage_storages_in_project: Urus fail storan dalam projek permission_read_files: Baca fail permission_share_files: Kongsi fail - permission_view_file_links: View file links + permission_view_file_links: Papar pautan fail permission_write_files: Write files - project_module_storages: File storages + project_module_storages: Storan fail storages: buttons: - complete_without_setup: Complete without it - done_complete_setup: Done, complete setup - done_continue: Done, continue - replace_oauth_application: Replace OpenProject OAuth - replace_oauth_client: Replace %{provider_type} OAuth + complete_without_setup: Lengkap tanpanya + done_complete_setup: Selesai, penyediaan lengkap + done_continue: Selesai, teruskan + replace_oauth_application: Ganti OpenProject OAuth + replace_oauth_client: Ganti %{provider_type} OAuth save_and_continue: Simpan dan teruskan - select_folder: Select folder + select_folder: Pilih folder configuration_checks: oauth_client_incomplete: - nextcloud: Allow OpenProject to access Nextcloud data using OAuth. - one_drive: Allow OpenProject to access Azure data using OAuth to connect OneDrive/Sharepoint. + nextcloud: Benarkan OpenProject untuk mengakses data Nextcloud menggunakan OAuth. + one_drive: Benarkan OpenProject untuk mengakses data Azure menggunakan OAuth untuk menyambung OneDrive/Sharepoint. redirect_uri_incomplete: - one_drive: Complete the setup with the correct URI redirection. + one_drive: Lengkapkan setup dengan pengalihan URI yang betul. confirm_replace_oauth_application: This action will reset the current OAuth credentials. After confirming you will have to reenter the credentials at the storage provider and all remote users will have to authorize against OpenProject again. Are you sure you want to proceed? confirm_replace_oauth_client: This action will reset the current OAuth credentials. After confirming you will have to enter new credentials from the storage provider and all users will have to authorize against %{provider_type} again. Are you sure you want to proceed? delete_warning: - input_delete_confirmation: Enter the file storage name %{file_storage} to confirm deletion. - irreversible_notice: Deleting a file storage is an irreversible action. - project_storage: 'Are you sure you want to delete %{file_storage} from this project? To confirm this action please introduce the storage name in the field below, this will:' - project_storage_delete_result_1: Remove all links from work packages of this project to files and folders of that storage. - project_storage_delete_result_2: In case this storage has an automatically managed project folder, this and its files will be deleted forever. - storage: 'Are you sure you want to delete %{file_storage}? To confirm this action please introduce the storage name in the field below, this will:' - storage_delete_result_1: Remove all storage setups for all projects using this storage. - storage_delete_result_2: Remove all links from work packages of all projects to files and folders of that storage. - storage_delete_result_3: In case this storage has automatically managed project folders, those and their contained files will be deleted forever. - error_invalid_provider_type: Please select a valid storage provider. + input_delete_confirmation: Masukkan nama fail penyimpanan %{file_storage} untuk mengesahkan pembuangan. + irreversible_notice: Mengapus fail penyimpanan adalah tindakan yang tidak dapat dipulihkan. + project_storage: 'Adakah anda pasti anda ingin menghapuskan %{file_storage} dari projek ini? Untuk mengesahkan tindakan ini sila perkenalkan nama penyimpanan di dalam medan di bawah, ini akan:' + project_storage_delete_result_1: Padam semua pautan dari pakej kerja projek ini ke fail dan folder penyimpanan tersebut. + project_storage_delete_result_2: Sekiranya penyimpanan ini mempunyai folder projek yang dikendalikan secara automatik, folder ini beserta failnya akan dipadamkan selamanya. + storage: 'Adakah anda pasti anda ingin menghapuskan %{file_storage}? Untuk mengesahkan tindakan ini sila perkenalkan nama penyimpanan di dalam medan di bawah, ini akan:' + storage_delete_result_1: Padam semua setup penyimpanan untuk semua projek yang menggunakan penyimpanan ini. + storage_delete_result_2: Padam semua pautan dari pakej kerja semua projek ke fail dan folder penyimpanan tersebut. + storage_delete_result_3: Sekiranya penyimpanan ini mempunyai folder projek yang dikendalikan secara automatik, folder tersebut beserta fail dalam kandungannya akan dipadamkan selamanya. + error_invalid_provider_type: Sila pilih pembekal penyimpanan yang sah. file_storage_view: - automatically_managed_folders: Automatically managed folders - general_information: General information + automatically_managed_folders: Folder yang dikendalikan secara automatik + general_information: Maklumat umum nextcloud_oauth: Nextcloud OAuth oauth_applications: OAuth applications one_drive_oauth: Azure OAuth openproject_oauth: OpenProject OAuth - project_folders: Project folders + project_folders: Folder projek redirect_uri: Redirect URI storage_provider: Storage provider health: - checked: Last checked %{datetime} - label_error: Error - label_healthy: Healthy - label_pending: Pending - since: since %{datetime} + checked: Terakhir diperiksa %{datetime} + label_error: Ralat + label_healthy: Sihat + label_pending: Dalam proses + since: sejak %{datetime} subtitle: Automatic managed project folders - title: Health status + title: Status kesihatan help_texts: - project_folder: The project folder is the default folder for file uploads for this project. Users can nevertheless still upload files to other locations. + project_folder: Folder projek adalah folder default untuk muat naik fail bagi projek ini. Pengguna masih boleh muat naik fail ke lokasi lain. instructions: all_available_storages_already_added: All available storages are already added to the project. automatic_folder: This will automatically create a root folder for this project and manage the access permissions for each project member. - copy_from: Copy this value from - empty_project_folder_validation: Selecting a folder is mandatory to proceed. + copy_from: Salin nilai ini dari + empty_project_folder_validation: Memilih folder adalah wajib untuk meneruskan. existing_manual_folder: You can designate an existing folder as the root folder for this project. The permissions are however not automatically managed, the administrator needs to manually ensure relevant users have access. The selected folder can be used by multiple projects. host: Please add the host address of your storage including the https://. It should not be longer than 255 characters. managed_project_folders_application_password_caption: 'Enable automatic managed folders by copying this value from: %{provider_type_link}.' @@ -128,15 +128,15 @@ ms: oauth_configuration: Copy these values from the desired application in the %{application_link_text}. provider_configuration: Please make sure you have administration privileges in the %{application_link_text} or contact your Microsoft administrator before doing the setup. In the portal, you also need to register an Azure application or use an existing one for authentication. tenant_id: Please copy the Directory (tenant) ID from the desired application and App registrations in the %{application_link_text}. - tenant_id_placeholder: Name or UUID + tenant_id_placeholder: Nama atau UUID setting_up_additional_storages: For setting up additional file storages, please visit setting_up_additional_storages_non_admin: Administrators can set up additional file storages in Administration / File Storages. setting_up_storages: For setting up file storages, please visit setting_up_storages_non_admin: Administrators can set up file storages in Administration / File Storages. type: 'Please make sure you have administration privileges in your Nextcloud instance and have the following application installed before doing the setup:' type_link_text: "“Integration OpenProject”" - label_active: Active - label_add_new_storage: Add new storage + label_active: Aktif + label_add_new_storage: Tambah storan baru label_automatic_folder: New folder with automatically managed permissions label_completed: Completed label_creation_time: Creation time @@ -151,28 +151,28 @@ ms: label_inactive: Inactive label_incomplete: Incomplete label_managed_project_folders: - application_password: Application password + application_password: Kata laluan aplikasi automatically_managed_folders: Automatically managed folders - label_name: Name + label_name: Nama label_new_file_storage: New %{provider} storage label_new_storage: New storage - label_no_selected_folder: No selected folder + label_no_selected_folder: Tiada folder yang dipilih label_no_specific_folder: No specific folder - label_oauth_client_id: OAuth Client ID - label_openproject_oauth_application_id: OpenProject OAuth Client ID + label_oauth_client_id: OAuth ID Pelanggan + label_openproject_oauth_application_id: OpenProject OAuth ID Pelanggan label_openproject_oauth_application_secret: OpenProject OAuth Client Secret - label_project_folder: Project folder - label_provider: Provider - label_redirect_uri: Redirect URI + label_project_folder: Folder projek + label_provider: Pembekal + label_redirect_uri: Ubah hala URI label_show_storage_redirect_uri: Show redirect URI label_status: Status label_storage: Storage label_uri: URI member_connection_status: - connected: Connected + connected: Disambungkan connected_no_permissions: User role has no storages permissions - not_connected: Not connected. The user should login to the storage via the following %{link}. - members_no_results: No members to display. + not_connected: Tidak bersambung. Pengguna perlu log masuk ke dalam storan melalui %{link} berikut. + members_no_results: Tiada ahli untuk dipaparkan. no_results: No storages set up yet. notice_successful_storage_connection: |- Storage connected successfully! Remember to activate the module and the specific storage in the project settings diff --git a/modules/storages/config/locales/crowdin/pt-BR.yml b/modules/storages/config/locales/crowdin/pt-BR.yml index 037941c800d3..04de4e7e4ae8 100644 --- a/modules/storages/config/locales/crowdin/pt-BR.yml +++ b/modules/storages/config/locales/crowdin/pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: activerecord: attributes: storages/file_link: @@ -53,8 +53,8 @@ pt: complete_without_setup: Concluir sem isso done_complete_setup: Pronto, concluir configuração done_continue: Pronto, continuar - replace_oauth_application: Replace OpenProject OAuth - replace_oauth_client: Replace %{provider_type} OAuth + replace_oauth_application: Substituir OAuth OpenProject + replace_oauth_client: Substituir OAuth %{provider_type} save_and_continue: Salvar e continuar select_folder: Selecionar pastas configuration_checks: @@ -63,8 +63,8 @@ pt: one_drive: Permitir que o OpenProject acesse os dados Azure utilizando o OAuth para conectar o OneDrive/Sharepoint. redirect_uri_incomplete: one_drive: Conclua a configuração com o redirecionamento correto do URI. - confirm_replace_oauth_application: This action will reset the current OAuth credentials. After confirming you will have to reenter the credentials at the storage provider and all remote users will have to authorize against OpenProject again. Are you sure you want to proceed? - confirm_replace_oauth_client: This action will reset the current OAuth credentials. After confirming you will have to enter new credentials from the storage provider and all users will have to authorize against %{provider_type} again. Are you sure you want to proceed? + confirm_replace_oauth_application: Esta ação irá redefinir suas credenciais atuais do OAuth. Depois de confirmar, você precisará inserir suas credenciais novamente no provedor de armazenamento, e todos os usuários remotos terão que autorizar o OpenProject novamente. Tem certeza de que deseja continuar? + confirm_replace_oauth_client: Esta ação irá redefinir as suas credenciais atuais do OAuth. Após a confirmação, você precisará inserir novas credenciais do provedor de armazenamento e todos os usuários terão que autorizar novamente o acesso em %{provider_type}. Tem certeza de que deseja continuar? delete_warning: input_delete_confirmation: Insira o nome do armazenamento de arquivos %{file_storage} para confirmar a exclusão. irreversible_notice: Excluir um armazenamento de arquivos é uma ação irreversível. @@ -178,12 +178,12 @@ pt: Armazenamento conectado com sucesso! Lembre-se de ativar o módulo e o armazenamento específico nas configurações do projeto de cada projeto desejado para utilizá-lo. oauth_grant_nudge_modal: access_granted: Acesso concedido - access_granted_screen_reader: Access granted. You are now ready to use %{storage}. + access_granted_screen_reader: Acesso concedido. Agora você está pronto para usar o site %{storage}. body: Para obter acesso à pasta do projeto, você precisa fazer login em %{storage}. cancel_button_label: Cuidarei disso mais tarde - confirm_button_aria_label: Login to %{storage} + confirm_button_aria_label: Faça login em %{storage} confirm_button_label: Login - requesting_access_to: Requesting access to %{storage} + requesting_access_to: Solicitação de acesso ao site %{storage} storage_ready: Agora você está pronto para usar %{storage} title: Só mais uma etapa... open_project_storage_modal: diff --git a/modules/storages/config/locales/crowdin/pt-PT.yml b/modules/storages/config/locales/crowdin/pt-PT.yml index 585507858b36..02ad74fc47f9 100644 --- a/modules/storages/config/locales/crowdin/pt-PT.yml +++ b/modules/storages/config/locales/crowdin/pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: activerecord: attributes: storages/file_link: @@ -53,8 +53,8 @@ pt: complete_without_setup: Concluir sem isso done_complete_setup: Concluído, terminar configuração done_continue: Concluído, continuar - replace_oauth_application: Replace OpenProject OAuth - replace_oauth_client: Replace %{provider_type} OAuth + replace_oauth_application: Substituir OpenProject OAuth + replace_oauth_client: Substituir OAuth %{provider_type} save_and_continue: Guardar e continuar select_folder: Selecionar pasta configuration_checks: @@ -63,8 +63,8 @@ pt: one_drive: Permitir que o OpenProject aceda aos dados do Azure utilizando o OAuth para ligar o OneDrive/Sharepoint. redirect_uri_incomplete: one_drive: Conclua a configuração com o redirecionamento correto da URI. - confirm_replace_oauth_application: This action will reset the current OAuth credentials. After confirming you will have to reenter the credentials at the storage provider and all remote users will have to authorize against OpenProject again. Are you sure you want to proceed? - confirm_replace_oauth_client: This action will reset the current OAuth credentials. After confirming you will have to enter new credentials from the storage provider and all users will have to authorize against %{provider_type} again. Are you sure you want to proceed? + confirm_replace_oauth_application: Esta ação irá repor as credenciais OAuth atuais. Após a confirmação, terá de voltar a introduzir as credenciais no fornecedor de armazenamento e todos os utilizadores remotos terão de autorizar novamente o OpenProject. Tem a certeza de que pretende continuar? + confirm_replace_oauth_client: Esta ação irá repor as credenciais OAuth atuais. Depois de confirmar, terá de introduzir novas credenciais do fornecedor de armazenamento e todos os utilizadores terão de autorizar novamente em %{provider_type}. Tem a certeza de que pretende continuar? delete_warning: input_delete_confirmation: Introduza o nome do ficheiro de armazenamento %{file_storage} para confirmar a eliminação. irreversible_notice: A eliminação de um ficheiro de armazenamento é uma ação irreversível. diff --git a/modules/storages/config/locales/crowdin/zh-TW.yml b/modules/storages/config/locales/crowdin/zh-TW.yml index 35a959d2f6ea..a9f90aaf36b5 100644 --- a/modules/storages/config/locales/crowdin/zh-TW.yml +++ b/modules/storages/config/locales/crowdin/zh-TW.yml @@ -197,7 +197,7 @@ zh-TW: page_titles: file_storages: delete: 刪除儲存區 - subtitle: Add an external file storage in order to upload, link and manage files in work packages. + subtitle: 新增外部檔案存儲空間,以便上傳、連結和管理工作項目中的文件。 managed_project_folders: one_drive_information: |- To enable automatically managed project folders in OneDrive/SharePoint, additional configuration is needed on @@ -231,8 +231,8 @@ zh-TW: name: OneDrive/SharePoint name_placeholder: 例如 OneDrive storage_list_blank_slate: - description: Add a storage to see them here. - heading: You don't have any storages yet. + description: 新增的儲存空間將在此顯示 + heading: 目前沒有任何儲存空間 upsale: description: |- Integrate your OneDrive/SharePoint as a file storage with OpenProject. Upload files and link them directly to diff --git a/modules/storages/spec/contracts/storages/storages/nextcloud_contract_spec.rb b/modules/storages/spec/contracts/storages/storages/nextcloud_contract_spec.rb index 7f2bac5af98e..828054613c0c 100644 --- a/modules/storages/spec/contracts/storages/storages/nextcloud_contract_spec.rb +++ b/modules/storages/spec/contracts/storages/storages/nextcloud_contract_spec.rb @@ -93,8 +93,7 @@ expect(subject.errors.to_hash) .to eq({ password: ["could not be validated. Please check your storage connection and try again."] }) - # twice due to HTTPX retry plugin being enabled. - expect(credentials_request).to have_been_made.twice + expect(credentials_request).to have_been_made.once end end diff --git a/modules/storages/spec/contracts/storages/storages/shared_contract_examples.rb b/modules/storages/spec/contracts/storages/storages/shared_contract_examples.rb index ab76b5545399..a1e03f0027af 100644 --- a/modules/storages/spec/contracts/storages/storages/shared_contract_examples.rb +++ b/modules/storages/spec/contracts/storages/storages/shared_contract_examples.rb @@ -192,8 +192,7 @@ it 'retries failed request once' do contract.validate - # twice due to HTTPX retry plugin being enabled. - expect(stub_server_capabilities).to have_been_made.twice + expect(stub_server_capabilities).to have_been_made.once end end @@ -205,8 +204,7 @@ it 'retries failed request once' do contract.validate - # twice due to HTTPX retry plugin being enabled. - expect(stub_config_check).to have_been_made.twice + expect(stub_config_check).to have_been_made.once end end end diff --git a/modules/storages/spec/factories/storage_factory.rb b/modules/storages/spec/factories/storage_factory.rb index 7aab75d834b6..963a91a3e146 100644 --- a/modules/storages/spec/factories/storage_factory.rb +++ b/modules/storages/spec/factories/storage_factory.rb @@ -44,19 +44,6 @@ trait :as_generic do provider_type { 'Storages::Storage' } end - end - - factory :nextcloud_storage, - parent: :storage, - class: '::Storages::NextcloudStorage' do - provider_type { Storages::Storage::PROVIDER_TYPE_NEXTCLOUD } - sequence(:host) { |n| "https://host#{n}.example.com" } - - trait :as_automatically_managed do - automatically_managed { true } - username { 'OpenProject' } - password { 'Password123' } - end trait :as_not_automatically_managed do automatically_managed { false } @@ -91,6 +78,19 @@ end end + factory :nextcloud_storage, + parent: :storage, + class: '::Storages::NextcloudStorage' do + provider_type { Storages::Storage::PROVIDER_TYPE_NEXTCLOUD } + sequence(:host) { |n| "https://host#{n}.example.com" } + + trait :as_automatically_managed do + automatically_managed { true } + username { 'OpenProject' } + password { 'Password123' } + end + end + factory :nextcloud_storage_configured, parent: :nextcloud_storage do after(:create) do |storage, _evaluator| create(:oauth_client, integration: storage) @@ -155,6 +155,10 @@ host { nil } tenant_id { SecureRandom.uuid } drive_id { SecureRandom.uuid } + + trait :as_automatically_managed do + automatically_managed { true } + end end factory :sharepoint_dev_drive_storage, diff --git a/modules/storages/spec/features/storages/admin/edit_storage_spec.rb b/modules/storages/spec/features/storages/admin/edit_storage_spec.rb index cc1a7de8142a..bd50ffc47659 100644 --- a/modules/storages/spec/features/storages/admin/edit_storage_spec.rb +++ b/modules/storages/spec/features/storages/admin/edit_storage_spec.rb @@ -227,8 +227,18 @@ end end - context 'with OneDrive Storage' do - let(:storage) { create(:one_drive_storage, name: 'Test Drive') } + context 'with Nextcloud Storage and not automatically managed' do + let(:storage) { create(:nextcloud_storage, :as_not_automatically_managed, name: 'Cloud Storage') } + + it 'does not render health status information' do + visit edit_admin_settings_storage_path(storage) + + expect(page).not_to have_test_selector('storage-health-label-pending', text: 'Pending') + end + end + + context 'with OneDrive/SharePoint Storage' do + let(:storage) { create(:one_drive_storage, :as_automatically_managed, name: 'Test Drive') } let(:oauth_client) { create(:oauth_client, integration: storage) } before { oauth_client } @@ -236,7 +246,9 @@ it 'renders an edit view', :webmock do visit edit_admin_settings_storage_path(storage) - expect(page).to be_axe_clean.within '#content' + expect(page).to be_axe_clean + .within('#content') + .skipping('heading-order') expect(page).to have_test_selector('storage-new-page-header--title', text: 'Test Drive (OneDrive/SharePoint)') @@ -314,5 +326,21 @@ expect(page).to have_test_selector('storage-oauth-client-id-description', text: "OAuth Client ID: 1234567890") end end + + it 'renders health status information' do + visit edit_admin_settings_storage_path(storage) + + expect(page).to have_test_selector('storage-health-label-pending', text: 'Pending') + end + end + + context 'with OneDrive/SharePoint Storage and not automatically managed' do + let(:storage) { create(:one_drive_storage, :as_not_automatically_managed, name: 'Cloud Storage') } + + it 'does not render health status information' do + visit edit_admin_settings_storage_path(storage) + + expect(page).not_to have_test_selector('storage-health-label-pending', text: 'Pending') + end end end diff --git a/modules/team_planner/config/locales/crowdin/js-pt-BR.yml b/modules/team_planner/config/locales/crowdin/js-pt-BR.yml index 4b78496fcd9c..1a95e571f2a6 100644 --- a/modules/team_planner/config/locales/crowdin/js-pt-BR.yml +++ b/modules/team_planner/config/locales/crowdin/js-pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-BR: js: team_planner: add_existing: 'Adicionar existente' diff --git a/modules/team_planner/config/locales/crowdin/js-pt-PT.yml b/modules/team_planner/config/locales/crowdin/js-pt-PT.yml index 560997823d7a..a2e055780178 100644 --- a/modules/team_planner/config/locales/crowdin/js-pt-PT.yml +++ b/modules/team_planner/config/locales/crowdin/js-pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-PT: js: team_planner: add_existing: 'Adicionar existente' diff --git a/modules/team_planner/config/locales/crowdin/pt-BR.yml b/modules/team_planner/config/locales/crowdin/pt-BR.yml index c6f1146ba653..7206c4ba8dfe 100644 --- a/modules/team_planner/config/locales/crowdin/pt-BR.yml +++ b/modules/team_planner/config/locales/crowdin/pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-BR: plugin_openproject_team_planner: name: "Planejador de equipes OpenProject" description: "Fornece visualizações do planejador de equipes." diff --git a/modules/team_planner/config/locales/crowdin/pt-PT.yml b/modules/team_planner/config/locales/crowdin/pt-PT.yml index e1a02a84bd72..4d1150b1f110 100644 --- a/modules/team_planner/config/locales/crowdin/pt-PT.yml +++ b/modules/team_planner/config/locales/crowdin/pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here -pt: +pt-PT: plugin_openproject_team_planner: name: "Planeador de equipas OpenProject" description: "Fornece visualizações do planeador de equipas." diff --git a/modules/two_factor_authentication/config/locales/crowdin/cs.yml b/modules/two_factor_authentication/config/locales/crowdin/cs.yml index 0c74cb1f2ef9..0d4321082095 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/cs.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/cs.yml @@ -114,11 +114,11 @@ cs: is_default_cannot_delete: "Zařízení je označeno jako výchozí a nemůže být odstraněno z důvodu aktivní bezpečnostní politiky. Před smazáním označte jiné zařízení jako výchozí." not_existing: "Žádné 2FA zařízení nebylo zaregistrováno pro váš účet." 2fa_from_input: Zadejte prosím kód z Vašeho %{device_name} pro ověření Vaší identity. - 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + 2fa_from_webauthn: Uveďte prosím zařízení WebAuthn %{device_name}. Pokud je založeno na USB, nezapomeňte jej připojit a dotknout se jej. Poté klikněte na tlačítko Přihlásit se. webauthn: title: "WebAuthn" description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. - further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. + further_steps: Po zvolení jména můžete kliknout na tlačítko Pokračovat. Váš prohlížeč vás vyzve, abyste prezentovali vaše WebAuthn zařízení. Až tak učiníte, jste zařízení zaregistrovali. totp: title: "Použít autentifikátor založený na aplikaci" provisioning_uri: "Poskytování URI" diff --git a/modules/two_factor_authentication/config/locales/crowdin/fr.yml b/modules/two_factor_authentication/config/locales/crowdin/fr.yml index f436d70a2982..c0360a0cfc4c 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/fr.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/fr.yml @@ -75,7 +75,7 @@ fr: button_register_mobile_phone_for_user: "Enregistrer un téléphone mobile" text_2fa_enabled: "Lors de chaque connexion, cet utilisateur sera invité à entrer un jeton OTP depuis son appareil 2FA par défaut." text_2fa_disabled: "L'utilisateur n'a configuré aucun appareil 2FA sur sa page « Mon compte »" - only_sms_allowed: "Only SMS delivery can be set up for other users." + only_sms_allowed: "Seul l'envoi de SMS peut être configuré pour d'autres utilisateurs." upsale: title: "Authentification à deux facteurs" description: "Renforcez la sécurité de votre instance OpenProject en offrant (ou en forçant) une authentification à deux facteurs à tous les membres du projet." @@ -112,12 +112,12 @@ fr: failed_to_delete: "Impossible de supprimer l'appareil 2FA." is_default_cannot_delete: "Cet appareil est un appareil par défaut, et ne peut être supprimé à d'une politique de sécurité active. Sélectionnez un autre appareil comme appareil par défaut avant de supprimer l'appareil par défaut actuel." not_existing: "Aucun appareil 2FA n’a été enregistré pour votre compte." - 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. - 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + 2fa_from_input: Veuillez entrer le code obtenu depuis %{device_name} pour vérifier votre identité. + 2fa_from_webauthn: Veuillez spécifier l'appareil WebAuthn %{device_name}. S'il s'agit d'un périphérique USB, veillez à le brancher et à le toucher. Cliquez ensuite sur le bouton de connexion. webauthn: title: "WebAuthn" - description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. - further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. + description: Utilisez l'authentification Web pour enregistrer un dispositif FIDO2 (comme une YubiKey) ou l'enclave sécurisée de votre appareil mobile en tant que deuxième facteur. + further_steps: Après avoir choisi un nom, cliquez sur le bouton Continuer. Votre navigateur vous invitera à présenter votre appareil WebAuthn. Une fois cette action effectuée, l'enregistrement de l'appareil est terminé. totp: title: "Utilisez votre authentificateur basé sur l'application" provisioning_uri: "Provisionnement URI" diff --git a/modules/two_factor_authentication/config/locales/crowdin/hu.yml b/modules/two_factor_authentication/config/locales/crowdin/hu.yml index a4a6aadbcfed..2cfb3a5d92df 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/hu.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/hu.yml @@ -74,8 +74,8 @@ hu: delete_all_are_you_sure: "Biztos vagy benne hogy törölni szeretnéd az összes 2FA eszközt ennél a felhasználónál?" button_delete_all_devices: "2FA eszköz regisztrációjának törlése" button_register_mobile_phone_for_user: "Mobiltelefon regisztrálása" - text_2fa_enabled: "Upon every login, this user will be requested to enter a OTP token from their default 2FA device." - text_2fa_disabled: "The user did not set up a 2FA device through their 'My account page'" + text_2fa_enabled: "Minden egyes belépésnél szüksége lesz az alapértelmezett 2FA eszközről beírt OTP tokenre." + text_2fa_disabled: "A felhasználó nem állított be 2FA eszközt a „Saját fiókom” oldalon" only_sms_allowed: "Only SMS delivery can be set up for other users." upsale: title: "Kétlépcsős hitelesítés" diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-fr.yml b/modules/two_factor_authentication/config/locales/crowdin/js-fr.yml index 3ec8f52a2e4c..fa3965714747 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/js-fr.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/js-fr.yml @@ -23,4 +23,4 @@ fr: js: two_factor_authentication: errors: - aborted: "The authentication was cancelled. Please try again." + aborted: "L'authentification a été annulée. Veuillez réessayer." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-ko.yml b/modules/two_factor_authentication/config/locales/crowdin/js-ko.yml index 888381ea8ce1..81aa3f999749 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/js-ko.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/js-ko.yml @@ -23,4 +23,4 @@ ko: js: two_factor_authentication: errors: - aborted: "The authentication was cancelled. Please try again." + aborted: "인증이 취소되었습니다. 다시 시도해 주세요." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-pt-BR.yml b/modules/two_factor_authentication/config/locales/crowdin/js-pt-BR.yml index 2b53d2f14fba..372544c095be 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/js-pt-BR.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/js-pt-BR.yml @@ -19,8 +19,8 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-BR: js: two_factor_authentication: errors: - aborted: "The authentication was cancelled. Please try again." + aborted: "A autenticação foi cancelada. Tente novamente." diff --git a/modules/two_factor_authentication/config/locales/crowdin/js-pt-PT.yml b/modules/two_factor_authentication/config/locales/crowdin/js-pt-PT.yml index dbaec2f1af3a..d51a43480f8f 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/js-pt-PT.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/js-pt-PT.yml @@ -19,7 +19,7 @@ #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. #See COPYRIGHT and LICENSE files for more details. #++ -pt: +pt-PT: js: two_factor_authentication: errors: diff --git a/modules/two_factor_authentication/config/locales/crowdin/ko.yml b/modules/two_factor_authentication/config/locales/crowdin/ko.yml index d902813034c8..6f9efd34083e 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/ko.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/ko.yml @@ -76,7 +76,7 @@ ko: button_register_mobile_phone_for_user: "휴대폰 등록" text_2fa_enabled: "로그인할 때마다 기본 2FA 장치에서 OTP 토큰을 입력하라는 메시지가 이 사용자에게 표시됩니다." text_2fa_disabled: "사용자가 '내 계정 페이지'에서 2FA 장치를 설정하지 않았습니다." - only_sms_allowed: "Only SMS delivery can be set up for other users." + only_sms_allowed: "다른 사용자의 경우 SNS 배달만 설정할 수 있습니다." upsale: title: "2단계 인증" description: "모든 프로젝트 멤버에게 2단계 인증을 제공(또는 적용)하여 OpenProject 인스턴스의 보안을 강화하세요." @@ -114,12 +114,12 @@ ko: failed_to_delete: "2FA 장치를 삭제하지 못했습니다." is_default_cannot_delete: "장치가 기본으로 표시되고 활성 보안 정책으로 인해 삭제할 수 없습니다. 삭제하기 전에 다른 장치를 기본으로 표시하세요." not_existing: "2FA 장치가 해당 계정에 대해 등록되지 않았습니다." - 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. - 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + 2fa_from_input: %{device_name}의 코드를 입력하여 ID를 인증하세요. + 2fa_from_webauthn: WebAuthn 장치 %{device_name} 제공을 해주세요. USB 기반인 경우 장치를 연결하고 터치하세요. 그런 다음 로그인 버튼을 클릭하세요. webauthn: title: "WebAuthn" - description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. - further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. + description: '웹 인증을 사용하여 2단계 인증으로 FIDO2 장치(예: YubiKey)를 등록하거나 모바일 장치의 Secure Enclave를 등록합니다.' + further_steps: 이름을 선택한 후 계속 버튼을 클릭할 수 있습니다. 브라우저에서 WebAuthn 장치를 제공하라는 메시지가 표시됩니다. 이렇게 하면 장치 등록이 완료됩니다. totp: title: "앱 기반 인증자 사용" provisioning_uri: "프로비저닝 URI" diff --git a/modules/two_factor_authentication/config/locales/crowdin/pt-BR.yml b/modules/two_factor_authentication/config/locales/crowdin/pt-BR.yml index c562433ce2cc..684c982be7ec 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/pt-BR.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/pt-BR.yml @@ -1,5 +1,5 @@ #English strings go here for Rails i18n -pt: +pt-BR: plugin_openproject_two_factor_authentication: name: "Autenticação de dois fatores do OpenProject" description: >- @@ -118,8 +118,8 @@ pt: 2fa_from_webauthn: Forneça o dispositivo WebAuthn %{device_name}. Se for do tipo USB certifique-se de conectá-lo e tocá-lo. Em seguida, clique no botão de login. webauthn: title: "WebAuthn" - description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. - further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. + description: Utilize a autenticação da Web para registrar um dispositivo FIDO2 (como uma YubiKey) ou o enclave seguro do seu dispositivo móvel como um segundo fator de autenticação. + further_steps: Após escolher um nome, basta clicar no botão "Continuar". O navegador vai pedir para você apresentar o dispositivo WebAuthn. Depois disso, o registro do dispositivo estará concluído. totp: title: "Use seu aplicativo de autenticação base" provisioning_uri: "Posicione o URI" diff --git a/modules/two_factor_authentication/config/locales/crowdin/pt-PT.yml b/modules/two_factor_authentication/config/locales/crowdin/pt-PT.yml index ba45743d6f08..0d0e7ba01d25 100644 --- a/modules/two_factor_authentication/config/locales/crowdin/pt-PT.yml +++ b/modules/two_factor_authentication/config/locales/crowdin/pt-PT.yml @@ -1,5 +1,5 @@ #English strings go here for Rails i18n -pt: +pt-PT: plugin_openproject_two_factor_authentication: name: "Autenticação de dois fatores do OpenProject" description: >- @@ -76,7 +76,7 @@ pt: button_register_mobile_phone_for_user: "Registre o celular" text_2fa_enabled: "Em cada login, este utilizador será solicitado a inserir um token OTP do seu dispositivo padrão 2FA." text_2fa_disabled: "O utilizador não configurou um dispositivo 2FA através da sua página \"A minha conta\"" - only_sms_allowed: "Only SMS delivery can be set up for other users." + only_sms_allowed: "Apenas o envio de SMS pode ser configurado para outros utilizadores." upsale: title: "Autenticação de dois fatores" description: "Reforce a segurança da sua instância do OpenProject ao oferecer (ou reforçar) a autenticação de dois fatores a todos os membros do projeto." @@ -114,12 +114,12 @@ pt: failed_to_delete: "Falha ao excluir o dispositivo 2FA." is_default_cannot_delete: "O dispositivo está marcado como padrão e não pode ser excluído devido a uma política de segurança ativa. Marque outro dispositivo como padrão antes de excluir." not_existing: "Nenhum dispositivo 2FA foi registrado para sua conta." - 2fa_from_input: Please enter the code from your %{device_name} to verify your identity. - 2fa_from_webauthn: Please provide the WebAuthn device %{device_name}. If it is USB based make sure to plug it in and touch it. Then click the sign in button. + 2fa_from_input: Introduza o código do seu %{device_name} para verificar a sua identidade. + 2fa_from_webauthn: Indique o dispositivo WebAuthn %{device_name}. Se for baseado em USB, certifique-se de que o liga e toca nele. Em seguida, clique no botão de início de sessão. webauthn: title: "WebAuthn" - description: Use Web Authentication to register a FIDO2 device (like a YubiKey) or the secure enclave of your mobile device as a second factor. - further_steps: After you have chosen a name, you can click the Continue button. Your browser will prompt you to present your WebAuthn device. When you have done so, you are done registering the device. + description: Utilize a Autenticação Web para registar um dispositivo FIDO2 (como uma YubiKey) ou o enclave seguro do seu dispositivo móvel como um segundo fator. + further_steps: Depois de ter escolhido um nome, pode clicar no botão Continuar. O seu navegador irá pedir-lhe para apresentar o seu dispositivo WebAuthn. Quando o tiver feito, o registo do dispositivo está concluído. totp: title: "Use o seu autenticador baseado em aplicativos" provisioning_uri: "URI de provisionamento" diff --git a/modules/webhooks/config/locales/crowdin/hu.yml b/modules/webhooks/config/locales/crowdin/hu.yml index 968d455efe6d..552c3b69ccee 100644 --- a/modules/webhooks/config/locales/crowdin/hu.yml +++ b/modules/webhooks/config/locales/crowdin/hu.yml @@ -1,7 +1,7 @@ hu: plugin_openproject_webhooks: - name: "OpenProject Webhooks" - description: "Provides a plug-in API to support OpenProject webhooks for better 3rd party integration." + name: "OpenProject webhookok" + description: "Az OpenProject webhooks támogatásához egy API-t biztosít a jobb 3rd party integráció érdekében." activerecord: attributes: webhooks/webhook: diff --git a/modules/webhooks/config/locales/crowdin/pt-BR.yml b/modules/webhooks/config/locales/crowdin/pt-BR.yml index 71622189a0f3..0a3c5cba4673 100644 --- a/modules/webhooks/config/locales/crowdin/pt-BR.yml +++ b/modules/webhooks/config/locales/crowdin/pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: plugin_openproject_webhooks: name: "Webhooks do OpenProject" description: "Fornece uma API de plug-in para dar suporte aos webhooks do OpenProject para uma melhor integração de terceiros." diff --git a/modules/webhooks/config/locales/crowdin/pt-PT.yml b/modules/webhooks/config/locales/crowdin/pt-PT.yml index 8bdf94e64dc9..1496aff7e003 100644 --- a/modules/webhooks/config/locales/crowdin/pt-PT.yml +++ b/modules/webhooks/config/locales/crowdin/pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: plugin_openproject_webhooks: name: "Webhooks do OpenProject" description: "Fornece uma API de plug-in para suportar webhooks do OpenProject para uma melhor integração de terceiros." diff --git a/modules/xls_export/config/locales/crowdin/pt-BR.yml b/modules/xls_export/config/locales/crowdin/pt-BR.yml index c024d4d7edb0..31bcd6d4053b 100644 --- a/modules/xls_export/config/locales/crowdin/pt-BR.yml +++ b/modules/xls_export/config/locales/crowdin/pt-BR.yml @@ -1,4 +1,4 @@ -pt: +pt-BR: plugin_openproject_xls_export: name: "Exportação XLS do OpenProject" description: "Exportar listas de problemas como planilhas Excel (.xls)." diff --git a/modules/xls_export/config/locales/crowdin/pt-PT.yml b/modules/xls_export/config/locales/crowdin/pt-PT.yml index b2691b6ba103..440931f9de6d 100644 --- a/modules/xls_export/config/locales/crowdin/pt-PT.yml +++ b/modules/xls_export/config/locales/crowdin/pt-PT.yml @@ -1,4 +1,4 @@ -pt: +pt-PT: plugin_openproject_xls_export: name: "Exportação XLS do OpenProject" description: "Exportar listas de problemas como folhas de cálculo do Excel (.xls)." diff --git a/script/i18n/fix_crowdin_pt_language_root_key b/script/i18n/fix_crowdin_pt_language_root_key new file mode 100755 index 000000000000..0237262f1427 --- /dev/null +++ b/script/i18n/fix_crowdin_pt_language_root_key @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +echo "Fixing language root key in pt-BR and pt-PT crowdin files to match the filename" +if [ "$(uname -s)" = "Darwin" ]; then + sed -i '' 's/^pt:/pt-BR:/' config/locales/crowdin/*pt-BR*.yml modules/*/config/locales/crowdin/*pt-BR*.yml + sed -i '' 's/^pt:/pt-PT:/' config/locales/crowdin/*pt-PT*.yml modules/*/config/locales/crowdin/*pt-PT*.yml +else + sed -i 's/^pt:/pt-BR:/' config/locales/crowdin/*pt-BR*.yml modules/*/config/locales/crowdin/*pt-BR*.yml + sed -i 's/^pt:/pt-PT:/' config/locales/crowdin/*pt-PT*.yml modules/*/config/locales/crowdin/*pt-PT*.yml +fi diff --git a/spec/lib/acts_as_journalized/journable_differ_spec.rb b/spec/lib/acts_as_journalized/journable_differ_spec.rb index fb93bb9d6a98..a6c6ccf0fd05 100644 --- a/spec/lib/acts_as_journalized/journable_differ_spec.rb +++ b/spec/lib/acts_as_journalized/journable_differ_spec.rb @@ -131,5 +131,31 @@ ) end end + + context "with a default custom value" do + let(:original) do + build(:work_package, + custom_values: [ + build_stubbed(:work_package_custom_value, custom_field_id: nil, value: nil), + build_stubbed(:work_package_custom_value, custom_field_id: nil, value: ""), + build_stubbed(:work_package_custom_value, custom_field_id: 2, value: 1) + ]) + end + + let(:changed) do + build(:work_package, + custom_values: [ + build_stubbed(:work_package_custom_value, custom_field_id: 1, value: "t"), + build_stubbed(:work_package_custom_value, custom_field_id: 2, value: 2) + ]) + end + + it "returns the changes" do + params = [original, changed, "custom_values", "custom_field", :custom_field_id, :value] + expect(described_class.association_changes(*params)) + .to eql("custom_field_1" => [nil, "t"], + "custom_field_2" => ["1", "2"]) + end + end end end diff --git a/spec/lib/open_project/appsignal_spec.rb b/spec/lib/open_project/appsignal_spec.rb new file mode 100644 index 000000000000..3cf4c8d4f1a5 --- /dev/null +++ b/spec/lib/open_project/appsignal_spec.rb @@ -0,0 +1,70 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) 2012-2024 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. +#++ + +require "spec_helper" +require "appsignal" + +RSpec.describe OpenProject::Appsignal do + describe ".exception_handler" do + let(:exception) { StandardError.new("I am a fake exception") } + + before do + allow(Appsignal).to receive(:active?).and_return(true) + allow(Appsignal).to receive(:send_error) + end + + it "does nothing if there is no exception in the log context" do + described_class.exception_handler("message") + expect(Appsignal).not_to have_received(:send_error) + end + + it "stores the exception in current appsignal transaction if one is available" do + transaction = Appsignal::Transaction.create( + SecureRandom.uuid, + Appsignal::Transaction::BACKGROUND_JOB, + Appsignal::Transaction::GenericRequest.new({}) + ) + allow(transaction).to receive(:set_error) + described_class.exception_handler("message", exception:) + + expect(transaction).to have_received(:set_error).with(exception) + expect(Appsignal).not_to have_received(:send_error) + ensure + Appsignal::Transaction.complete_current! + end + + it "sends an error through Appsignal if no current appsignal transaction available" do + allow(Appsignal).to receive(:send_error) + described_class.exception_handler("message", exception:) + + expect(Appsignal).to have_received(:send_error).with(exception) + end + end +end diff --git a/spec/models/queries/projects/factory_spec.rb b/spec/models/queries/projects/factory_spec.rb index 58b1a159d1fe..4e3eb604f38f 100644 --- a/spec/models/queries/projects/factory_spec.rb +++ b/spec/models/queries/projects/factory_spec.rb @@ -50,6 +50,24 @@ query.select(:project_status, :name, :created_at) end end + let(:custom_field) do + build_stubbed(:project_custom_field, id: 1) do |cf| + scope = instance_double(ActiveRecord::Relation) + + allow(ProjectCustomField) + .to receive(:visible) + .and_return(scope) + + allow(scope) + .to receive(:find_by) + .and_return nil + + allow(scope) + .to receive(:find_by) + .with(id: cf.id.to_s) + .and_return(cf) + end + end let(:id) { nil } let(:params) { {} } @@ -80,7 +98,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it "has the enabled_project_columns columns as selects" do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -91,7 +109,11 @@ with_settings: { enabled_projects_columns: %w[name created_at cf_1] } do current_user { build_stubbed(:admin) } - it 'has the enabled project columns columns as selects' do + before do + custom_field + end + + it "has the enabled_project_columns columns as selects" do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -120,7 +142,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -149,7 +171,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -178,7 +200,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -207,7 +229,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -236,7 +258,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -265,7 +287,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -383,7 +405,7 @@ .to eq([['id', :asc], ['name', :desc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -428,7 +450,7 @@ .to eq([%i[lft asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -625,6 +647,19 @@ .to be_nil end end + + context "without id, as non admin and with a non existing custom field id", + with_ee: %i[custom_fields_in_projects_list], + with_settings: { enabled_projects_columns: %w[name created_at cf_1 cf_42] } do + before do + custom_field + end + + it "has only the available fields (non admin only and only existing cf)" do + expect(find.selects.map(&:attribute)) + .to eq(%i[name cf_1]) # rubocop:disable Naming/VariableNumber + end + end end describe '.static_query_active' do @@ -650,7 +685,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -679,7 +714,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -708,7 +743,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -737,7 +772,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -766,7 +801,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end @@ -795,7 +830,7 @@ .to eq([['lft', :asc]]) end - it 'has the enabled project columns columns as selects' do + it 'has the enabled_project_columns columns as selects' do expect(find.selects.map(&:attribute)) .to eq(Setting.enabled_projects_columns.map(&:to_sym)) end diff --git a/spec/models/query/group_sums_custom_fields_spec.rb b/spec/models/query/group_sums_custom_fields_spec.rb new file mode 100644 index 000000000000..050698138201 --- /dev/null +++ b/spec/models/query/group_sums_custom_fields_spec.rb @@ -0,0 +1,101 @@ +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) 2012-2024 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. +#++ + +require "spec_helper" + +RSpec.describe Query::Results, "Grouping and summing integer/float custom field (Regression #53609)" do + let(:query_results) do + Query::Results.new query + end + let(:user) do + create(:user, + firstname: "user", + lastname: "1", + member_with_permissions: { project => [:view_work_packages] }) + end + + let(:float_custom_field) do + create(:float_wp_custom_field, name: "MyFloat") + end + let(:int_custom_field) do + create(:integer_wp_custom_field, name: "MyInt") + end + + let(:type) { create(:type_standard, custom_fields: [float_custom_field, int_custom_field]) } + let(:project) do + create(:project, + types: [type], + work_package_custom_fields: [float_custom_field, int_custom_field]) + end + let(:wp1) do + create(:work_package, + type:, + project:, + custom_values: { float_custom_field.id => "6.25", int_custom_field.id => "6" }) + end + + let(:wp2) do + create(:work_package, + type:, + project:, + custom_values: { float_custom_field.id => "15.0", int_custom_field.id => "1" }) + end + + let(:query) do + build(:query, + user:, + show_hierarchies: false, + project:).tap do |q| + q.filters.clear + q.column_names = ["id", "subject", int_custom_field.column_name, float_custom_field.column_name] + q.group_by = int_custom_field.column_name + q.display_sums = true + end + end + + let(:int_cf_column) { query.displayable_columns.detect { |c| c.name.to_s == int_custom_field.column_name } } + let(:float_cf_column) { query.displayable_columns.detect { |c| c.name.to_s == float_custom_field.column_name } } + + before do + login_as(user) + wp1 + wp2 + end + + it "returns the correctly grouped sums" do + expect(query_results.work_packages.pluck(:id)) + .to contain_exactly(wp1.id, wp2.id) + + expect(query_results.all_group_sums.keys).to contain_exactly(1, 6) + expect(query_results.all_group_sums[1][float_cf_column]).to eq 15.0 + expect(query_results.all_group_sums[6][float_cf_column]).to eq 6.25 + + expect(query_results.all_total_sums[float_cf_column]).to eq 21.25 + expect(query_results.all_total_sums[int_cf_column]).to eq 7 + end +end diff --git a/spec/seeders/root_seeder_standard_edition_spec.rb b/spec/seeders/root_seeder_standard_edition_spec.rb index 5c31928d51c0..fb12568d07b4 100644 --- a/spec/seeders/root_seeder_standard_edition_spec.rb +++ b/spec/seeders/root_seeder_standard_edition_spec.rb @@ -64,6 +64,15 @@ expect(Boards::Grid.count { |grid| grid.options.has_key?(:filters) }).to eq 1 end + it "adds the backlogs, board, costs, meetings, and reporting modules to the default_projects_modules setting" do + default_modules = Setting.find_by(name: "default_projects_modules").value + expect(default_modules).to include("backlogs") + expect(default_modules).to include("board_view") + expect(default_modules).to include("costs") + expect(default_modules).to include("meetings") + expect(default_modules).to include("reporting_module") + end + it 'links work packages to their version' do count_by_version = WorkPackage.joins(:version).group('versions.name').count # testing with strings would fail for the German language test @@ -233,7 +242,13 @@ shared_let(:root_seeder) { described_class.new(seed_development_data: true) } before_all do - root_seeder.seed_data! + RSpec::Mocks.with_temporary_scope do + # opportunistic way to add a test for bug #53611 without extending the testing time + allow(Settings::Definition["default_projects_modules"]) + .to receive(:writable?).and_return(false) + + root_seeder.seed_data! + end end it 'creates 1 additional admin user with German locale' do diff --git a/spec/services/queries/projects/project_queries/set_attributes_service_spec.rb b/spec/services/queries/projects/project_queries/set_attributes_service_spec.rb index 76866cf7b541..f4e8f79cdf0e 100644 --- a/spec/services/queries/projects/project_queries/set_attributes_service_spec.rb +++ b/spec/services/queries/projects/project_queries/set_attributes_service_spec.rb @@ -30,6 +30,20 @@ RSpec.describe Queries::Projects::ProjectQueries::SetAttributesService, type: :model do let(:current_user) { build_stubbed(:user) } + let!(:custom_field) do + build_stubbed(:project_custom_field, id: 1) do |cf| + scope = instance_double(ActiveRecord::Relation) + + allow(ProjectCustomField) + .to receive(:visible) + .and_return(scope) + + allow(scope) + .to receive(:find_by) + .with(id: cf.id.to_s) + .and_return(cf) + end + end let(:contract_instance) do contract = instance_double(Queries::Projects::ProjectQueries::CreateContract)