+
+ > **Issue Opened:** Issue 6 New contact form - OP#18 for Scrum project has been opened by Administrator.
+
+2. **Comment on issue.**
+
+ If the reference is included in the title, the comments will not need a reference. By default, all comments will use the title as a reference.
+
+
+
+ > **Commented in Issue:** Administrator commented this WP in Issue 6 New contact form - OP#18 on Scrum project:
+ >
+ > New comment on the issue with attachment.
+
+3. **Create Merge Request.**
+
+
+
+ > **MR Opened:** Merge request 25 Draft: Resolve "New contact form - OP#18" for Scrum project has been opened by Administrator.
+ >
+ > **Status** changed from _Specified_
+ > **to** _In progress_
+
+4. **Comment in Merge Request.**
+
+
+
+ > **Commented in MR:** Administrator commented this WP in Merge request 25 Draft: Resolve "New contact form - OP#18" on Scrum project:
+ >
+ > New comment on MR.
+
+5. **Reference in other Issues or Merge Request (comments).**
+
+ If the reference is NOT included in the title of the Issue/MR, the comments will need a reference. In OpenProject the comment will be saved as "referenced" in Issue/MR.
+
+
+
+ > **Referenced in Issue:** Administrator referenced this WP in Issue 2 New backend pipeline on Scrum project:
+ >
+ > OP#18 New comment about...
+ >
+ > **Note:** If you use the reference `PP#` in the title of the Issue/MR, you can use `OP#` in the comment to generate the same type of comment in OpenProject.
+
+6. **New commit in Merge Request.**
+
+
+
+ > **Pushed in MR:** Administrator pushed fca3d6fb to Scrum project at 2021-03-08T08:01:57+00:00:
+ >
+ > Update readme.md OP#18
+
+7. **Comment in a new commit of the Merge Request.**
+
+
+
+ > **Referenced in Commit:** Administrator referenced this WP in a Commit Note 0bf0e3e9 on Scrum project:
+ >
+ > This change is for OP#18.
+
+8. **Merge Request merged (generates up to 3 events).**
+
+
+
+ > **Pushed in MR:** Administrator pushed 1da09cb4 to Scrum project at 2021-03-05T14:57:37+00:00:
+ >
+ > Merge branch '5-new-contact-form-op-18' into 'master'
+ >
+ > Resolve "New contact form - OP#18"
+ >
+ > Closes #6
+ >
+ > See merge request root/scrum!9
+
+
+
+ > **MR Merged:** Merge request 24 Resolve "New contact form - OP#18" for Scrum project has been merged by Administrator.
+ >
+ > **Status** changed from _In progress_
+ > **to** _Developed_
+
+
+
+ > **Issue Closed:** Issue 6 New contact form - OP#18 for Scrum project has been closed by Administrator.
+
+## Configuration
+
+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 .`
+* Clone the plugin inside the modules folder: `git clone https://github.com/btey/openproject-gitlab-integration.git --depth=1 modules/gitlab_integration`
+* Apply the changes below in Gemfile.lock and Gemfile.modules (the same ones you would do in a manual install).
+* Build the container: `docker build -t openproject-docker --file=docker/prod/Dockerfile .`
+* Now run the image following the official documentation.
+
+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.
+
+- **Github plugin path:** `modules/github_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.
+
+Add the following in **Gemfile.lock**:
+
+```yml
+PATH
+ remote: modules/gitlab_integration
+ specs:
+ openproject-gitlab_integration (2.1.6)
+ openproject-webhooks
+```
+
+And add this other line in DEPENDENCIES section:
+
+```yml
+DEPENDENCIES
+...
+ openproject-github_integration!
+ openproject-gitlab_integration!
+ openproject-job_status!
+...
+```
+
+Add the following in **Gemfile.modules**:
+
+```yml
+group :opf_plugins do
+...
+ gem 'openproject-gitlab_integration', path: 'modules/gitlab_integration'
+...
+end
+```
+
+**Note:** It's possible that you need to use these commands before and after the `bundle install` if you get an error in this step warning about a change in the Gemfile:
+
+```shell
+bundle config unset deployment
+bundle install --deployment --without mysql2 sqlite development test therubyracer docker
+bundle config set deployment
+```
+
+### The GitLab Bot user in OpenProject
+
+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:
+
+* 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.
+
+### The webhook in GitLab
+
+In GitLab you have to [set up a webhook](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#configure-a-webhook-in-gitlab) in each project or in a group ([Premium Users](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#group-webhooks)) to be integrated with OpenProject.
+
+You need to configure just two things in the webhook:
+
+1. The URL must point to your OpenProject server’s GitLab webhook endpoint (/webhooks/gitlab). Append it to the URL as a simple GET parameter named key. In the end the URL should look something like this:
+
+ ```
+ http://openproject-url.com/webhooks/gitlab?key=[previous_generated_access_token_key]
+ ```
+
+2. Enable the required triggers:
+ 1. Push events (project hooks or systems hooks)
+ 2. Comments
+ 3. Issues events
+ 4. Merge request events
+ 5. Pipeline events
+
+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.
+
+## How to report bugs or issues
+
+Any error, bug or issue can be reported by creating a new [issue](https://github.com/btey/openproject-gitlab-integration/issues/new).
diff --git a/modules/gitlab_integration/app/models/gitlab_issue.rb b/modules/gitlab_integration/app/models/gitlab_issue.rb
new file mode 100644
index 00000000000..d7fe501a8a4
--- /dev/null
+++ b/modules/gitlab_integration/app/models/gitlab_issue.rb
@@ -0,0 +1,86 @@
+#-- encoding: UTF-8
+
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+
+class GitlabIssue < ApplicationRecord
+ LABEL_KEYS = %w[color title].freeze
+
+ has_and_belongs_to_many :work_packages
+ belongs_to :gitlab_user, optional: true
+
+ enum state: {
+ opened: 'opened',
+ closed: 'closed'
+ }
+
+ validates_presence_of :gitlab_html_url,
+ :number,
+ :repository,
+ :state,
+ :title,
+ :gitlab_updated_at
+ validates_presence_of :body,
+ unless: :partial?
+ validate :validate_labels_schema
+
+ scope :without_work_package, -> { left_outer_joins(:work_packages).where(work_packages: { id: nil }) }
+
+ def self.find_by_gitlab_identifiers(id: nil, url: nil, initialize: false)
+ raise ArgumentError, "needs an id or an url" if id.nil? && url.blank?
+
+ found = where(gitlab_id: id).or(where(gitlab_html_url: url)).take
+
+ if found
+ found
+ elsif initialize
+ new(gitlab_id: id, gitlab_html_url: url)
+ end
+ end
+
+ def partial?
+ [body].all?(&:nil?)
+ end
+
+ private
+
+ def validate_labels_schema
+ return if labels.nil?
+ return if labels.all? { |label| label.keys.sort == LABEL_KEYS }
+
+ errors.add(:labels, 'invalid schema')
+ end
+
+ def with_logging
+ yield if block_given?
+ rescue StandardError => e
+ Rails.logger.error "Error at gitlab issue: #{e} #{e.message}"
+ raise e
+ end
+end
diff --git a/modules/gitlab_integration/app/models/gitlab_merge_request.rb b/modules/gitlab_integration/app/models/gitlab_merge_request.rb
new file mode 100644
index 00000000000..4449e85810b
--- /dev/null
+++ b/modules/gitlab_integration/app/models/gitlab_merge_request.rb
@@ -0,0 +1,100 @@
+#-- encoding: UTF-8
+
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+
+class GitlabMergeRequest < ApplicationRecord
+ LABEL_KEYS = %w[color title].freeze
+
+ has_and_belongs_to_many :work_packages
+ has_many :gitlab_pipelines, dependent: :destroy
+ belongs_to :gitlab_user, optional: true
+ belongs_to :merged_by, optional: true, class_name: 'GitlabUser'
+
+ enum state: {
+ opened: 'opened',
+ merged: 'merged',
+ closed: 'closed'
+ }
+
+ validates_presence_of :gitlab_html_url,
+ :number,
+ :repository,
+ :state,
+ :title,
+ :gitlab_updated_at
+ validates_presence_of :body,
+ unless: :partial?
+ validate :validate_labels_schema
+
+ scope :without_work_package, -> { left_outer_joins(:work_packages).where(work_packages: { id: nil }) }
+
+ def self.find_by_gitlab_identifiers(id: nil, url: nil, initialize: false)
+ raise ArgumentError, "needs an id or an url" if id.nil? && url.blank?
+
+ found = where(gitlab_id: id).or(where(gitlab_html_url: url)).take
+
+ if found
+ found
+ elsif initialize
+ new(gitlab_id: id, gitlab_html_url: url)
+ end
+ end
+
+ ##
+ # When a MR lives long enough and receives many pushes, the same pipeline CI can be run multiple times.
+ # This method only returns the latest.
+
+ def latest_pipelines
+ with_logging do
+ gitlab_pipelines.select("DISTINCT ON (gitlab_pipelines.project_id, gitlab_pipelines.name) *")
+ .order(project_id: :asc, name: :asc, started_at: :desc)
+ end
+ end
+
+ def partial?
+ [body].all?(&:nil?)
+ end
+
+ private
+
+ def validate_labels_schema
+ return if labels.nil?
+ return if labels.all? { |label| label.keys.sort == LABEL_KEYS }
+
+ errors.add(:labels, 'invalid schema')
+ end
+
+ def with_logging
+ yield if block_given?
+ rescue StandardError => e
+ Rails.logger.error "Error at latest_pipeline: #{e} #{e.message}"
+ raise e
+ end
+end
diff --git a/modules/gitlab_integration/app/models/gitlab_pipeline.rb b/modules/gitlab_integration/app/models/gitlab_pipeline.rb
new file mode 100644
index 00000000000..24b4c163312
--- /dev/null
+++ b/modules/gitlab_integration/app/models/gitlab_pipeline.rb
@@ -0,0 +1,58 @@
+#-- encoding: UTF-8
+
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+
+class GitlabPipeline < ApplicationRecord
+ belongs_to :gitlab_merge_request, touch: true
+
+ # TODO: confirm with the gitlab documentation what are the different statuses.
+ enum status: {
+ created: 'created',
+ running: 'running',
+ success: 'success',
+ waiting: 'waiting',
+ preparing: 'preparing',
+ failed: 'failed',
+ pending: 'pending',
+ canceled: 'canceled',
+ skipped: 'skipped',
+ manual: 'manual',
+ scheduled: 'scheduled'
+ }
+
+ validates_presence_of :gitlab_user_avatar_url,
+ :gitlab_html_url,
+ :gitlab_id,
+ :status,
+ :name,
+ :ci_details,
+ :commit_id,
+ :username
+end
diff --git a/modules/gitlab_integration/app/models/gitlab_user.rb b/modules/gitlab_integration/app/models/gitlab_user.rb
new file mode 100644
index 00000000000..1e0015824da
--- /dev/null
+++ b/modules/gitlab_integration/app/models/gitlab_user.rb
@@ -0,0 +1,40 @@
+#-- encoding: UTF-8
+
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+
+class GitlabUser < ApplicationRecord
+ has_many :gitlab_merge_requests
+
+ validates_presence_of :gitlab_id,
+ :gitlab_name,
+ :gitlab_username,
+ :gitlab_email,
+ :gitlab_avatar_url
+end
diff --git a/modules/gitlab_integration/app/workers/cron/clear_old_merge_requests_job.rb b/modules/gitlab_integration/app/workers/cron/clear_old_merge_requests_job.rb
new file mode 100644
index 00000000000..ce3806f326d
--- /dev/null
+++ b/modules/gitlab_integration/app/workers/cron/clear_old_merge_requests_job.rb
@@ -0,0 +1,44 @@
+#-- encoding: UTF-8
+
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+
+module Cron
+ class ClearOldMergeRequestsJob < CronJob
+ priority_number :low
+
+ # runs at 1:25 nightly
+ self.cron_expression = '25 1 * * *'
+
+ def perform
+ GitlabMergeRequest.without_work_package
+ .find_each(&:destroy!)
+ end
+ end
+end
diff --git a/modules/gitlab_integration/config/locales/crowdin/ar.yml b/modules/gitlab_integration/config/locales/crowdin/ar.yml
new file mode 100644
index 00000000000..4640bb30224
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/ar.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+ar:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/bg.yml b/modules/gitlab_integration/config/locales/crowdin/bg.yml
new file mode 100644
index 00000000000..ac16b593442
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/bg.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+bg:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/ca.yml b/modules/gitlab_integration/config/locales/crowdin/ca.yml
new file mode 100644
index 00000000000..7c4b926621b
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/ca.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+ca:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/cs.yml b/modules/gitlab_integration/config/locales/crowdin/cs.yml
new file mode 100644
index 00000000000..5f7350af23d
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/cs.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+cs:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/da.yml b/modules/gitlab_integration/config/locales/crowdin/da.yml
new file mode 100644
index 00000000000..f275e1d3ae9
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/da.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+da:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/de.yml b/modules/gitlab_integration/config/locales/crowdin/de.yml
new file mode 100644
index 00000000000..7b921962955
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/de.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+de:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/el.yml b/modules/gitlab_integration/config/locales/crowdin/el.yml
new file mode 100644
index 00000000000..f98c9606f96
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/el.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+el:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/es.yml b/modules/gitlab_integration/config/locales/crowdin/es.yml
new file mode 100644
index 00000000000..964afa0aeb3
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/es.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+es:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/fi.yml b/modules/gitlab_integration/config/locales/crowdin/fi.yml
new file mode 100644
index 00000000000..c6c1df440e7
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/fi.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+fi:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/fil.yml b/modules/gitlab_integration/config/locales/crowdin/fil.yml
new file mode 100644
index 00000000000..b2a456b5c21
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/fil.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+fil:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/fr.yml b/modules/gitlab_integration/config/locales/crowdin/fr.yml
new file mode 100644
index 00000000000..fef1f113818
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/fr.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+fr:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/hr.yml b/modules/gitlab_integration/config/locales/crowdin/hr.yml
new file mode 100644
index 00000000000..308f94c45cd
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/hr.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+hr:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/hu.yml b/modules/gitlab_integration/config/locales/crowdin/hu.yml
new file mode 100644
index 00000000000..a95e8057530
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/hu.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+hu:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/id.yml b/modules/gitlab_integration/config/locales/crowdin/id.yml
new file mode 100644
index 00000000000..bb4954d3c5e
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/id.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+id:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/it.yml b/modules/gitlab_integration/config/locales/crowdin/it.yml
new file mode 100644
index 00000000000..a10cdf8223a
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/it.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+it:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/ja.yml b/modules/gitlab_integration/config/locales/crowdin/ja.yml
new file mode 100644
index 00000000000..cd098bdacdc
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/ja.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+ja:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-ar.yml b/modules/gitlab_integration/config/locales/crowdin/js-ar.yml
new file mode 100644
index 00000000000..f575fa9efb7
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-ar.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+ar:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-bg.yml b/modules/gitlab_integration/config/locales/crowdin/js-bg.yml
new file mode 100644
index 00000000000..78c2bb6ec51
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-bg.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+bg:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-ca.yml b/modules/gitlab_integration/config/locales/crowdin/js-ca.yml
new file mode 100644
index 00000000000..723b26e95bc
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-ca.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+ca:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-cs.yml b/modules/gitlab_integration/config/locales/crowdin/js-cs.yml
new file mode 100644
index 00000000000..a8905380a2b
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-cs.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+cs:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-da.yml b/modules/gitlab_integration/config/locales/crowdin/js-da.yml
new file mode 100644
index 00000000000..c168aaeb6d5
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-da.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+da:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-de.yml b/modules/gitlab_integration/config/locales/crowdin/js-de.yml
new file mode 100644
index 00000000000..066a3896891
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-de.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+de:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-el.yml b/modules/gitlab_integration/config/locales/crowdin/js-el.yml
new file mode 100644
index 00000000000..6ae410420ed
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-el.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+el:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-es.yml b/modules/gitlab_integration/config/locales/crowdin/js-es.yml
new file mode 100644
index 00000000000..4955957a802
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-es.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+es:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-fi.yml b/modules/gitlab_integration/config/locales/crowdin/js-fi.yml
new file mode 100644
index 00000000000..00706809048
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-fi.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+fi:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-fil.yml b/modules/gitlab_integration/config/locales/crowdin/js-fil.yml
new file mode 100644
index 00000000000..5df29891722
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-fil.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+fil:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-fr.yml b/modules/gitlab_integration/config/locales/crowdin/js-fr.yml
new file mode 100644
index 00000000000..a4cc350aacd
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-fr.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+fr:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-hr.yml b/modules/gitlab_integration/config/locales/crowdin/js-hr.yml
new file mode 100644
index 00000000000..cb34ab81c26
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-hr.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+hr:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-hu.yml b/modules/gitlab_integration/config/locales/crowdin/js-hu.yml
new file mode 100644
index 00000000000..b584ba1d94d
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-hu.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+hu:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-id.yml b/modules/gitlab_integration/config/locales/crowdin/js-id.yml
new file mode 100644
index 00000000000..922c5bf1d2d
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-id.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+id:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-it.yml b/modules/gitlab_integration/config/locales/crowdin/js-it.yml
new file mode 100644
index 00000000000..f1c7409c29b
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-it.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+it:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-ja.yml b/modules/gitlab_integration/config/locales/crowdin/js-ja.yml
new file mode 100644
index 00000000000..40a8e5fb36c
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-ja.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+ja:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-ko.yml b/modules/gitlab_integration/config/locales/crowdin/js-ko.yml
new file mode 100644
index 00000000000..3f58d75b880
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-ko.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+ko:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-lt.yml b/modules/gitlab_integration/config/locales/crowdin/js-lt.yml
new file mode 100644
index 00000000000..b612d1be67d
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-lt.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+lt:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-nl.yml b/modules/gitlab_integration/config/locales/crowdin/js-nl.yml
new file mode 100644
index 00000000000..b0c8d39b54b
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-nl.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+nl:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-no.yml b/modules/gitlab_integration/config/locales/crowdin/js-no.yml
new file mode 100644
index 00000000000..d8983e51a0c
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-no.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+"no":
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-pl.yml b/modules/gitlab_integration/config/locales/crowdin/js-pl.yml
new file mode 100644
index 00000000000..35e9c52f07b
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-pl.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+pl:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-pt.yml b/modules/gitlab_integration/config/locales/crowdin/js-pt.yml
new file mode 100644
index 00000000000..b265a3a11bc
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-pt.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+pt:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-ro.yml b/modules/gitlab_integration/config/locales/crowdin/js-ro.yml
new file mode 100644
index 00000000000..fc8bbb0003e
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-ro.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+ro:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-ru.yml b/modules/gitlab_integration/config/locales/crowdin/js-ru.yml
new file mode 100644
index 00000000000..e1877b52534
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-ru.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+ru:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: GitLab
+ tab_header_issue:
+ title: Обсуждения
+ tab_header_mr:
+ title: Запросы на слияние
+ create_mr:
+ label: Создать запрос на слияние
+ description: Создать запрос на слияние
+ copy_menu:
+ label: Git-подсказки
+ description: Скопипастить Git-подсказки
+ git_actions:
+ branch_name: Имя ветки
+ commit_message: Описание коммита
+ cmd: Создать ветку с пустым коммитом
+ title: Git-подсказки
+ copy_success: ✅ Скопировано
+ copy_error: ❌ Не получилось скопировать
+ tab_issue:
+ empty: Нет связанных обсуждений. Привязать обсуждение можно путём вставки кода OP#%{wp_id} (или PP#%{wp_id} для приватных ссылок) в заголовке/описании при создании/редактировании обсуждения.
+ tab_mrs:
+ empty: Нет связанных запросов на слияние. Привязать запрос на слияние можно путём вставки кода OP#%{wp_id} (или PP#%{wp_id} для приватных ссылок) в заголовке/описании при создании/редактировании запроса на слияние.
+ gitlab_pipelines: Сборочные линии (pipelines)
+ updated_on: Обновлено
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-sk.yml b/modules/gitlab_integration/config/locales/crowdin/js-sk.yml
new file mode 100644
index 00000000000..2899069e371
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-sk.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+sk:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-sl.yml b/modules/gitlab_integration/config/locales/crowdin/js-sl.yml
new file mode 100644
index 00000000000..3cbbfd9a641
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-sl.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+sl:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-sv.yml b/modules/gitlab_integration/config/locales/crowdin/js-sv.yml
new file mode 100644
index 00000000000..48f132e8991
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-sv.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+sv:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-tr.yml b/modules/gitlab_integration/config/locales/crowdin/js-tr.yml
new file mode 100644
index 00000000000..c5e59b0d466
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-tr.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+tr:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-uk.yml b/modules/gitlab_integration/config/locales/crowdin/js-uk.yml
new file mode 100644
index 00000000000..b3088532bdd
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-uk.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+uk:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-vi.yml b/modules/gitlab_integration/config/locales/crowdin/js-vi.yml
new file mode 100644
index 00000000000..e1dffccfdeb
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-vi.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+vi:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-zh-CN.yml b/modules/gitlab_integration/config/locales/crowdin/js-zh-CN.yml
new file mode 100644
index 00000000000..59d1d96f023
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-zh-CN.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+zh-CN:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/js-zh-TW.yml b/modules/gitlab_integration/config/locales/crowdin/js-zh-TW.yml
new file mode 100644
index 00000000000..2b5dddb91aa
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/js-zh-TW.yml
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+zh-TW:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/config/locales/crowdin/ko.yml b/modules/gitlab_integration/config/locales/crowdin/ko.yml
new file mode 100644
index 00000000000..cff63d5f4b2
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/ko.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+ko:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/lt.yml b/modules/gitlab_integration/config/locales/crowdin/lt.yml
new file mode 100644
index 00000000000..1fe1bc3535b
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/lt.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+lt:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/nl.yml b/modules/gitlab_integration/config/locales/crowdin/nl.yml
new file mode 100644
index 00000000000..2af08592ddc
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/nl.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+nl:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/no.yml b/modules/gitlab_integration/config/locales/crowdin/no.yml
new file mode 100644
index 00000000000..37d905e9540
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/no.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+"no":
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/pl.yml b/modules/gitlab_integration/config/locales/crowdin/pl.yml
new file mode 100644
index 00000000000..1be5da1f116
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/pl.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+pl:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/pt.yml b/modules/gitlab_integration/config/locales/crowdin/pt.yml
new file mode 100644
index 00000000000..473327d9256
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/pt.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+pt:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/ro.yml b/modules/gitlab_integration/config/locales/crowdin/ro.yml
new file mode 100644
index 00000000000..2032891af2d
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/ro.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+ro:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/ru.yml b/modules/gitlab_integration/config/locales/crowdin/ru.yml
new file mode 100644
index 00000000000..829c50e3fcb
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/ru.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+ru:
+ project_module_gitlab: GitLab
+ permission_show_gitlab_content: Показывать GitLab-контент
+ gitlab_integration:
+ merge_request_opened_comment: >
+ **MR Открыт:** Запрос на слияние %{mr_number} [%{mr_title}](%{mr_url}) в [%{repository}](%{repository_url})
+ был открыт [%{gitlab_user}](%{gitlab_user_url}).
+ merge_request_closed_comment: >
+ **MR Закрыт:** Запрос на слияние %{mr_number} [%{mr_title}](%{mr_url}) в [%{repository}](%{repository_url})
+ был закрыт by [%{gitlab_user}](%{gitlab_user_url}).
+ merge_request_merged_comment: >
+ **MR Смержен:** Запрос на слияние %{mr_number} [%{mr_title}](%{mr_url}) в [%{repository}](%{repository_url})
+ был смержен [%{gitlab_user}](%{gitlab_user_url}).
+ merge_request_reopened_comment: >
+ **MR Переоткрыт:** Запрос на слияние %{mr_number} [%{mr_title}](%{mr_url}) в [%{repository}](%{repository_url})
+ был переоткрыт [%{gitlab_user}](%{gitlab_user_url}).
+ note_commit_referenced_comment: >
+ **Упомянут в коммите:** [%{gitlab_user}](%{gitlab_user_url}) отметил эту задачу в
+ a коммите [%{commit_id}](%{commit_url}) в [%{repository}](%{repository_url}):
+
+ %{commit_note}
+ note_mr_referenced_comment: >
+ **Упомянут в MR:** [%{gitlab_user}](%{gitlab_user_url}) отметил эту задачу в
+ запросе на слияние %{mr_number} [%{mr_title}](%{mr_url}) в [%{repository}](%{repository_url}):
+
+ %{mr_note}
+ note_mr_commented_comment: >
+ **Комментарий в MR:** [%{gitlab_user}](%{gitlab_user_url}) комментировал эту задачу в
+ запросе на слияние %{mr_number} [%{mr_title}](%{mr_url}) в [%{repository}](%{repository_url}):
+
+ %{mr_note}
+ note_issue_referenced_comment: >
+ **Упомянут в обсуждении:** [%{gitlab_user}](%{gitlab_user_url}) отметил эту задачу в
+ Обсуждение %{issue_number} [%{issue_title}](%{issue_url}) в [%{repository}](%{repository_url}):
+
+ %{issue_note}
+ note_issue_commented_comment: >
+ **Комментарий в обсуждении:** [%{gitlab_user}](%{gitlab_user_url}) комментировал эту задачу в
+ обсуждении %{issue_number} [%{issue_title}](%{issue_url}) в [%{repository}](%{repository_url}):
+
+ %{issue_note}
+ note_snippet_referenced_comment: >
+ **Упомянут в Snippet:** [%{gitlab_user}](%{gitlab_user_url}) отметил эту задачу в
+ Snippet %{snippet_number} [%{snippet_title}](%{snippet_url}) в [%{repository}](%{repository_url}):
+
+ %{snippet_note}
+ issue_opened_referenced_comment: >
+ **Обсуждение открыто:** Обсуждение %{issue_number} [%{issue_title}](%{issue_url}) в [%{repository}](%{repository_url})
+ был открыт [%{gitlab_user}](%{gitlab_user_url}).
+ issue_closed_referenced_comment: >
+ **Обсуждение закрыто:** Обсуждение %{issue_number} [%{issue_title}](%{issue_url}) в [%{repository}](%{repository_url})
+ был закрыт [%{gitlab_user}](%{gitlab_user_url}).
+ issue_reopened_referenced_comment: >
+ **Обсуждение переоткрыто:** Обсуждение %{issue_number} [%{issue_title}](%{issue_url}) в [%{repository}](%{repository_url})
+ было переоткрыто [%{gitlab_user}](%{gitlab_user_url}).
+ push_single_commit_comment: >
+ **Коммит:** [%{gitlab_user}](%{gitlab_user_url}) закоммитил [%{commit_number}](%{commit_url})
+ в [%{repository}](%{repository_url}) %{commit_timestamp}:
+
+ %{commit_note}
+ push_multiple_commits_comment: >
+ **Коммит в MR:** [%{gitlab_user}](%{gitlab_user_url}) закоммитил несколько коммитов [%{commit_number}](%{commit_url})
+ в [%{repository}](%{repository_url}) %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/sk.yml b/modules/gitlab_integration/config/locales/crowdin/sk.yml
new file mode 100644
index 00000000000..424d97842e6
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/sk.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+sk:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/sl.yml b/modules/gitlab_integration/config/locales/crowdin/sl.yml
new file mode 100644
index 00000000000..e25178e640a
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/sl.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+sl:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/sv.yml b/modules/gitlab_integration/config/locales/crowdin/sv.yml
new file mode 100644
index 00000000000..34fed669dcd
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/sv.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+sv:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/tr.yml b/modules/gitlab_integration/config/locales/crowdin/tr.yml
new file mode 100644
index 00000000000..0c8fd994f74
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/tr.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+tr:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/uk.yml b/modules/gitlab_integration/config/locales/crowdin/uk.yml
new file mode 100644
index 00000000000..039c8ca03e4
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/uk.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+uk:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/vi.yml b/modules/gitlab_integration/config/locales/crowdin/vi.yml
new file mode 100644
index 00000000000..0f293629c13
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/vi.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+vi:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{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
new file mode 100644
index 00000000000..57a96873f18
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/zh-CN.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+zh-CN:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/crowdin/zh-TW.yml b/modules/gitlab_integration/config/locales/crowdin/zh-TW.yml
new file mode 100644
index 00000000000..2361760b3f2
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/crowdin/zh-TW.yml
@@ -0,0 +1,93 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+zh-TW:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/de.yml b/modules/gitlab_integration/config/locales/de.yml
new file mode 100644
index 00000000000..af758b73f71
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/de.yml
@@ -0,0 +1,95 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+
+de:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/en.yml b/modules/gitlab_integration/config/locales/en.yml
new file mode 100644
index 00000000000..76dbbd1af51
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/en.yml
@@ -0,0 +1,95 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+
+en:
+ project_module_gitlab: "Gitlab"
+ permission_show_gitlab_content: "Show Gitlab content"
+
+ 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}).
+ 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: >
+ **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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}
+ 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}).
+ 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}).
+ 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}).
+ 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: >
+ **Pushed in MR:** [%{gitlab_user}](%{gitlab_user_url}) pushed multiple commits [%{commit_number}](%{commit_url})
+ to [%{repository}](%{repository_url}) at %{commit_timestamp}:
+
+ %{commit_note}
diff --git a/modules/gitlab_integration/config/locales/js-en.yml b/modules/gitlab_integration/config/locales/js-en.yml
new file mode 100644
index 00000000000..fac3b06a28f
--- /dev/null
+++ b/modules/gitlab_integration/config/locales/js-en.yml
@@ -0,0 +1,57 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+
+en:
+ js:
+ gitlab_integration:
+ work_packages:
+ tab_name: "GitLab"
+ tab_header_issue:
+ title: "Issues"
+ tab_header_mr:
+ title: "Merge requests"
+ create_mr:
+ label: Create MR
+ description: Create a Merge Request
+ copy_menu:
+ label: Git snippets
+ description: Copy git snippets to clipboard
+ 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!
+ 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.
+ 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
diff --git a/modules/gitlab_integration/db/migrate/20211015110000_gitlab_integration_models.rb b/modules/gitlab_integration/db/migrate/20211015110000_gitlab_integration_models.rb
new file mode 100644
index 00000000000..587a72e946d
--- /dev/null
+++ b/modules/gitlab_integration/db/migrate/20211015110000_gitlab_integration_models.rb
@@ -0,0 +1,88 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+class GitlabIntegrationModels < ActiveRecord::Migration[6.1]
+ # rubocop:disable Metrics/AbcSize
+ def change
+ create_table :gitlab_merge_requests do |t|
+ t.references :gitlab_user
+ t.references :merged_by
+
+ t.bigint :gitlab_id, unique: true
+ t.integer :number, null: false
+ t.string :gitlab_html_url, null: false, unique: true
+ t.string :state, null: false
+ t.string :repository, null: false
+ t.datetime :gitlab_updated_at
+ t.string :title
+ t.text :body
+ t.boolean :draft
+ t.boolean :merged
+ t.datetime :merged_at
+ t.json :labels # [{name, color}]
+ t.timestamps
+ end
+
+ create_join_table :gitlab_merge_requests, :work_packages do |t|
+ t.index :gitlab_merge_request_id, name: 'gitlab_mr_wp_mr_id'
+ t.index %i[gitlab_merge_request_id work_package_id],
+ unique: true,
+ name: "unique_index_gl_mrs_wps_on_gl_mr_id_and_wp_id"
+ end
+
+
+ create_table :gitlab_users do |t|
+ t.bigint :gitlab_id, null: false, unique: true
+ t.string :gitlab_name, null: false
+ t.string :gitlab_username, null: false
+ t.string :gitlab_email, null: false
+ t.string :gitlab_avatar_url, null: false
+
+ t.timestamps
+ end
+
+
+ create_table :gitlab_pipelines do |t|
+ t.references :gitlab_merge_request, null: false
+
+ t.bigint :gitlab_id, null: false, unique: true
+ t.string :gitlab_html_url, null: false
+ t.bigint :project_id, null: false
+ t.string :gitlab_user_avatar_url, null: false
+ t.string :status, null: false
+ t.string :name, null: false
+ t.string :details_url
+ t.json :ci_details
+ t.datetime :started_at
+ t.datetime :completed_at
+
+ t.timestamps
+ end
+ end
+ # rubocop:enable Metrics/AbcSize
+end
diff --git a/modules/gitlab_integration/db/migrate/20211015110001_add_username_commit_to_pipelines.rb b/modules/gitlab_integration/db/migrate/20211015110001_add_username_commit_to_pipelines.rb
new file mode 100644
index 00000000000..2b621fa742d
--- /dev/null
+++ b/modules/gitlab_integration/db/migrate/20211015110001_add_username_commit_to_pipelines.rb
@@ -0,0 +1,36 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+
+class AddUsernameCommitToPipelines < ActiveRecord::Migration[7.0]
+ def change
+ add_column :gitlab_pipelines, :username, :text
+
+ add_column :gitlab_pipelines, :commit_id, :text
+ end
+end
diff --git a/modules/gitlab_integration/db/migrate/20211015110002_add_gitlab_issues.rb b/modules/gitlab_integration/db/migrate/20211015110002_add_gitlab_issues.rb
new file mode 100644
index 00000000000..2e046b29d5c
--- /dev/null
+++ b/modules/gitlab_integration/db/migrate/20211015110002_add_gitlab_issues.rb
@@ -0,0 +1,56 @@
+#-- copyright
+# OpenProject is an open source project management software.
+# Copyright (C) 2023 Ben Tey
+#
+# 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
+# Copyright (C) 2012-2021 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
+# 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 docs/COPYRIGHT.rdoc for more details.
+#++
+class AddGitlabIssues < ActiveRecord::Migration[7.0]
+ # rubocop:disable Metrics/AbcSize
+ def change
+ create_table :gitlab_issues do |t|
+ t.references :gitlab_user
+
+ t.bigint :gitlab_id, unique: true
+ t.integer :number, null: false
+ t.string :gitlab_html_url, null: false, unique: true
+ t.string :state, null: false
+ t.string :repository, null: false
+ t.datetime :gitlab_updated_at
+ t.string :title
+ t.text :body
+ t.json :labels # [{name, color}]
+ t.timestamps
+ end
+
+ create_join_table :gitlab_issues, :work_packages do |t|
+ t.index :gitlab_issue_id, name: 'gitlab_issues_wp_issue_id'
+ t.index %i[gitlab_issue_id work_package_id],
+ unique: true,
+ name: "unique_index_gl_issues_wps_on_gl_issue_id_and_wp_id"
+ end
+
+ end
+ # rubocop:enable Metrics/AbcSize
+end
diff --git a/modules/gitlab_integration/doc/op-commented-in-issue.png b/modules/gitlab_integration/doc/op-commented-in-issue.png
new file mode 100644
index 00000000000..f3d0c13d15e
Binary files /dev/null and b/modules/gitlab_integration/doc/op-commented-in-issue.png differ
diff --git a/modules/gitlab_integration/doc/op-commented-in-mr.png b/modules/gitlab_integration/doc/op-commented-in-mr.png
new file mode 100644
index 00000000000..523918e91cf
Binary files /dev/null and b/modules/gitlab_integration/doc/op-commented-in-mr.png differ
diff --git a/modules/gitlab_integration/doc/op-issue-opened.png b/modules/gitlab_integration/doc/op-issue-opened.png
new file mode 100644
index 00000000000..7388422ced7
Binary files /dev/null and b/modules/gitlab_integration/doc/op-issue-opened.png differ
diff --git a/modules/gitlab_integration/doc/op-mr-merged-event-1.png b/modules/gitlab_integration/doc/op-mr-merged-event-1.png
new file mode 100644
index 00000000000..a4f82308f2f
Binary files /dev/null and b/modules/gitlab_integration/doc/op-mr-merged-event-1.png differ
diff --git a/modules/gitlab_integration/doc/op-mr-merged-event-2.png b/modules/gitlab_integration/doc/op-mr-merged-event-2.png
new file mode 100644
index 00000000000..3cd3c523c8d
Binary files /dev/null and b/modules/gitlab_integration/doc/op-mr-merged-event-2.png differ
diff --git a/modules/gitlab_integration/doc/op-mr-merged-event-3.png b/modules/gitlab_integration/doc/op-mr-merged-event-3.png
new file mode 100644
index 00000000000..f0b9c055aac
Binary files /dev/null and b/modules/gitlab_integration/doc/op-mr-merged-event-3.png differ
diff --git a/modules/gitlab_integration/doc/op-mr-merged-event-4.png b/modules/gitlab_integration/doc/op-mr-merged-event-4.png
new file mode 100644
index 00000000000..aa4ff622a61
Binary files /dev/null and b/modules/gitlab_integration/doc/op-mr-merged-event-4.png differ
diff --git a/modules/gitlab_integration/doc/op-mr-opened.png b/modules/gitlab_integration/doc/op-mr-opened.png
new file mode 100644
index 00000000000..50e0a57f2ad
Binary files /dev/null and b/modules/gitlab_integration/doc/op-mr-opened.png differ
diff --git a/modules/gitlab_integration/doc/op-pushed-in-mr.png b/modules/gitlab_integration/doc/op-pushed-in-mr.png
new file mode 100644
index 00000000000..2550e592afe
Binary files /dev/null and b/modules/gitlab_integration/doc/op-pushed-in-mr.png differ
diff --git a/modules/gitlab_integration/doc/op-referenced-in-commit.png b/modules/gitlab_integration/doc/op-referenced-in-commit.png
new file mode 100644
index 00000000000..f223df82eff
Binary files /dev/null and b/modules/gitlab_integration/doc/op-referenced-in-commit.png differ
diff --git a/modules/gitlab_integration/doc/op-referenced-in-issue.png b/modules/gitlab_integration/doc/op-referenced-in-issue.png
new file mode 100644
index 00000000000..0724dde7d34
Binary files /dev/null and b/modules/gitlab_integration/doc/op-referenced-in-issue.png differ
diff --git a/modules/gitlab_integration/frontend/module/git-actions-menu/git-actions-menu.component.ts b/modules/gitlab_integration/frontend/module/git-actions-menu/git-actions-menu.component.ts
new file mode 100644
index 00000000000..a4130a90878
--- /dev/null
+++ b/modules/gitlab_integration/frontend/module/git-actions-menu/git-actions-menu.component.ts
@@ -0,0 +1,106 @@
+//-- copyright
+// OpenProject is an open source project management software.
+// Copyright (C) 2023 Ben Tey
+//
+// 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
+// Copyright (C) 2012-2021 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
+// 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 docs/COPYRIGHT.rdoc for more details.
+//++
+
+import copy from 'copy-text-to-clipboard';
+import { Component, Inject, Input } from '@angular/core';
+import { GitActionsService } from '../git-actions/git-actions.service';
+import { ISnippet } from "core-app/features/plugins/linked/openproject-gitlab_integration/typings";
+import { WorkPackageResource } from "core-app/features/hal/resources/work-package-resource";
+import { OPContextMenuComponent } from "core-app/shared/components/op-context-menu/op-context-menu.component";
+import {
+ OpContextMenuLocalsMap,
+ OpContextMenuLocalsToken
+} from "core-app/shared/components/op-context-menu/op-context-menu.types";
+import { I18nService } from "core-app/core/i18n/i18n.service";
+
+
+@Component({
+ selector: 'op-git-actions-menu',
+ templateUrl: './git-actions-menu.template.html',
+ styleUrls: [
+ './styles/git-actions-menu.sass'
+ ]
+})
+export class GitActionsMenuComponent extends OPContextMenuComponent {
+ @Input() public workPackage:WorkPackageResource;
+
+ public text = {
+ title: this.I18n.t('js.gitlab_integration.tab_header_mr.git_actions.title'),
+ copyButtonHelpText: this.I18n.t('js.gitlab_integration.tab_header_mr.git_actions.copy_button_help'),
+ copyResult: {
+ success: this.I18n.t('js.gitlab_integration.tab_header_mr.git_actions.copy_success'),
+ error: this.I18n.t('js.gitlab_integration.tab_header_mr.git_actions.copy_error')
+ }
+ };
+
+ public lastCopyResult:string = this.text.copyResult.success;
+ public showCopyResult:boolean = false;
+ public copiedSnippetId:string = '';
+
+ public snippets:ISnippet[] = [
+ {
+ id: 'branch',
+ name: this.I18n.t('js.gitlab_integration.tab_header_mr.git_actions.branch_name'),
+ textToCopy: () => this.gitActions.branchName(this.workPackage)
+ },
+ {
+ id: 'message',
+ name: this.I18n.t('js.gitlab_integration.tab_header_mr.git_actions.commit_message'),
+ textToCopy: () => this.gitActions.commitMessage(this.workPackage)
+ },
+ {
+ id: 'command',
+ name: this.I18n.t('js.gitlab_integration.tab_header_mr.git_actions.cmd'),
+ textToCopy: () => this.gitActions.gitCommand(this.workPackage)
+ },
+ ];
+
+ constructor(@Inject(OpContextMenuLocalsToken)
+ public locals:OpContextMenuLocalsMap,
+ readonly I18n:I18nService,
+ readonly gitActions:GitActionsService) {
+ super(locals);
+ this.workPackage = this.locals.workPackage;
+ }
+
+ public onCopyButtonClick(snippet:ISnippet):void {
+ const success = copy(snippet.textToCopy());
+
+ if (success) {
+ this.lastCopyResult = this.text.copyResult.success;
+ } else {
+ this.lastCopyResult = this.text.copyResult.error;
+ }
+ this.copiedSnippetId = snippet.id;
+ this.showCopyResult = true;
+ window.setTimeout(() => {
+ this.showCopyResult = false;
+ }, 2000);
+ }
+}
diff --git a/modules/gitlab_integration/frontend/module/git-actions-menu/git-actions-menu.directive.ts b/modules/gitlab_integration/frontend/module/git-actions-menu/git-actions-menu.directive.ts
new file mode 100644
index 00000000000..d20b2fc1861
--- /dev/null
+++ b/modules/gitlab_integration/frontend/module/git-actions-menu/git-actions-menu.directive.ts
@@ -0,0 +1,61 @@
+//-- copyright
+// OpenProject is an open source project management software.
+// Copyright (C) 2023 Ben Tey
+//
+// 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
+// Copyright (C) 2012-2021 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
+// 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 docs/COPYRIGHT.rdoc for more details.
+//++
+
+import { OpContextMenuItem } from 'core-app/shared/components/op-context-menu/op-context-menu.types';
+import { OPContextMenuService } from 'core-app/shared/components/op-context-menu/op-context-menu.service';
+import { Directive, ElementRef, Input } from '@angular/core';
+import { OpContextMenuTrigger } from 'core-app/shared/components/op-context-menu/handlers/op-context-menu-trigger.directive';
+import { WorkPackageResource } from "core-app/features/hal/resources/work-package-resource";
+import { GitActionsMenuComponent } from './git-actions-menu.component';
+
+
+@Directive({
+ selector: '[gitActionsCopyDropdown]'
+})
+export class GitActionsMenuDirective extends OpContextMenuTrigger {
+ @Input('gitActionsCopyDropdown-workPackage') public workPackage:WorkPackageResource;
+
+ constructor(readonly elementRef:ElementRef,
+ readonly opContextMenu:OPContextMenuService) {
+ super(elementRef, opContextMenu);
+ }
+
+ protected open(evt:JQuery.TriggeredEvent) {
+ this.opContextMenu.show(this, evt, GitActionsMenuComponent);
+ }
+
+ public get locals():{ showAnchorRight?:boolean, contextMenuId?:string, items:OpContextMenuItem[], workPackage:WorkPackageResource } {
+ return {
+ workPackage: this.workPackage,
+ contextMenuId: 'gitlab-integration-git-actions-menu',
+ items: []
+ };
+ }
+}
+
diff --git a/modules/gitlab_integration/frontend/module/git-actions-menu/git-actions-menu.template.html b/modules/gitlab_integration/frontend/module/git-actions-menu/git-actions-menu.template.html
new file mode 100644
index 00000000000..0c242188553
--- /dev/null
+++ b/modules/gitlab_integration/frontend/module/git-actions-menu/git-actions-menu.template.html
@@ -0,0 +1,22 @@
+
+
+
diff --git a/modules/gitlab_integration/frontend/module/git-actions-menu/styles/git-actions-menu.sass b/modules/gitlab_integration/frontend/module/git-actions-menu/styles/git-actions-menu.sass
new file mode 100644
index 00000000000..b502c7bcd3a
--- /dev/null
+++ b/modules/gitlab_integration/frontend/module/git-actions-menu/styles/git-actions-menu.sass
@@ -0,0 +1,90 @@
+//-- copyright
+// OpenProject is an open source project management software.
+// Copyright (C) 2023 Ben Tey
+//
+// 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
+// Copyright (C) 2012-2021 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
+// 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 docs/COPYRIGHT.rdoc for more details.
+//++
+.git-actions-menu
+ background-color: var(--body-background)
+ border: var(--content-default-border-width) solid var(--content-default-border-color)
+ padding: 1rem 1rem 2rem 1rem
+ min-width: 25rem
+ box-shadow: .1em .1em .4em rgba(0,0,0,0.1)
+
+ .copy-wrapper
+ width: 100%
+ position: relative
+ margin-bottom: 1rem
+
+ .copy-content
+ width: calc(100% - 3em)
+ // the min-height should be the size of the copy-icon, which is the sum of:
+ // 2 * button padding (0.65em)
+ // font-size of the icon (0.9em)
+ // 1px where I don't know where it comes from
+ min-height: calc(2 * 0.65em + 0.9em + 1px)
+ border-radius: 2px 0 0 2px
+ padding: 0.65em
+ color: var(--gray-dark)
+ white-space: pre
+ resize: none
+ font-size: 0.9rem
+ display: inline-block
+
+ .copy-button
+ margin: 0
+ border: 1px solid #ccc
+ border-radius: 0 2px 2px 0
+ vertical-align: top
+ left: -1px
+ position: relative
+ font-size: 0.9rem
+
+ &:hover
+ border-color: #999
+
+ .copy-result-message
+ background-color: var(--main-menu-bg-color)
+ display: inline-block
+ padding: 0.5em
+ border-radius: 5px
+ color: var(--main-menu-font-color)
+ position: absolute
+ right: 0
+ top: calc(2 * 0.65em + 0.9em + 1px + 9px)
+ box-shadow: 1px 1px 4px var(--gray-dark)
+ z-index: 1
+
+ &:before
+ content: ""
+ border-bottom: 0.6em solid var(--main-menu-bg-color)
+ height: 0
+ width: 0
+ position: absolute
+ top: -9px
+ right: 10px
+ border-left: 0.3em solid transparent
+ border-right: 0.3em solid transparent
+
diff --git a/modules/gitlab_integration/frontend/module/git-actions/git-actions.service.ts b/modules/gitlab_integration/frontend/module/git-actions/git-actions.service.ts
new file mode 100644
index 00000000000..27688d8f8fb
--- /dev/null
+++ b/modules/gitlab_integration/frontend/module/git-actions/git-actions.service.ts
@@ -0,0 +1,89 @@
+//-- copyright
+// OpenProject is an open source project management software.
+// Copyright (C) 2023 Ben Tey
+//
+// 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
+// Copyright (C) 2012-2021 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
+// 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 docs/COPYRIGHT.rdoc for more details.
+//++
+
+import { Injectable } from '@angular/core';
+import { WorkPackageResource } from "core-app/features/hal/resources/work-package-resource";
+
+// probably not providable in root when we want to cache the formatter and set custom templates
+@Injectable({
+ providedIn: 'root',
+})
+export class GitActionsService {
+ private sanitizeBranchString(str:string):string {
+ // See https://stackoverflow.com/a/3651867 for how these rules came in.
+ // This sanitization tries to be harsher than those rules
+ return str
+ .replace(/&/g, 'and ') // & becomes and
+ .replace(/ +/g, '-') // Spaces become dashes
+ .replace(/[\000-\039]/g, '') // ASCII control characters are out
+ .replace(/\177/g, '') // DEL is out
+ .replace(/[#\\\/\?\*\~\^\:\{\}@\.\[\]'"]/g, '') // Some other characters with special rules are out
+ .replace(/^[-]+/g, '') // Dashes at the start are removed
+ .replace(/[-]+$/g, '') // Dashes at the end are removed
+ .replace(/-+/g, '-') // Multiple dashes in a row are deduped
+ .trim();
+ }
+
+ private formattingInput(workPackage: WorkPackageResource) {
+ const type = workPackage.type.name || '';
+ const id = workPackage.id || '';
+ const title = workPackage.subject;
+ const url = window.location.origin + workPackage.pathHelper.workPackagePath(id);
+ const description = '';
+
+ return({
+ id, type, title, url, description
+ });
+ }
+
+ private sanitizeShellInput(str:string):string {
+ return `${str.replace(/'/g, '\\\'')}`;
+ }
+
+ public branchName(workPackage:WorkPackageResource):string {
+ const { type, id, title } = this.formattingInput(workPackage);
+ return `${this.sanitizeBranchString(type)}/${id}-${this.sanitizeBranchString(title)}`.toLocaleLowerCase();
+ }
+
+ public commitMessage(workPackage:WorkPackageResource):string {
+ const { title, id, description, url } = this.formattingInput(workPackage);
+ return `OP#${id} ${title}
+
+${description}
+
+${url}
+`.replace(/\n\n+/g, '\n\n');
+ }
+
+ public gitCommand(workPackage:WorkPackageResource):string {
+ const branch = this.branchName(workPackage);
+ const commit = this.commitMessage(workPackage);
+ return `git checkout -b '${this.sanitizeShellInput(branch)}' && git commit --allow-empty -m '${this.sanitizeShellInput(commit)}'`;
+ }
+}
diff --git a/modules/gitlab_integration/frontend/module/gitlab-tab/gitlab-tab.component.sass b/modules/gitlab_integration/frontend/module/gitlab-tab/gitlab-tab.component.sass
new file mode 100644
index 00000000000..06056041ad2
--- /dev/null
+++ b/modules/gitlab_integration/frontend/module/gitlab-tab/gitlab-tab.component.sass
@@ -0,0 +1,36 @@
+//-- copyright
+// OpenProject is an open source project management software.
+// Copyright (C) 2023 Ben Tey
+//
+// 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
+// Copyright (C) 2012-2021 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
+// 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 docs/COPYRIGHT.rdoc for more details.
+//++
+
+@import "helpers"
+
+:host,
+.gitlab-header
+ position: sticky
+ top: 0
+ z-index: 850 // Ensure the header is above other content
diff --git a/modules/gitlab_integration/frontend/module/gitlab-tab/gitlab-tab.component.ts b/modules/gitlab_integration/frontend/module/gitlab-tab/gitlab-tab.component.ts
new file mode 100644
index 00000000000..c7f28a1a253
--- /dev/null
+++ b/modules/gitlab_integration/frontend/module/gitlab-tab/gitlab-tab.component.ts
@@ -0,0 +1,49 @@
+//-- copyright
+// OpenProject is an open source project management software.
+// Copyright (C) 2023 Ben Tey
+//
+// 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
+// Copyright (C) 2012-2021 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
+// 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 docs/COPYRIGHT.rdoc for more details.
+//++
+
+import { Component, Input } from '@angular/core';
+import { WorkPackageResource } from "core-app/features/hal/resources/work-package-resource";
+import { TabComponent } from "core-app/features/work-packages/components/wp-tabs/components/wp-tab-wrapper/tab";
+import { I18nService } from "core-app/core/i18n/i18n.service";
+import { PathHelperService } from "core-app/core/path-helper/path-helper.service";
+
+@Component({
+ selector: 'gitlab-tab',
+ templateUrl: './gitlab-tab.template.html',
+ styleUrls: [
+ './gitlab-tab.component.sass',
+ ]
+})
+export class GitlabTabComponent implements TabComponent {
+ @Input() public workPackage:WorkPackageResource;
+
+ constructor(readonly PathHelper:PathHelperService,
+ readonly I18n:I18nService) {
+ }
+}
diff --git a/modules/gitlab_integration/frontend/module/gitlab-tab/gitlab-tab.template.html b/modules/gitlab_integration/frontend/module/gitlab-tab/gitlab-tab.template.html
new file mode 100644
index 00000000000..a7c04a6dfc1
--- /dev/null
+++ b/modules/gitlab_integration/frontend/module/gitlab-tab/gitlab-tab.template.html
@@ -0,0 +1,136 @@
+