diff --git a/Dockerfile b/Dockerfile
index f8a98bdf0e..c220b40799 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,36 +1,56 @@
FROM ruby:2.6-stretch
+MAINTAINER operations@openproject.com
-ENV NODE_VERSION="10.15.0"
-ENV BUNDLER_VERSION="2.0.1"
+ENV NODE_VERSION "10.15.0"
+ENV BUNDLER_VERSION "2.0.1"
ENV APP_USER app
-ENV APP_PATH /usr/src/app
-ENV APP_DATA /var/db/openproject
-ENV ATTACHMENTS_STORAGE_PATH /var/db/openproject/files
+ENV APP_PATH /app
+ENV APP_DATA_PATH /var/openproject/assets
+ENV APP_DATA_PATH_LEGACY /var/db/openproject
+ENV PGDATA /var/openproject/pgdata
+ENV PGDATA_LEGACY /var/lib/postgresql/9.6/main
+
+ENV DATABASE_URL postgres://openproject:openproject@127.0.0.1/openproject
+ENV RAILS_ENV production
+ENV HEROKU true
+ENV RAILS_CACHE_STORE memcache
+ENV OPENPROJECT_INSTALLATION__TYPE docker
+ENV NEW_RELIC_AGENT_ENABLED false
+ENV ATTACHMENTS_STORAGE_PATH $APP_DATA_PATH/files
# Set a default key base, ensure to provide a secure value in production environments!
-ENV SECRET_KEY_BASE=OVERWRITE_ME
+ENV SECRET_KEY_BASE OVERWRITE_ME
# install node + npm
RUN curl https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz | tar xzf - -C /usr/local --strip-components=1
RUN apt-get update -qq && \
- DEBIAN_FRONTEND=noninteractive apt-get install -y \
- postgresql-client \
- mysql-client \
- sqlite \
- poppler-utils \
- unrtf \
- tesseract-ocr \
- catdoc && \
- apt-get clean && rm -rf /var/lib/apt/lists/*
+ DEBIAN_FRONTEND=noninteractive apt-get install -y \
+ postgresql-client \
+ poppler-utils \
+ unrtf \
+ tesseract-ocr \
+ catdoc \
+ memcached \
+ postfix \
+ postgresql \
+ apache2 \
+ supervisor && \
+ apt-get clean && rm -rf /var/lib/apt/lists/*
+
+# Set up pg defaults
+RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.6/main/pg_hba.conf
+RUN echo "listen_addresses='*'" >> /etc/postgresql/9.6/main/postgresql.conf
+RUN echo "data_directory='$PGDATA'" >> /etc/postgresql/9.6/main/postgresql.conf
+RUN rm -rf "$PGDATA_LEGACY" && rm -rf "$PGDATA" && mkdir -p "$PGDATA" && chown -R postgres:postgres "$PGDATA"
+RUN a2enmod proxy proxy_http && rm -f /etc/apache2/sites-enabled/000-default.conf
# using /home/app since npm cache and other stuff will be put there when running npm install
# we don't want to pollute any locally-mounted directory
RUN useradd -d /home/$APP_USER -m $APP_USER
-RUN mkdir -p $APP_PATH $APP_DATA
-RUN gem install bundler --version "${bundler_version}" --no-document
WORKDIR $APP_PATH
+RUN gem install bundler --version "${bundler_version}" --no-document
COPY Gemfile ./Gemfile
COPY Gemfile.* ./
@@ -38,34 +58,27 @@ COPY modules ./modules
# OpenProject::Version is required by module versions in gemspecs
RUN mkdir -p lib/open_project
COPY lib/open_project/version.rb ./lib/open_project/
-RUN bundle install --deployment --with="docker opf_plugins" --without="test development" --jobs=8 --retry=3
-
-# Then, npm install node modules
-COPY package.json /tmp/npm/package.json
-COPY frontend/*.json /tmp/npm/frontend/
-RUN cd /tmp/npm/frontend/ && RAILS_ENV=production npm install && mv /tmp/npm/frontend /usr/src/app/
+RUN bundle install --deployment --with="docker opf_plugins" --without="test development mysql2" --jobs=8 --retry=3
# Finally, copy over the whole thing
-COPY . /usr/src/app
-RUN cp docker/Procfile .
+COPY . $APP_PATH
+
RUN sed -i "s|Rails.groups(:opf_plugins)|Rails.groups(:opf_plugins, :docker)|" config/application.rb
# Ensure we can write in /tmp/op_uploaded_files (cf. #29112)
-RUN mkdir -p /tmp/op_uploaded_files/
-RUN chown -R $APP_USER:$APP_USER /tmp/op_uploaded_files/
-
-# Allow uploading avatars w/ postgres
-RUN chown -R $APP_USER:$APP_USER $APP_DATA
+RUN mkdir -p /tmp/op_uploaded_files/ && chown -R $APP_USER:$APP_USER /tmp/op_uploaded_files/
# Re-use packager database.yml
COPY packaging/conf/database.yml ./config/database.yml
# Run the npm postinstall manually after it was copied
-RUN DATABASE_URL=sqlite3:///tmp/db.sqlite3 RAILS_ENV=production bundle exec rake assets:precompile
+# Then, npm install node modules
+RUN bash docker/precompile-assets.sh
-# Include pandoc
-RUN DATABASE_URL=sqlite3:///tmp/db.sqlite3 RAILS_ENV=production bundle exec rails runner "puts ::OpenProject::TextFormatting::Formats::Markdown::PandocDownloader.check_or_download!"
+# ports
+EXPOSE 80 5432
-CMD ["./docker/web"]
+# volumes to export
+VOLUME ["$PGDATA", "$APP_DATA_PATH"]
ENTRYPOINT ["./docker/entrypoint.sh"]
-VOLUME ["$APP_DATA"]
+CMD ["./docker/supervisord"]
diff --git a/Dockerfile.public b/Dockerfile.public
deleted file mode 100644
index 3fd8f294ef..0000000000
--- a/Dockerfile.public
+++ /dev/null
@@ -1,39 +0,0 @@
-FROM openproject/community:8-base
-MAINTAINER operations@openproject.com
-
-ENV DATABASE_URL=postgres://openproject:openproject@127.0.0.1/openproject
-ENV RAILS_ENV=production
-ENV HEROKU=true
-ENV ATTACHMENTS_STORAGE_PATH=/var/db/openproject/files
-ENV RAILS_CACHE_STORE=memcache
-ENV SECRET_KEY_BASE=OVERWRITE_ME
-ENV OPENPROJECT_INSTALLATION__TYPE=docker
-
-USER root
-RUN apt-get update -qq && \
- DEBIAN_FRONTEND=noninteractive apt-get install -y \
- memcached \
- postfix \
- postgresql \
- apache2 \
- supervisor \
- pandoc && \
- apt-get clean && rm -rf /var/lib/apt/lists/*
-
-RUN a2enmod proxy proxy_http && rm -f /etc/apache2/sites-enabled/000-default.conf
-
-RUN echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/9.6/main/pg_hba.conf
-RUN echo "listen_addresses='*'" >> /etc/postgresql/9.6/main/postgresql.conf
-RUN rm -rf /var/lib/postgresql/9.6/main && mkdir -p /var/lib/postgresql/9.6/main && chown -R postgres:postgres /var/lib/postgresql/9.6
-RUN mkdir -p /var/db/openproject/{files,git,svn} && chown -R app:app /var/db/openproject
-
-COPY docker /usr/src/app/docker
-COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
-
-# ports
-EXPOSE 80 5432
-
-# volumes to export
-VOLUME ["/var/lib/postgresql/9.6/main", "/var/db/openproject"]
-
-ENTRYPOINT ["/usr/src/app/docker/entrypoint-all-in-one.sh"]
diff --git a/Gemfile b/Gemfile
index c2c0280edc..c6008a113e 100644
--- a/Gemfile
+++ b/Gemfile
@@ -172,7 +172,7 @@ gem 'sprockets', '~> 3.7.0'
# also, better than thin since we can control worker concurrency.
gem 'unicorn'
-gem 'nokogiri', '~> 1.10.0'
+gem 'nokogiri', '~> 1.10.3'
gem 'carrierwave', '~> 1.3.1'
gem 'fog-aws'
@@ -289,6 +289,9 @@ platforms :mri, :mingw, :x64_mingw do
group :postgres do
gem 'pg', '~> 1.1.0'
end
+
+ # Support application loading when no database exists yet.
+ gem 'activerecord-nulldb-adapter', '~> 0.3.9'
end
group :opf_plugins do
@@ -299,11 +302,8 @@ group :docker, optional: true do
gem 'passenger', '~> 6.0.1'
# Used to easily precompile assets
- gem 'health_check', require: !!ENV['HEROKU']
gem 'newrelic_rpm', require: !!ENV['HEROKU']
gem 'rails_12factor', require: !!ENV['HEROKU']
- # Require specific version of sqlite3 for rails
- gem 'sqlite3', '~> 1.3.6', require: false
end
# Load Gemfile.local, Gemfile.plugins, plugins', and custom Gemfiles
diff --git a/Gemfile.lock b/Gemfile.lock
index e69607e7f7..1655b36b67 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -101,75 +101,75 @@ GIT
PATH
remote: modules/auth_plugins
specs:
- openproject-auth_plugins (8.3.1)
+ openproject-auth_plugins (8.3.2)
omniauth (~> 1.0)
PATH
remote: modules/auth_saml
specs:
- openproject-auth_saml (8.3.1)
+ openproject-auth_saml (8.3.2)
omniauth-saml (~> 1.10.1)
PATH
remote: modules/avatars
specs:
- openproject-avatars (8.3.1)
+ openproject-avatars (8.3.2)
fastimage (~> 2.1.0)
gravatar_image_tag (~> 1.2.0)
PATH
remote: modules/backlogs
specs:
- openproject-backlogs (8.3.1)
+ openproject-backlogs (8.3.2)
acts_as_silent_list (~> 3.0.0)
- openproject-pdf_export (= 8.3.1)
+ openproject-pdf_export (= 8.3.2)
PATH
remote: modules/costs
specs:
- openproject-costs (8.3.1)
+ openproject-costs (8.3.2)
PATH
remote: modules/documents
specs:
- openproject-documents (8.3.1)
+ openproject-documents (8.3.2)
PATH
remote: modules/github_integration
specs:
- openproject-github_integration (8.3.1)
+ openproject-github_integration (8.3.2)
openproject-webhooks
PATH
remote: modules/global_roles
specs:
- openproject-global_roles (8.3.1)
+ openproject-global_roles (8.3.2)
PATH
remote: modules/grids
specs:
- grids (8.3.1)
+ grids (8.3.2)
PATH
remote: modules/ldap_groups
specs:
- openproject-ldap_groups (8.3.1)
+ openproject-ldap_groups (8.3.2)
PATH
remote: modules/meeting
specs:
- openproject-meeting (8.3.1)
+ openproject-meeting (8.3.2)
icalendar (~> 2.5.0)
PATH
remote: modules/my_project_page
specs:
- openproject-my_project_page (8.3.1)
+ openproject-my_project_page (8.3.2)
PATH
remote: modules/openid_connect
specs:
- openproject-openid_connect (8.3.1)
+ openproject-openid_connect (8.3.2)
lobby_boy (~> 0.1.3)
omniauth-openid_connect-providers (~> 0.1)
openproject-auth_plugins (~> 8.0)
@@ -177,28 +177,28 @@ PATH
PATH
remote: modules/pdf_export
specs:
- openproject-pdf_export (8.3.1)
+ openproject-pdf_export (8.3.2)
pdf-inspector (~> 1.3.0)
prawn (~> 2.2)
PATH
remote: modules/reporting_engine
specs:
- reporting_engine (8.3.1)
+ reporting_engine (8.3.2)
json
PATH
remote: modules/reporting
specs:
- openproject-reporting (8.3.1)
+ openproject-reporting (8.3.2)
jquery-tablesorter (~> 1.25.5)
- openproject-costs (= 8.3.1)
+ openproject-costs (= 8.3.2)
reporting_engine (>= 1.1.0)
PATH
remote: modules/two_factor_authentication
specs:
- openproject-two_factor_authentication (8.3.1)
+ openproject-two_factor_authentication (8.3.2)
aws-sdk-sns (~> 1.1.0)
messagebird-rest (~> 1.3.2)
rotp (~> 3.3)
@@ -206,12 +206,12 @@ PATH
PATH
remote: modules/webhooks
specs:
- openproject-webhooks (8.3.1)
+ openproject-webhooks (8.3.2)
PATH
remote: modules/xls_export
specs:
- openproject-xls_export (8.3.1)
+ openproject-xls_export (8.3.2)
spreadsheet (~> 0.8.9)
GEM
@@ -257,6 +257,8 @@ GEM
activemodel (= 5.2.2.1)
activesupport (= 5.2.2.1)
arel (>= 9.0)
+ activerecord-nulldb-adapter (0.3.9)
+ activerecord (>= 2.0.0)
activerecord-session_store (1.1.1)
actionpack (>= 4.0)
activerecord (>= 4.0)
@@ -478,8 +480,6 @@ GEM
hashdiff (0.3.8)
hashery (2.1.2)
hashie (3.6.0)
- health_check (3.0.0)
- railties (>= 5.0)
html-pipeline (2.8.3)
activesupport (>= 2)
nokogiri (>= 1.4)
@@ -491,7 +491,7 @@ GEM
concurrent-ruby (~> 1.0)
i18n-js (3.2.1)
i18n (>= 0.6.6)
- icalendar (2.5.2)
+ icalendar (2.5.3)
ice_cube (~> 0.16)
ice_cube (0.16.3)
ice_nine (0.11.2)
@@ -564,7 +564,7 @@ GEM
netrc (0.11.0)
newrelic_rpm (6.0.0.351)
nio4r (2.3.1)
- nokogiri (1.10.1)
+ nokogiri (1.10.3)
mini_portile2 (~> 2.4.0)
nokogumbo (2.0.1)
nokogiri (~> 1.8, >= 1.8.4)
@@ -758,7 +758,7 @@ GEM
iso8601
ruby-enum (0.7.2)
i18n
- ruby-ole (1.2.12.1)
+ ruby-ole (1.2.12.2)
ruby-prof (0.17.0)
ruby-progressbar (1.10.0)
ruby-rc4 (0.1.5)
@@ -817,7 +817,6 @@ GEM
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (>= 3.0.0)
- sqlite3 (1.3.13)
stackprof (0.2.12)
stringex (2.8.5)
svg-graph (2.1.3)
@@ -893,6 +892,7 @@ PLATFORMS
DEPENDENCIES
actionpack-xml_parser (~> 2.0.0)
activemodel-serializers-xml (~> 1.0.1)
+ activerecord-nulldb-adapter (~> 0.3.9)
activerecord-session_store (~> 1.1.0)
acts_as_list (~> 0.9.9)
acts_as_tree (~> 2.8.0)
@@ -934,7 +934,6 @@ DEPENDENCIES
gon (~> 6.2.1)
grape (~> 1.2.3)
grids!
- health_check
html-pipeline (~> 2.8.0)
htmldiff
i18n-js (~> 3.2.0)
@@ -949,7 +948,7 @@ DEPENDENCIES
mysql2 (~> 0.5.0)
net-ldap (~> 0.16.0)
newrelic_rpm
- nokogiri (~> 1.10.0)
+ nokogiri (~> 1.10.3)
oj (~> 3.7.0)
okcomputer (~> 1.17.3)
omniauth!
@@ -1029,7 +1028,6 @@ DEPENDENCIES
spring
spring-commands-rspec
sprockets (~> 3.7.0)
- sqlite3 (~> 1.3.6)
stackprof
stringex (~> 2.8.5)
svg-graph (~> 2.1.0)
diff --git a/app/controllers/concerns/omniauth_login.rb b/app/controllers/concerns/omniauth_login.rb
index 1686843f80..817e39613d 100644
--- a/app/controllers/concerns/omniauth_login.rb
+++ b/app/controllers/concerns/omniauth_login.rb
@@ -111,7 +111,7 @@ def show_error(error)
# in our database) will be created using this method.
def create_user_from_omniauth(user, auth_hash)
# Self-registration off
- return self_registration_disabled unless Setting.self_registration?
+ return self_registration_disabled unless Setting.self_registration? || user.invited?
fill_user_fields_from_omniauth user, auth_hash
diff --git a/app/models/journal/aggregated_journal.rb b/app/models/journal/aggregated_journal.rb
index 20b829c151..1f59a7f225 100644
--- a/app/models/journal/aggregated_journal.rb
+++ b/app/models/journal/aggregated_journal.rb
@@ -56,7 +56,7 @@ def with_notes_id(notes_id)
# Therefore we have to provide the notes_id to the aggregation on top of it being used
# in the where clause to pick the desired AggregatedJournal.
raw_journal = query_aggregated_journals(journal_id: notes_id)
- .where("#{table_name}.id = #{notes_id}")
+ .where("#{table_name}.id = ?", notes_id)
.first
raw_journal ? Journal::AggregatedJournal.new(raw_journal) : nil
diff --git a/config/initializers/05-null_db_fallback.rb b/config/initializers/05-null_db_fallback.rb
new file mode 100644
index 0000000000..db0119e05d
--- /dev/null
+++ b/config/initializers/05-null_db_fallback.rb
@@ -0,0 +1,36 @@
+#-- encoding: UTF-8
+
+#-- copyright
+# OpenProject is a project management system.
+# Copyright (C) 2012-2018 the OpenProject Foundation (OPF)
+#
+# 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-2017 Jean-Philippe Lang
+# Copyright (C) 2010-2013 the ChiliProject Team
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# See docs/COPYRIGHT.rdoc for more details.
+#++
+
+# Since Rails 5, rake commands like db:create load the whole application.
+# As initializers and other parts of the boot sequence rely on calls accessing
+# the DB, the null db gem is used to fake the existence of a database in cases where
+# the db has not been created yet.
+
+OpenProject::NullDbFallback.fallback
diff --git a/config/initializers/30-open_project_loading.rb b/config/initializers/30-open_project_loading.rb
new file mode 100644
index 0000000000..936c0a0835
--- /dev/null
+++ b/config/initializers/30-open_project_loading.rb
@@ -0,0 +1,31 @@
+#-- encoding: UTF-8
+
+#-- copyright
+# OpenProject is a project management system.
+# Copyright (C) 2012-2018 the OpenProject Foundation (OPF)
+#
+# 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-2017 Jean-Philippe Lang
+# Copyright (C) 2010-2013 the ChiliProject Team
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# See docs/COPYRIGHT.rdoc for more details.
+#++
+
+require 'open_project'
diff --git a/config/initializers/health_checks.rb b/config/initializers/health_checks.rb
index e9774bb9cc..8863977111 100644
--- a/config/initializers/health_checks.rb
+++ b/config/initializers/health_checks.rb
@@ -17,9 +17,6 @@ def check
end
end
-# Mount at /health_checks
-OkComputer.mount_at = 'health_checks'
-
# Register delayed_job backed up test
dj_max = OpenProject::Configuration.health_checks_jobs_queue_count_threshold
OkComputer::Registry.register "delayed_jobs_backed_up",
@@ -32,6 +29,24 @@ def check
# Make dj backed up optional due to bursts
OkComputer.make_optional %w(delayed_jobs_backed_up)
+# Register web worker check for web + database
+OkComputer::CheckCollection.new('web').tap do |collection|
+ collection.register :default, OkComputer::Registry.fetch('default')
+ collection.register :database, OkComputer::Registry.fetch('database')
+ OkComputer::Registry.default_collection.register 'web', collection
+end
+
+# Register full check for web + database + dj worker
+OkComputer::CheckCollection.new('full').tap do |collection|
+ collection.register :default, OkComputer::Registry.fetch('default')
+ collection.register :database, OkComputer::Registry.fetch('database')
+ collection.register :mail, OkComputer::ActionMailerCheck.new
+ collection.register :delayed_jobs_backed_up, OkComputer::Registry.fetch('delayed_jobs_backed_up')
+ collection.register :delayed_jobs_never_ran, OkComputer::Registry.fetch('delayed_jobs_never_ran')
+ OkComputer::Registry.default_collection.register 'full', collection
+end
+
+
# Check if authentication required
authentication_password = OpenProject::Configuration.health_checks_authentication_password
if authentication_password.present?
diff --git a/config/initializers/30-redmine.rb b/config/initializers/locale_fallbacks.rb
similarity index 98%
rename from config/initializers/30-redmine.rb
rename to config/initializers/locale_fallbacks.rb
index c01ce8a427..8010e3ff49 100644
--- a/config/initializers/30-redmine.rb
+++ b/config/initializers/locale_fallbacks.rb
@@ -1,4 +1,5 @@
#-- encoding: UTF-8
+
#-- copyright
# OpenProject is a project management system.
# Copyright (C) 2012-2018 the OpenProject Foundation (OPF)
@@ -37,5 +38,3 @@
defaults = Set.new I18n.fallbacks.defaults + Setting.available_languages.map(&:to_sym)
I18n.fallbacks.defaults = defaults
end
-
-require 'open_project'
diff --git a/config/locales/crowdin/af.yml b/config/locales/crowdin/af.yml
index 47c65ce819..4eafe53229 100644
--- a/config/locales/crowdin/af.yml
+++ b/config/locales/crowdin/af.yml
@@ -2932,7 +2932,3 @@ af:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/ar.yml b/config/locales/crowdin/ar.yml
index 9d0617a338..b3757e7a96 100644
--- a/config/locales/crowdin/ar.yml
+++ b/config/locales/crowdin/ar.yml
@@ -2995,7 +2995,3 @@ ar:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: تمكين خدمة ويب البريد الإلكتروني الوارد
- setting_mail_handler_api_description: معالج ويب البريد الإلكتروني يتيح لOPEN Project
- أن يتلقى رسائل البريد الإلكتروني التي تحتوي على أوامر محددة كآلية لأجهزة (مثلاً،
- لإنشاء وتحديث حزم العمل).
diff --git a/config/locales/crowdin/az.yml b/config/locales/crowdin/az.yml
index 5cab6aa266..4060a9bcbc 100644
--- a/config/locales/crowdin/az.yml
+++ b/config/locales/crowdin/az.yml
@@ -2919,7 +2919,3 @@ az:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/bg.yml b/config/locales/crowdin/bg.yml
index 79d82d3ba5..13ea1b5eb4 100644
--- a/config/locales/crowdin/bg.yml
+++ b/config/locales/crowdin/bg.yml
@@ -2928,7 +2928,3 @@ bg:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: Имейл уеб манипулаторът позволява на OpenProject
- да получава имейли, съдържащи конкретни команди като инструментален механизъм
- (например, за да създава и актуализира работни пакети).
diff --git a/config/locales/crowdin/ca.yml b/config/locales/crowdin/ca.yml
index 0c08ab0f22..7fcf3a7109 100644
--- a/config/locales/crowdin/ca.yml
+++ b/config/locales/crowdin/ca.yml
@@ -2986,9 +2986,3 @@ ca:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Habilitar el servei web de correus electrònics
- entrants
- setting_mail_handler_api_description: El controlador de correu web permet a OpenProject
- rebre missatges de correu electrònic que continguin ordres específiques com un
- mecanisme d'instrumentació (per exemple, per crear i actualitzar els paquets de
- treball).
diff --git a/config/locales/crowdin/cs.yml b/config/locales/crowdin/cs.yml
index 5a029b5777..fb4db96178 100644
--- a/config/locales/crowdin/cs.yml
+++ b/config/locales/crowdin/cs.yml
@@ -2980,7 +2980,3 @@ cs:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/da.yml b/config/locales/crowdin/da.yml
index 0a690da9fc..80d448dbbb 100644
--- a/config/locales/crowdin/da.yml
+++ b/config/locales/crowdin/da.yml
@@ -2922,7 +2922,3 @@ da:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Aktivér indgående e-mailwebtjeneste
- setting_mail_handler_api_description: E-mail webhåndteringen muliggør, at OpenProject
- kan modtage e-mails indeholdende specifikke kommandoer, som en mekanisme til instrumentering
- (f.eks., at oprette og opdatere arbejdspakker).
diff --git a/config/locales/crowdin/de.yml b/config/locales/crowdin/de.yml
index 0db634697a..94b8028d23 100644
--- a/config/locales/crowdin/de.yml
+++ b/config/locales/crowdin/de.yml
@@ -58,19 +58,20 @@ de:
no_results_content_title: Derzeit gibt es keine Authentifizierungsmodi.
no_results_content_text: Erstellen Sie einen neuen Authentifizierungsmodus
ldap_auth_sources:
- connection_encryption: Connection encryption
+ connection_encryption: Verbindungsverschlüsselung
tls_mode:
plain: kein
simple_tls: simple_tls
start_tls: start_tls
- plain_description: Plain unencrypted connection, no TLS negotiation.
- simple_tls_description: Implicit TLS encryption, but no certificate validation.
- Use with caution and implicit trust of the LDAP connection.
- start_tls_description: Explicit TLS encryption with full validation. Use for
- LDAP over TLS/SSL.
- section_more_info_link_html: 'This section concerns the connection security
- of this LDAP authentication source. For more information, visit the
- Net::LDAP documentation.
+ plain_description: Unverschlüsselte Verbindung.
+ simple_tls_description: Implizite TLS-Verschlüsselung ohne Verifikation. Mit
+ Bedacht verwenden, da diese Option in impliziten Vertrauen in die LDAP-Verbindung
+ resultiert.
+ start_tls_description: Explizite TLS-Verschlüsselung mit Verifikation der Zertifikatskette.
+ Für LDAP over TLS/SSL verwenden.
+ section_more_info_link_html: 'Dieser Abschnitt betrifft die Verbindungssicherheit
+ dieser LDAP-Authentifizierungsquelle. Besuchen Sie für weitere Informationen
+ die Net::LDAP Dokumentation.
'
boards:
@@ -396,9 +397,9 @@ de:
encoded_token: Enterprise-Edition Support Token
active_user_count_restriction: Maximale aktive Nutzer
grids/grid:
- page: Page
- row_count: Number of rows
- column_count: Number of columns
+ page: Seite
+ row_count: Anzahl der Zeilen
+ column_count: Anzahl der Spalten
widgets: Widgets
relation:
delay: Pufferzeit
@@ -572,9 +573,9 @@ de:
unreadable: kann nicht gelesen werden. Ist dies ein Enterprise-Edition Support
Token?
grids/grid:
- overlaps: overlap.
- outside: is outside of the grid.
- end_before_start: end value needs to be larger than the start value.
+ overlaps: überlappen.
+ outside: ist außerhalb des Rasters.
+ end_before_start: der Endwert muss größer sein als der Startwert.
parse_schema_filter_params_service:
attributes:
base:
@@ -1559,7 +1560,7 @@ de:
label_previous_week: Woche zurück
label_principal_invite_via_email: " oder Nutzer per E-Mail einladen"
label_principal_search: Vorhandene Benutzer / Gruppen hinzufügen
- label_privacy_policy: Data privacy and security policy
+ label_privacy_policy: Datenschutz- und Sicherheitsrichtlinien
label_product_version: Produktversion
label_professional_support: Professionelle Unterstützung
label_profile: Profil
@@ -1885,8 +1886,8 @@ de:
notice_account_update_failed: Konto konnte nicht aktualisiert werden. Bitte besuchen
Sie ihre Profilseite und überprüfen Sie die Einstellungen.
notice_account_updated: Konto wurde erfolgreich aktualisiert.
- notice_account_other_session_expired: All other sessions tied to your account have
- been invalidated.
+ notice_account_other_session_expired: Alle anderen Sitzungen, die mit Ihrem Konto
+ verbunden sind, wurden beendet.
notice_account_wrong_password: Falsches Kennwort.
notice_account_registered_and_logged_in: Willkommen, ihr Benutzerkonto wurde aktiviert.
Sie sind nun angemeldet.
@@ -3021,7 +3022,3 @@ de:
revoke_my_application_confirmation: Möchten Sie diese Anwendung wirklich entfernen?
Dies wird %{token_count} aktive Token widerrufen.
my_registered_applications: Registrierte OAuth-Anwendungen
- setting_mail_handler_api_enabled: Web-Service für eingehende E-Mails aktivieren
- setting_mail_handler_api_description: Der E-Mail Web-Service erlaubt es OpenProject,
- E-Mails mit speziellen Anweisungen zu erhalten und darauf zu reagieren (z.B. zum
- Anlegen und Aktualisieren von Arbeitspaketen).
diff --git a/config/locales/crowdin/el.yml b/config/locales/crowdin/el.yml
index c3ec5c9ad2..21082bd0d9 100644
--- a/config/locales/crowdin/el.yml
+++ b/config/locales/crowdin/el.yml
@@ -384,9 +384,9 @@ el:
encoded_token: Enterprise support token
active_user_count_restriction: Maximum active users
grids/grid:
- page: Page
- row_count: Number of rows
- column_count: Number of columns
+ page: Σελίδα
+ row_count: Πλήθος γραμμών
+ column_count: Πλήθοςστηλών
widgets: Widgets
relation:
delay: Καθυστέρηση
@@ -2919,7 +2919,3 @@ el:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/es.yml b/config/locales/crowdin/es.yml
index 4e133ad3e7..44be17fdb2 100644
--- a/config/locales/crowdin/es.yml
+++ b/config/locales/crowdin/es.yml
@@ -1423,7 +1423,7 @@ es:
label_hierarchy_leaf: Hoja de jerarquía
label_home: Inicio
label_subject_or_id: Asunto o ID
- label_impressum: Impressum
+ label_impressum: Aviso legal
label_in: en
label_in_less_than: en menos de
label_in_more_than: en más de
@@ -1556,7 +1556,7 @@ es:
label_previous_week: Semana anterior
label_principal_invite_via_email: " o invitar nuevos usuarios vía email"
label_principal_search: Añadir usuarios o grupos existentes
- label_privacy_policy: Data privacy and security policy
+ label_privacy_policy: Política de privacidad y seguridad de datos
label_product_version: Versión del producto
label_professional_support: Soporte profesional
label_profile: Perfil
@@ -3025,9 +3025,3 @@ es:
revoke_my_application_confirmation: "¿Seguro que quieres eliminar esta aplicación?
Eso suspenderá %{token_count} activos para realizarse."
my_registered_applications: Aplicaciones OAuth Registradas
- setting_mail_handler_api_enabled: Habilitar el servicio web de correo electrónico
- entrante
- setting_mail_handler_api_description: El controlador de correo electrónico web permite
- a OpenProject recibir correos electrónicos que contienen comandos específicos
- como un mecanismo de instrumentación (por ejemplo, para crear y actualizar los
- paquetes de trabajo).
diff --git a/config/locales/crowdin/et.yml b/config/locales/crowdin/et.yml
index 6641749dd0..bc3baad4c2 100644
--- a/config/locales/crowdin/et.yml
+++ b/config/locales/crowdin/et.yml
@@ -2910,7 +2910,3 @@ et:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/fa.yml b/config/locales/crowdin/fa.yml
index 94b2cd3620..fb8654a91b 100644
--- a/config/locales/crowdin/fa.yml
+++ b/config/locales/crowdin/fa.yml
@@ -343,7 +343,7 @@ fa:
filesize: اندازه
attribute_help_text:
attribute_name: Attribute
- help_text: Help text
+ help_text: متن راهنما
auth_source:
account: حساب کاربری
attr_firstname: مشخصه نام
@@ -2917,7 +2917,3 @@ fa:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/fi.yml b/config/locales/crowdin/fi.yml
index dc062a8cba..9939c8cf8a 100644
--- a/config/locales/crowdin/fi.yml
+++ b/config/locales/crowdin/fi.yml
@@ -985,13 +985,13 @@ fi:
default_type_bug: Virhe
default_type_deliverable: Suorite
default_type_epic: Epic
- default_type_feature: Feature
+ default_type_feature: Ominaisuus
default_type_milestone: Milestone
- default_type_phase: Phase
+ default_type_phase: Vaihe
default_type_task: Tehtävä
- default_type_user_story: User story
+ default_type_user_story: Käyttäjän tarina
description_active: Aktiivinen?
- description_attachment_toggle: Show/Hide attachments
+ description_attachment_toggle: Näytä tai Piilota liitteet
description_autocomplete: 'Tämä kenttä käyttää automaattisen täydennyksen. Kun näppäily
otsikon työtä paketin saat listan mahdollisista ehdokkaista. Valitse yksi käyttäen
nuoli ylös ja nuoli alas näppäintä ja valitse sarkain tai näppäile näppäintä.
@@ -2911,6 +2911,3 @@ fi:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Ota käyttöön WS saapuville sähköposteille
- setting_mail_handler_api_description: Sähköpostipalvelu mahdollistaa tietynlaisten
- komentojen (esim. työpaketin luonti ja päivitys) vastaanottamisen sähköpostitse.
diff --git a/config/locales/crowdin/fil.yml b/config/locales/crowdin/fil.yml
index 1ffde0af52..ec51e4a992 100644
--- a/config/locales/crowdin/fil.yml
+++ b/config/locales/crowdin/fil.yml
@@ -3034,7 +3034,3 @@ fil:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Paganahin ang paparating na email web service
- setting_mail_handler_api_description: Ang email web handler ay pinagana ang OpenProject
- upang makatanggap ng mga mail na naglalaman ng tiyak na command bilang isang intstrumentasyon
- mechanism ( hal. upang lumikha at i-update ang mga work package).
diff --git a/config/locales/crowdin/fr.yml b/config/locales/crowdin/fr.yml
index 25d257f66c..2fe6982140 100644
--- a/config/locales/crowdin/fr.yml
+++ b/config/locales/crowdin/fr.yml
@@ -58,7 +58,7 @@ fr:
no_results_content_title: Il n'y a actuellement aucun mode d'authentification.
no_results_content_text: Créer un nouveau mode d'authentification
ldap_auth_sources:
- connection_encryption: Connection encryption
+ connection_encryption: Cryptage de la connexion
tls_mode:
plain: aucun(e)
simple_tls: simple_tls
@@ -68,9 +68,9 @@ fr:
Use with caution and implicit trust of the LDAP connection.
start_tls_description: Explicit TLS encryption with full validation. Use for
LDAP over TLS/SSL.
- section_more_info_link_html: 'This section concerns the connection security
- of this LDAP authentication source. For more information, visit the
- Net::LDAP documentation.
+ section_more_info_link_html: 'Cette section concerne la sécurité de connexion
+ de cette source d''authentification LDAP. Pour plus d''informations, visitez
+ the Net::LDAP documentation.
'
boards:
@@ -148,8 +148,8 @@ fr:
failed: La suppression du projet %{name} a échoué
failed_text: The request to delete project %{name} has failed. The project was
left archived.
- completed: Deletion of project %{name} completed
- completed_text: The request to delete project '%{name}' has been completed.
+ completed: Suppression du projet %{name} terminée
+ completed_text: La demande de suppression du projet '%{name}' a été terminée.
index:
no_results_title_text: Aucun projet pour le moment
no_results_content_text: Créer un nouveau projet
@@ -393,8 +393,8 @@ fr:
active_user_count_restriction: Nombre maximal d’utilisateurs actif
grids/grid:
page: Page
- row_count: Number of rows
- column_count: Number of columns
+ row_count: Nombre de lignes
+ column_count: Nombre de colonnes
widgets: Widgets
relation:
delay: Délai
@@ -488,8 +488,8 @@ fr:
type: Type
watcher: Observateur
doorkeeper/application:
- uid: Client ID
- secret: Client secret
+ uid: Id du client
+ secret: Clé secrète du client
owner: Propriétaire
redirect_uri: URL de redirection
client_credentials_user_id: Client Credentials User ID
@@ -566,8 +566,8 @@ fr:
Entreprise ?
grids/grid:
overlaps: overlap.
- outside: is outside of the grid.
- end_before_start: end value needs to be larger than the start value.
+ outside: est hors de la grille.
+ end_before_start: la valeur finale doit être supérieure à la valeur de départ.
parse_schema_filter_params_service:
attributes:
base:
@@ -783,7 +783,7 @@ fr:
button_change_password: Changer de mot de passe
button_check_all: Tout cocher
button_clear: Effacer
- button_click_to_reveal: Click to reveal
+ button_click_to_reveal: Cliquez pour révéler
button_close: Fermer
button_collapse_all: Tout replier
button_configure: Configurer
@@ -1418,8 +1418,8 @@ fr:
label_history: Historique
label_hierarchy_leaf: Feuille de hiérarchie
label_home: Accueil
- label_subject_or_id: Subject or ID
- label_impressum: Impressum
+ label_subject_or_id: Objet ou ID
+ label_impressum: Mentions légales
label_in: dans
label_in_less_than: en moins de
label_in_more_than: en plus de
@@ -1552,7 +1552,7 @@ fr:
label_previous_week: Semaine précédente
label_principal_invite_via_email: " ou inviter de nouveaux utilisateurs par courriel"
label_principal_search: Ajouter des utilisateurs ou groupes existant
- label_privacy_policy: Data privacy and security policy
+ label_privacy_policy: Politique de confidentialité et de sécurité des données
label_product_version: Version du produit
label_professional_support: Support professionnel
label_profile: Profil
@@ -1884,8 +1884,8 @@ fr:
notice_account_update_failed: Le paramètre de compte n'a pas pu être enregistré.
Veuillez consulter la page de votre compte.
notice_account_updated: Le compte a été mis à jour avec succès.
- notice_account_other_session_expired: All other sessions tied to your account have
- been invalidated.
+ notice_account_other_session_expired: Toutes les autres sessions liées à votre compte
+ ont été invalidées.
notice_account_wrong_password: Mot de passe incorrect
notice_account_registered_and_logged_in: Bienvenue, votre compte a été activé. Vous
êtes maintenant connecté.
@@ -2315,7 +2315,7 @@ fr:
setting_per_page_options: Options des objets par page
setting_plain_text_mail: Courriel au format texte (pas de HTML)
setting_protocol: Protocole
- setting_security_badge_displayed: Display security badge
+ setting_security_badge_displayed: Afficher le badge de sécurité
setting_registration_footer: Pied de page d’inscription
setting_repositories_automatic_managed_vendor: Type de fournisseur de dépôt automatique
setting_repositories_encodings: Encodages de référentiels
@@ -2906,7 +2906,7 @@ fr:
schema: Schéma
doorkeeper:
pre_authorization:
- status: Pre-authorization
+ status: Préautorisation
errors:
messages:
invalid_request: Il manque à la requête un paramètre requis, inclut une valeur
@@ -2928,36 +2928,38 @@ fr:
due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured.
resource_owner_authenticator_not_configured: Resource Owner find failed due
to Doorkeeper.configure.resource_owner_authenticator being unconfigured.
- admin_authenticator_not_configured: Access to admin panel is forbidden due
- to Doorkeeper.configure.admin_authenticator being unconfigured.
- unsupported_response_type: The authorization server does not support this
- response type.
- invalid_client: Client authentication failed due to unknown client, no client
- authentication included, or unsupported authentication method.
- invalid_grant: The provided authorization grant is invalid, expired, revoked,
- does not match the redirection URI used in the authorization request, or
- was issued to another client.
- unsupported_grant_type: The authorization grant type is not supported by the
- authorization server.
+ admin_authenticator_not_configured: L'accès au panneau d'administration est
+ interdit en raison de l'absence de configuration de Doorkeeper.configure.admin_authenticator.
+ unsupported_response_type: Le serveur d'autorisation ne supporte pas ce type
+ de réponse.
+ invalid_client: L'authentification du client a échoué en raison d'un client
+ inconnu, d'une authentification du client non supportée ou d'une méthode
+ d'authentification non supportée.
+ invalid_grant: L'autorisation accordée est invalide, expirée, révoquée, ne
+ correspond pas à l'URI de redirection utilisée dans la demande d'autorisation
+ ou a été accordée à un autre client.
+ unsupported_grant_type: Le type de subvention d'autorisation n'est pas supporté
+ par le serveur d'autorisation.
invalid_token:
- revoked: The access token was revoked
- expired: The access token expired
- unknown: The access token is invalid
+ revoked: Le jeton d'accès a été révoqué
+ expired: Le jeton d'accès a expiré
+ unknown: Le jeton d'accès est invalide
unsupported_browser:
- title: Your browser is outdated and unsupported.
- message: You may run into errors and degraded experience on this page.
+ title: Votre navigateur est obsolète et non pris en charge.
+ message: Vous pouvez rencontrer des erreurs et une expérience dégradée sur cette
+ page.
update_message: Veuillez mettre à jour votre navigateur.
close_warning: Ignorer cet avertissement.
oauth:
application:
singular: Applications OAuth
- plural: OAuth applications
- named: OAuth application '%{name}'
- new: New OAuth application
- default_scopes: "(Default scopes)"
+ plural: Applications OAuth
+ named: Application OAuth '%{name}'
+ new: Nouvelle application Oauth
+ default_scopes: "(Portée par défaut)"
instructions:
- name: The name of your application. This will be displayed to other users
- upon authorization.
+ name: Le nom de votre application. Ceci sera affiché aux autres utilisateurs
+ sur autorisation.
redirect_uri_html: 'The allowed URLs authorized users can be redirected to.
One entry per line.
If you''re registering a desktop application,
use the following URL.
@@ -2971,25 +2973,25 @@ fr:
register_intro: If you are developing an OAuth API client application for
OpenProject, you can register it using this form for all users to use.
default_scopes: ''
- client_id: Client ID
+ client_id: Id du client
client_secret_notice: 'This is the only time we can print the client secret, please
note it down and keep it secure. It should be treated as a password and cannot
be retrieved by OpenProject at a later time.
'
authorization_dialog:
- authorize: Authorize
- cancel: Cancel and deny authorization.
- prompt_html: Authorize %{application_name} to use your account
- %{login}?
- title: Authorize %{application_name}
+ authorize: Autoriser
+ cancel: Annuler et refuser l'autorisation.
+ prompt_html: Autoriser %{application_name} à utiliser votre
+ compte %{login} ?
+ title: Autoriser %{application_name}
wants_to_access_html: 'Cette application demande l''accès à votre compte OpenProject.
Il a demandé les autorisations suivantes:Il a demandé
les autorisations suivantes
'
scopes:
- api_v3: Full API access
+ api_v3: Accès API complet
api_v3_text: L'application recevra un accès complet en lecture et écriture à
l'API OpenProject pour effectuer des actions en votre nom.
grants:
@@ -3000,8 +3002,8 @@ fr:
none_given: Aucune application OAuth n'a été autorisée à accéder à votre compte
utilisateur.
x_active_tokens:
- one: one active token
- other: "%{count} active token"
+ one: un jeton actif
+ other: un jeton actif %{count}
flows:
authorization_code: Authorization code flow
client_credentials: Client credentials flow
@@ -3019,7 +3021,3 @@ fr:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Activer le service web de courrier entrant
- setting_mail_handler_api_description: Le service web de courrier entrant permet
- à OpenProject de recevoir des courriels contenant des commandes spécifiques à
- exécuter (e.g. pour créer et mettre à jour des lots de travaux).
diff --git a/config/locales/crowdin/he.yml b/config/locales/crowdin/he.yml
index a6f4146b1f..8900c4bb5c 100644
--- a/config/locales/crowdin/he.yml
+++ b/config/locales/crowdin/he.yml
@@ -2957,7 +2957,3 @@ he:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/hi.yml b/config/locales/crowdin/hi.yml
index cb7a441fda..fef46231d8 100644
--- a/config/locales/crowdin/hi.yml
+++ b/config/locales/crowdin/hi.yml
@@ -2933,7 +2933,3 @@ hi:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/hr.yml b/config/locales/crowdin/hr.yml
index 494d5caad8..1043fa02a9 100644
--- a/config/locales/crowdin/hr.yml
+++ b/config/locales/crowdin/hr.yml
@@ -2967,7 +2967,3 @@ hr:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Omogućiti dolaznu e-poštu web-usluga
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/hu.yml b/config/locales/crowdin/hu.yml
index 355589ad4c..84a660fb87 100644
--- a/config/locales/crowdin/hu.yml
+++ b/config/locales/crowdin/hu.yml
@@ -197,10 +197,10 @@ hu:
no_results_content_text: Állapot jelentés hozzáadása
statuses:
edit:
- status_readonly_html: "Válaszd ki ezt az opciót a Feladatcsoport csak olvashatóvá
- tételéhez.\nNo attributes can be changed with the exception of the status.
- \n
\nNote: Örökölt értékek (pl. a gyermektől, vagy kapcsolatoktól)
- meg fognak maradni.\n"
+ status_readonly_html: |
+ Jelölje be ezt az opciót, ha ezt az állapotot tartalmazó munkacsomagokat csak olvashatóvá kívánja jelölni. Az állapot kivételével semmilyen attribútum nem módosítható.
+
+ Megjegyzés: az örökölt értékek (például a gyermekobjektum vagy a kapcsolatok) továbbra is érvényesek.
status_color_text: |
Ide kattintva rendelhet vagy változtathatja meg a színét az állapotnak.
Az állapot gomb látható és kiemelhető a feladatcsoport táblázatban.
@@ -217,9 +217,9 @@ hu:
projects: Projektek
enabled_projects: Engedélyezett projektek
add_group: Tulajdonságcsoport
- add_table: Add table of related work packages
- edit_query: Edit table
- query_group_placeholder: Give the table a name
+ add_table: Táblázat hozzáadása a kapcsolódó munkacsomagokhoz
+ edit_query: Táblázat szerkesztése
+ query_group_placeholder: Adja meg a tábla nevét
reset: Alapbeállítások visszaállítása
type_color_text: 'Kattintson az adott típus színének hozzárendeléséhez vagy
megváltoztatásához. A kiválasztott szín különbözteti meg a feladatcsoportokat
@@ -390,7 +390,7 @@ hu:
to: Kapcsolódó feladatcsoport
status:
is_closed: Lezárt feladatcsoport
- is_readonly: Feladatcsoport csak olvasható
+ is_readonly: Munkacsomag csak olvasható
journal:
notes: Jegyzet
member:
@@ -1239,7 +1239,7 @@ hu:
label_authentication: Hitelesítés
label_available_project_work_package_categories: Rendelkezésre álló munkacsomag
kategóriák
- label_available_project_work_package_types: Available work package types
+ label_available_project_work_package_types: Rendelkezésre álló munkacsomag típusok
label_available_project_boards: Rendelkezésre álló táblák
label_available_project_versions: Rendelkezésre álló verziók
label_available_project_repositories: Rendelkezésre álló tárolók
@@ -2265,7 +2265,7 @@ hu:
setting_per_page_options: Objektum per oldal opció
setting_plain_text_mail: Egyszerű szöveges e-mail (nem HTML)
setting_protocol: Protokol
- setting_security_badge_displayed: Display security badge
+ setting_security_badge_displayed: Biztonsági állapot kijelzés
setting_registration_footer: Regisztráció lábléc
setting_repositories_automatic_managed_vendor: Automatikus tároló típus
setting_repositories_encodings: Tárolók kódolásai
@@ -2946,7 +2946,3 @@ hu:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Bejövő e-mail szolgáltatás engedélyezése
- setting_mail_handler_api_description: Az e-mail web kezelő lehetővé teszi, hogy
- az OpenProject különböző utasításokat tartalmazó e-maileket fogadjon és végrehajtson
- (úgy mint feladatcsoport készítés, frissítés).
diff --git a/config/locales/crowdin/id.yml b/config/locales/crowdin/id.yml
index f6f3e2171d..13f6bbc58e 100644
--- a/config/locales/crowdin/id.yml
+++ b/config/locales/crowdin/id.yml
@@ -2914,6 +2914,3 @@ id:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Aktifkan web service untuk email masuk
- setting_mail_handler_api_description: Email web handler memungkinkan OpenProject
- untuk mengolah perintah (seperti membuat dan update work packages).
diff --git a/config/locales/crowdin/it.yml b/config/locales/crowdin/it.yml
index 37aeeb1be4..4dc1884018 100644
--- a/config/locales/crowdin/it.yml
+++ b/config/locales/crowdin/it.yml
@@ -59,7 +59,7 @@ it:
no_results_content_title: Al momento non vi è alcuna modalità di autenticazione.
no_results_content_text: Crea una nuova modalità di autenticazione
ldap_auth_sources:
- connection_encryption: Connection encryption
+ connection_encryption: Crittografia connessione
tls_mode:
plain: nessuno
simple_tls: simple_tls
@@ -389,10 +389,10 @@ it:
encoded_token: Token di assistenza Enterprise
active_user_count_restriction: Numero massimo di utenti attivi
grids/grid:
- page: Page
- row_count: Number of rows
- column_count: Number of columns
- widgets: Widgets
+ page: Pagina
+ row_count: Numero di righe
+ column_count: Numero di colonne
+ widgets: Widget
relation:
delay: Ritardo
from: Macro-attività
@@ -562,8 +562,8 @@ it:
unreadable: non può essere letto. Sei sicuro che si tratta di un token di
assistenza?
grids/grid:
- overlaps: overlap.
- outside: is outside of the grid.
+ overlaps: sovrapposizione.
+ outside: è fuori dalla griglia.
end_before_start: end value needs to be larger than the start value.
parse_schema_filter_params_service:
attributes:
@@ -3018,8 +3018,3 @@ it:
revoke_my_application_confirmation: Vuoi davvero rimuovere questa applicazione?
Questo revocherà %{token_count} attivo per essa.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Abilitare il servizio web di posta elettronica
- in arrivo
- setting_mail_handler_api_description: Il gestore di posta elettronica web consente
- ad OpenProject di ricevere e-mail contenenti comandi specifici come strumento
- di automazione (ad esempio, per creare e aggiornare pacchetti di lavoro).
diff --git a/config/locales/crowdin/ja.yml b/config/locales/crowdin/ja.yml
index 33aa7c0bfb..cfe59ffcf1 100644
--- a/config/locales/crowdin/ja.yml
+++ b/config/locales/crowdin/ja.yml
@@ -1283,7 +1283,7 @@ ja:
label_hierarchy_leaf: 階層枚
label_home: ホーム
label_subject_or_id: 件名またはID
- label_impressum: Impressum
+ label_impressum: 免責事項
label_in: 今日から○日後
label_in_less_than: 今日から○日後以前
label_in_more_than: 今日から○日後以降
@@ -1416,7 +1416,7 @@ ja:
label_previous_week: 先週
label_principal_invite_via_email: " またはメールで新しいユーザを招待"
label_principal_search: 既存のユーザーまたはグループを追加する
- label_privacy_policy: Data privacy and security policy
+ label_privacy_policy: データのプライバシーとセキュリティポリシー
label_product_version: 製品バージョン
label_professional_support: プロフェッショナルサポート
label_profile: プロファイル
@@ -2642,6 +2642,3 @@ ja:
revoke_my_application_confirmation: 本当にこのアプリケーションを削除しますか? これにより %{token_count}
が無効になります。
my_registered_applications: 登録済みのOAuthアプリケーション
- setting_mail_handler_api_enabled: 受信メールWebサービスを有効にする
- setting_mail_handler_api_description: メールWebハンドラーにより、OpenProjectは機械的な仕組みで特定のコマンドが含まれているメールを受信することができます
- (例えば、作業項目の作成と更新)。
diff --git a/config/locales/crowdin/js-ar.yml b/config/locales/crowdin/js-ar.yml
index 4bc482db54..652de04ab7 100644
--- a/config/locales/crowdin/js-ar.yml
+++ b/config/locales/crowdin/js-ar.yml
@@ -152,7 +152,7 @@ ar:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: الوثائق
no_results: No documents yet.
news:
title: الأخبار
diff --git a/config/locales/crowdin/js-bg.yml b/config/locales/crowdin/js-bg.yml
index 30367a2181..0de9641e81 100644
--- a/config/locales/crowdin/js-bg.yml
+++ b/config/locales/crowdin/js-bg.yml
@@ -152,7 +152,7 @@ bg:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: Документи
no_results: No documents yet.
news:
title: Новини
diff --git a/config/locales/crowdin/js-da.yml b/config/locales/crowdin/js-da.yml
index b30a338cbb..c0c920bf61 100644
--- a/config/locales/crowdin/js-da.yml
+++ b/config/locales/crowdin/js-da.yml
@@ -152,7 +152,7 @@ da:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: Dokumenter
no_results: No documents yet.
news:
title: Nyheder
diff --git a/config/locales/crowdin/js-de.yml b/config/locales/crowdin/js-de.yml
index 47d58aac5f..356bfe805a 100644
--- a/config/locales/crowdin/js-de.yml
+++ b/config/locales/crowdin/js-de.yml
@@ -157,26 +157,26 @@ de:
general_text_Yes: Ja
grid:
add_modal:
- choose_widget: Choose widget
+ choose_widget: Widget auswählen
widgets:
documents:
- title: Documents
- no_results: No documents yet.
+ title: Dokumente
+ no_results: Keine Dokumente.
news:
title: Neuigkeiten
- at: at
+ at: um
no_results: Nichts Neues zu berichten.
time_entries_current_user:
- title: Spent time (last 7 days)
- no_results: No time entries for the last 7 days.
+ title: Verbrachte Zeit (letzte 7 Tage)
+ no_results: Keine Zeiteinträge der letzten 7 Tage.
work_packages_accountable:
title: Von mir verantwortete Arbeitspakete
work_packages_assigned:
title: Mir zugewiesene Arbeitspakete
work_packages_created:
- title: Work packages created by me
+ title: Von mir erstellte Arbeitspakete
work_packages_watched:
- title: Work packages watched by me
+ title: Von mir beobachtete Arbeitspakete
work_packages_calendar:
title: Kalender
label_activate: Aktivieren
diff --git a/config/locales/crowdin/js-el.yml b/config/locales/crowdin/js-el.yml
index 3f6f4ecc70..8f9d026a67 100644
--- a/config/locales/crowdin/js-el.yml
+++ b/config/locales/crowdin/js-el.yml
@@ -152,11 +152,11 @@ el:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
- no_results: No documents yet.
+ title: Έγγραφα
+ no_results: Δεν υπάρχουν έγγραφα.
news:
title: News
- at: at
+ at: στο
no_results: Nothing new to report.
time_entries_current_user:
title: Spent time (last 7 days)
@@ -166,9 +166,9 @@ el:
work_packages_assigned:
title: Work packages assigned to me
work_packages_created:
- title: Work packages created by me
+ title: Εργασίες που δημιούργησα
work_packages_watched:
- title: Work packages watched by me
+ title: Εργασίες που παρακολουθώ
work_packages_calendar:
title: Calendar
label_activate: Activate
diff --git a/config/locales/crowdin/js-es.yml b/config/locales/crowdin/js-es.yml
index fbd12189c1..18e78af0e1 100644
--- a/config/locales/crowdin/js-es.yml
+++ b/config/locales/crowdin/js-es.yml
@@ -153,26 +153,26 @@ es:
general_text_Yes: Sí
grid:
add_modal:
- choose_widget: Choose widget
+ choose_widget: Seleccione el widget
widgets:
documents:
- title: Documents
- no_results: No documents yet.
+ title: Documentos
+ no_results: No hay documentos.
news:
title: Noticias
- at: at
+ at: en
no_results: Nada nuevo sobre lo que informar.
time_entries_current_user:
- title: Spent time (last 7 days)
- no_results: No time entries for the last 7 days.
+ title: Tiempo de gastos (últimos 7 días)
+ no_results: Sin entradas temporales en los últimos 7 días.
work_packages_accountable:
title: Paquetes de trabajo de los que soy responsable
work_packages_assigned:
title: Paquetes de trabajo asignados a mí
work_packages_created:
- title: Work packages created by me
+ title: Paquetes de trabajo creados por mí
work_packages_watched:
- title: Work packages watched by me
+ title: Paquetes de trabajo vigilados por mí
work_packages_calendar:
title: Calendario
label_activate: Activar
@@ -892,7 +892,7 @@ es:
global_search:
all_projects: En todos los proyectos
search: Buscar
- close_search: Close search
+ close_search: Cerrar búsqueda
current_project: En este proyecto
current_project_and_all_descendants: En este proyecto + subproyectos
title:
diff --git a/config/locales/crowdin/js-et.yml b/config/locales/crowdin/js-et.yml
index cf4dd1c36d..897ecc5c7c 100644
--- a/config/locales/crowdin/js-et.yml
+++ b/config/locales/crowdin/js-et.yml
@@ -152,7 +152,7 @@ et:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: Dokumendid
no_results: No documents yet.
news:
title: Uudised
diff --git a/config/locales/crowdin/js-fi.yml b/config/locales/crowdin/js-fi.yml
index eb6c616785..e2365647cf 100644
--- a/config/locales/crowdin/js-fi.yml
+++ b/config/locales/crowdin/js-fi.yml
@@ -152,7 +152,7 @@ fi:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: Asiakirjat
no_results: No documents yet.
news:
title: Uutiset
diff --git a/config/locales/crowdin/js-fil.yml b/config/locales/crowdin/js-fil.yml
index ecf6913df3..f80edd1a83 100644
--- a/config/locales/crowdin/js-fil.yml
+++ b/config/locales/crowdin/js-fil.yml
@@ -151,7 +151,7 @@ fil:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: Mga dokumento
no_results: No documents yet.
news:
title: Mga balita
diff --git a/config/locales/crowdin/js-fr.yml b/config/locales/crowdin/js-fr.yml
index 6eda276b08..5a537d122e 100644
--- a/config/locales/crowdin/js-fr.yml
+++ b/config/locales/crowdin/js-fr.yml
@@ -179,13 +179,13 @@ fr:
label_activity_no: Entrée d'activité numéro %{activityNo}
label_activity_with_comment_no: Entrée d'activité numéro %{activityNo}. A un commentaire
utilisateur.
- label_add_column_after: Add column after
- label_add_column_before: Add column before
+ label_add_column_after: Ajouter une colonne après
+ label_add_column_before: Ajouter une colonne avant
label_add_columns: Ajouter des colonnes
label_add_comment: Ajouter un commentaire
label_add_comment_title: Commentez et utilisez @ pour informer d’autres personnes.
- label_add_row_after: Add row after
- label_add_row_before: Add row before
+ label_add_row_after: Ajouter une ligne après
+ label_add_row_before: Ajouter une ligne avant
label_add_selected_columns: Ajouter les colonnes sélectionnées
label_added_by: Ajouté par
label_added_time_by: Ajouté par %{author} %{age}
@@ -262,9 +262,9 @@ fr:
label_visibility_settings: Paramètres de visibilité
label_quote_comment: Citer ce commentaire
label_reset: Réinitialiser
- label_remove_column: Remove column
+ label_remove_column: Supprimer la colonne
label_remove_columns: Enlever les colonnes sélectionnées
- label_remove_row: Remove row
+ label_remove_row: Supprimer la ligne
label_save_as: Enregistrer sous
label_select_watcher: Sélectionner un observateur…
label_selected_filter_list: Filtres sélectionnés
@@ -287,7 +287,7 @@ fr:
seulement
label_activity_show_all: Afficher toutes les activités
label_total_progress: "%{percent}% de progression totale"
- label_total_amount: 'Total: %{amount}'
+ label_total_amount: 'Total : %{amount}'
label_updated_on: mis à jour le
label_warning: Attention
label_work_package: Lot de travaux
@@ -646,7 +646,7 @@ fr:
label_enable_multi_select: Activer la sélection multiple
label_disable_multi_select: Désactiver la sélection multiple
label_filter_add: Ajouter le filtre
- label_filter_by_text: Filter by text
+ label_filter_by_text: Filtrer par texte
label_options: Options
label_column_multiselect: 'Champ liste déroulante combinée : sélectionner avec
les touches fléchées, confirmer la sélection avec la touche enter, supprimer
@@ -660,7 +660,7 @@ fr:
message_work_package_read_only: Paquet de travail est verrouillé. Aucun attribut
autre que l’État ne peut être modifié.
no_value: Aucune valeur
- placeholder_filter_by_text: Subject, description, comments, ...
+ placeholder_filter_by_text: Objet, description, commentaires, ...
inline_create:
title: Cliquez ici pour ajouter un nouveau lot de travaux à cette liste
create:
@@ -880,7 +880,7 @@ fr:
messages_on_field: 'Ce champ n’est pas valide : %{messages}'
error_could_not_resolve_version_name: Ne peut résoudre le nom de version
error_could_not_resolve_user_name: Impossible de trouver l'utilisateur
- error_attachment_upload: 'File failed to upload: %{error}'
+ error_attachment_upload: 'Erreur de chargement du fichier : %{error}'
error_attachment_upload_permission: Vous n’avez pas l'autorisation de charger
des fichiers sur cette ressource.
units:
@@ -898,12 +898,12 @@ fr:
button_activate: Activer le mode zen
button_deactivate: Désactiver le mode zen
global_search:
- all_projects: In all projects
+ all_projects: Pour tous les projets
search: Recherche
- close_search: Close search
- current_project: In this project
- current_project_and_all_descendants: In this project + subprojects
+ close_search: Fermer la recherche
+ current_project: Pour ce projet
+ current_project_and_all_descendants: Dans ce projet + sous-projets
title:
- all_projects: all projects
- project_and_subprojects: and all subprojects
- search_for: Search for
+ all_projects: tous les projets
+ project_and_subprojects: et tous les sous-projets
+ search_for: Rechercher
diff --git a/config/locales/crowdin/js-hr.yml b/config/locales/crowdin/js-hr.yml
index 45fa80d17b..765fa8d920 100644
--- a/config/locales/crowdin/js-hr.yml
+++ b/config/locales/crowdin/js-hr.yml
@@ -152,7 +152,7 @@ hr:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: Dokumenti
no_results: No documents yet.
news:
title: Vijesti
diff --git a/config/locales/crowdin/js-hu.yml b/config/locales/crowdin/js-hu.yml
index ded89aecfe..bfa2e13fe4 100644
--- a/config/locales/crowdin/js-hu.yml
+++ b/config/locales/crowdin/js-hu.yml
@@ -100,15 +100,17 @@ hu:
text: "[Placeholder] tartalmazza a wiki oldalt"
page: Wiki oldal
not_set: "(Nincs beállítva oldal)"
- hint: |
- Include the content of another wiki page by specifying its title or slug.
- You can include the wiki page of another project by separating them with a colon like the following example.
+ hint: 'Adja meg egy másik wiki oldal tartalmát annak címének vagy elérési
+ út megadásával. A másik projekt wiki oldalát úgy is elhelyezheti, hogy
+ elválasztja őket egy kettősponttal, mint a következő példa.
+
+'
work_package_button:
button: Feladatcsoport létrehozása gomb beszúrása
type: Feladatcsoport típusok
button_style: Stílus gomb használata
- button_style_hint: 'Optional: Check to make macro appear as a button, not
- as a link.'
+ button_style_hint: 'Lehetőség: Ellenőrizze, hogy a makró gombként jelenik
+ meg, nem pedig linkként.'
without_type: Feladatcsoport létrehozása
with_type: 'Feladatcsoport létrehozása (típus: %{typename})'
embedded_table:
@@ -153,7 +155,7 @@ hu:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: Dokumentumok
no_results: No documents yet.
news:
title: Hírek
@@ -329,48 +331,47 @@ hu:
buttons:
skip: Skip
next: " Következő"
- got_it: Got it
+ got_it: Rendben
steps:
welcome: Take a three minutes introduction tour to learn the most important
features.
We recommend completing the steps until the end. You
can restart the tour any time.
- project_selection: Please select one of the projects with useful demo data
- to get started.
The Demo project suits best for classical project
- management, while the Scrum project is better for Agile project management.
- sidebar_arrow: With the arrow you can navigate back to the project's Main
- menu.
- members: Invite new Members to join your project.
- wiki: Within the Wiki you can document and share knowledge together
- with your team.
+ project_selection: Kérjük, válasszon egyet a projektek közül, amelyek használható
+ példa adatokat tartalmaznak az induláshoz.
A Demo projekt
+ a legjobban megfelel a klasszikus projektmenedzsmentnek, míg a Scrum
+ projekt jobb az agilis projektmenedzsment számára.
+ sidebar_arrow: A nyíl segítségével visszatérhet a projekt főmenüjébe.
+ members: Új tagok meghívása, hogy a projekthez csatlakozzanak.
+ wiki: A Wiki modulban tudását dokumentálhatja és megoszthatja a csapatával.
backlogs_overview: Manage your work in the Backlogs view.
On the
right you have the Product Backlog or a Bug Backlog, on the left you will
have the respective sprints. Here you can create epics, user stories,
and bugs, prioritize via drag'n'drop and add them to a sprint.
backlogs_task_board_arrow: To see your Task board, open the Sprint
drop-down...
- backlogs_task_board_select: "... and select the Task board entry."
- backlogs_task_board: The Task board visualizes the progress for this
- sprint. Add new tasks or impediments with the + icon next to a user story.
- Via drag'n'drop you can update the status.
+ backlogs_task_board_select: "... és válassza ki a Feladatlap bejegyzést."
+ backlogs_task_board: A Feladatlap megjeleníti a sprint előrehaladását.
+ Új feladatok vagy akadályok hozzáadása a + ikonhoz a felhasználói történet
+ mellett. A drag'n'drop segítségével frissítheti az állapotot.
wp_toggler: Most vessünk egy pillantást a Feladatcsoport kiválasztására,
amely részletesebb képet ad a munkáról.
- wp_list: Ez a Feladatcsoport a fontos munkát a projektben, mint például
- a feladatok, szolgáltatások, mérföldkövek, hibák, és több.
létrehozása
- vagy szerkesztése a feladatcsoport közvetlenül a listán belül. Megtekintheti
- a vonatkozó adatokat is dupla kattintással.
+ wp_list: Ez a Munkacsomag listázza a projekten belüli fontos munkákat,
+ mint például task, feature, milestones, bug és így tovább.
A csomagban
+ közvetlenül is létrehozhat vagy szerkeszthet egy munkacsomagot. A részletek
+ megtekintéséhez kattintson duplán egy sorra.
wp_full_view: Within the Work package details you find all relevant
information, such as description, status and priority, activities, dependencies
or comments.
- wp_back_button: With the arrow you can navigate back to the work package list.
+ wp_back_button: A nyíl segítségével visszatérhet a munkacsomagok listájához.
wp_create_button: A Létrehoz gombbal tudsz új feladatot hozzáadni a
projekthez.
- wp_timeline_button: You can activate the Gantt chart to create a timeline
- for your project.
- wp_timeline: Here you can edit your project plan. Create new phases, milestones,
- and add dependencies. All team members can see and update the latest plan
- at any time.
- help_menu: In the Help menu you will find a user guide and additional
- help resources.
Enjoy your work with OpenProject!
+ wp_timeline_button: Aktiválhatja a Gantt-diagramot, hogy létrehozzon
+ egy idővonalat a projekthez.
+ wp_timeline: Itt szerkesztheti a projekt tervét. Hozzon létre új fázisokat,
+ mérföldköveket és hozzon létre függőségeket. A csapat minden tagja bármikor
+ megtekintheti és frissítheti a legújabb tervet.
+ help_menu: A Súgó menüben találja a felhasználói útmutatót és további
+ segítséget.
Élvezze az OpenProject munkáját!
password_confirmation:
field_description: A változás megerősítéséhez adja meg jelszavát.
title: Adja meg a jelszavát a folytatáshoz
diff --git a/config/locales/crowdin/js-id.yml b/config/locales/crowdin/js-id.yml
index f0955787ea..2276f22b9b 100644
--- a/config/locales/crowdin/js-id.yml
+++ b/config/locales/crowdin/js-id.yml
@@ -152,11 +152,11 @@ id:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: Dokumen
no_results: No documents yet.
news:
title: News
- at: at
+ at: di
no_results: Nothing new to report.
time_entries_current_user:
title: Spent time (last 7 days)
diff --git a/config/locales/crowdin/js-it.yml b/config/locales/crowdin/js-it.yml
index 19327e43bb..3ff6553c4a 100644
--- a/config/locales/crowdin/js-it.yml
+++ b/config/locales/crowdin/js-it.yml
@@ -154,26 +154,26 @@ it:
general_text_Yes: Si
grid:
add_modal:
- choose_widget: Choose widget
+ choose_widget: Scegli widget
widgets:
documents:
- title: Documents
- no_results: No documents yet.
+ title: Documenti
+ no_results: Nessun documento ancora.
news:
title: Notizie
- at: at
+ at: a
no_results: Niente di nuovo da segnalare.
time_entries_current_user:
- title: Spent time (last 7 days)
- no_results: No time entries for the last 7 days.
+ title: Tempo trascorso (ultimi 7 giorni)
+ no_results: Nessuna voce sul tempo per gli ultimi 7 giorni.
work_packages_accountable:
title: Macro-attività di cui sono responsabile del risultato
work_packages_assigned:
title: Pacchetti di lavoro assegnati a me
work_packages_created:
- title: Work packages created by me
+ title: Pacchetti di lavoro creati da me
work_packages_watched:
- title: Work packages watched by me
+ title: Pacchetti di lavoro visti da me
work_packages_calendar:
title: Calendario
label_activate: Attiva
diff --git a/config/locales/crowdin/js-ko.yml b/config/locales/crowdin/js-ko.yml
index 27538fbaf5..8bd4b4c780 100644
--- a/config/locales/crowdin/js-ko.yml
+++ b/config/locales/crowdin/js-ko.yml
@@ -147,7 +147,7 @@ ko:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: 문서
no_results: No documents yet.
news:
title: 뉴스
diff --git a/config/locales/crowdin/js-lt.yml b/config/locales/crowdin/js-lt.yml
index 3f6ce48513..40602f37bd 100644
--- a/config/locales/crowdin/js-lt.yml
+++ b/config/locales/crowdin/js-lt.yml
@@ -153,7 +153,7 @@ lt:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: Dokumentai
no_results: No documents yet.
news:
title: Naujienos
diff --git a/config/locales/crowdin/js-ne-NP.yml b/config/locales/crowdin/js-ne-NP.yml
new file mode 100644
index 0000000000..4403fd7974
--- /dev/null
+++ b/config/locales/crowdin/js-ne-NP.yml
@@ -0,0 +1,885 @@
+---
+ne-NP:
+ js:
+ ajax:
+ hide: Hide
+ loading: Loading ...
+ attachments:
+ draggable_hint: 'Drag on editor field to inline image or reference attachment.
+ Closed editor fields will be opened while you keep dragging.
+
+'
+ autocomplete_select:
+ placeholder:
+ multi: Add "%{name}"
+ single: Select "%{name}"
+ remove: Remove %{name}
+ active: Active %{label} %{name}
+ close_popup_title: Close popup
+ close_filter_title: Close filter
+ close_form_title: Close form
+ clipboard:
+ browser_error: Your browser doesn't support copying to clipboard. Please copy
+ the selected text manually.
+ copied_successful: Sucessfully copied to clipboard!
+ button_add_watcher: Add watcher
+ button_back_to_list_view: Back to list view
+ button_cancel: Cancel
+ button_close: Close
+ button_check_all: Check all
+ button_configure-form: Configure form
+ button_confirm: Confirm
+ button_continue: Continue
+ button_copy: Copy
+ button_custom-fields: Custom fields
+ button_delete: Delete
+ button_delete_watcher: Delete watcher
+ button_details_view: Details view
+ button_duplicate: Duplicate
+ button_edit: Edit
+ button_filter: Filter
+ button_advanced_filter: Advanced filter
+ button_list_view: List view
+ button_show_view: Fullscreen view
+ button_log_time: Log time
+ button_more: More
+ button_move: Move
+ button_open_details: Open details view
+ button_close_details: Close details view
+ button_open_fullscreen: Open fullscreen view
+ button_quote: Quote
+ button_save: Save
+ button_settings: Settings
+ button_uncheck_all: Uncheck all
+ button_update: Update
+ button_export-pdf: Download PDF
+ button_export-atom: Download Atom
+ calendar:
+ title: Calendar
+ too_many: There are more work packages (%{count}) than can be displayed by the
+ calendar (%{max}). Add filters to focus on the relevant ones.
+ description_available_columns: Available Columns
+ description_current_position: 'You are here:'
+ description_select_work_package: 'Select work package #%{id}'
+ description_selected_columns: Selected Columns
+ description_subwork_package: 'Child of work package #%{id}'
+ editor:
+ preview: Toggle preview mode
+ source_code: Toggle Markdown source mode
+ error_saving_failed: 'Saving the document failed with the following error: %{error}'
+ error_initialization_failed: Failed to initialize CKEditor!
+ mode:
+ manual: Switch to Markdown source
+ wysiwyg: Switch to WYSIWYG editor
+ macro:
+ child_pages:
+ button: Links to child pages
+ include_parent: Include parent
+ text: "[Placeholder] Links to child pages of"
+ page: Wiki page
+ this_page: this page
+ hint: 'Leave this field empty to list all child pages of the current page.
+ If you want to reference a different page, provide its title or slug.
+
+'
+ code_block:
+ button: Insert code snippet
+ title: Insert / edit Code snippet
+ language: Formatting language
+ language_hint: Enter the formatting language that will be used for highlighting
+ (if supported).
+ dropdown:
+ macros: Macros
+ chose_macro: Chose macro
+ toc: Table of contents
+ toolbar_help: Click to select widget and show the toolbar. Double-click to
+ edit widget
+ wiki_page_include:
+ button: Include content of another wiki page
+ text: "[Placeholder] Included wiki page of"
+ page: Wiki page
+ not_set: "(Page not yet set)"
+ hint: |
+ Include the content of another wiki page by specifying its title or slug.
+ You can include the wiki page of another project by separating them with a colon like the following example.
+ work_package_button:
+ button: Insert create work package button
+ type: Work package type
+ button_style: Use button style
+ button_style_hint: 'Optional: Check to make macro appear as a button, not
+ as a link.'
+ without_type: Create work package
+ with_type: 'Create work package (Type: %{typename})'
+ embedded_table:
+ button: Embed work package table
+ text: "[Placeholder] Embedded work package table"
+ embedded_calendar:
+ text: "[Placeholder] Embedded calendar"
+ custom_actions:
+ date:
+ specific: 'on'
+ current_date: Current date
+ error:
+ internal: An internal error has occurred.
+ cannot_save_changes_with_message: 'Cannot save your changes due to the following
+ error: %{error}'
+ query_saving: The view could not be saved.
+ embedded_table_loading: 'The embedded view could not be loaded: %{message}'
+ filter:
+ description:
+ text_open_filter: Open this filter with 'ALT' and arrow keys.
+ text_close_filter: To select an entry leave the focus for example by pressing
+ enter. To leave without filter select the first (empty) entry.
+ noneElement: "(none)"
+ time_zone_converted:
+ two_values: "%{from} - %{to} in your local time."
+ only_start: From %{from} in your local time.
+ only_end: Till %{to} in your local time.
+ value_spacer: "-"
+ sorting:
+ criteria:
+ one: First sorting criteria
+ two: Second sorting criteria
+ three: Third sorting criteria
+ upsale_for_more: For more advanced filters, check out the
+ upsale_link: Enterprise Edition.
+ general_text_no: 'no'
+ general_text_yes: 'yes'
+ general_text_No: 'No'
+ general_text_Yes: 'Yes'
+ grid:
+ add_modal:
+ choose_widget: Choose widget
+ widgets:
+ documents:
+ title: Documents
+ no_results: No documents yet.
+ news:
+ title: News
+ at: at
+ no_results: Nothing new to report.
+ time_entries_current_user:
+ title: Spent time (last 7 days)
+ no_results: No time entries for the last 7 days.
+ work_packages_accountable:
+ title: Work packages I am accountable for
+ work_packages_assigned:
+ title: Work packages assigned to me
+ work_packages_created:
+ title: Work packages created by me
+ work_packages_watched:
+ title: Work packages watched by me
+ work_packages_calendar:
+ title: Calendar
+ label_activate: Activate
+ label_activity_no: Activity entry number %{activityNo}
+ label_activity_with_comment_no: Activity entry number %{activityNo}. Has a user
+ comment.
+ label_add_column_after: Add column after
+ label_add_column_before: Add column before
+ label_add_columns: Add columns
+ label_add_comment: Add comment
+ label_add_comment_title: Comment and type @ to notify other people
+ label_add_row_after: Add row after
+ label_add_row_before: Add row before
+ label_add_selected_columns: Add selected columns
+ label_added_by: added by
+ label_added_time_by: Added by %{author} %{age}
+ label_ago: days ago
+ label_all: all
+ label_all_work_packages: all work packages
+ label_and: and
+ label_ascending: Ascending
+ label_author: 'Author: %{user}'
+ label_between: between
+ label_board_locked: Locked
+ label_board_sticky: Sticky
+ label_create_work_package: Create new work package
+ label_created_by: Created by
+ label_date: Date
+ label_date_with_format: 'Enter the %{date_attribute} using the following format:
+ %{format}'
+ label_deactivate: Deactivate
+ label_descending: Descending
+ label_description: Description
+ label_cancel_comment: Cancel comment
+ label_closed_work_packages: closed
+ label_collapse: Collapse
+ label_collapsed: collapsed
+ label_collapse_all: Collapse all
+ label_comment: Comment
+ label_committed_at: "%{committed_revision_link} at %{date}"
+ label_committed_link: committed revision %{revision_identifier}
+ label_contains: contains
+ label_created_on: created on
+ label_edit_comment: Edit this comment
+ label_edit_status: Edit the status of the work package
+ label_equals: is
+ label_expand: Expand
+ label_expanded: expanded
+ label_expand_all: Expand all
+ label_expand_project_menu: Expand project menu
+ label_export: Export
+ label_filename: फाइल
+ label_filesize: साइज
+ label_greater_or_equal: ">="
+ label_group_by: Group by
+ label_hide_attributes: Show less
+ label_hide_column: Hide column
+ label_hide_project_menu: Collapse project menu
+ label_in: in
+ label_in_less_than: in less than
+ label_in_more_than: in more than
+ label_latest_activity: Latest activity
+ label_last_updated_on: Last updated on
+ label_less_or_equal: "<="
+ label_less_than_ago: less than days ago
+ label_loading: Loading...
+ label_me: me
+ label_menu_collapse: collapse
+ label_menu_expand: expand
+ label_more_than_ago: more than days ago
+ label_my_page: My page
+ label_next: Next
+ label_no_data: No data to display
+ label_no_due_date: no end date
+ label_no_start_date: no start date
+ label_none: none
+ label_not_contains: doesn't contain
+ label_not_equals: is not
+ label_on: 'on'
+ label_open_menu: Open menu
+ label_open_context_menu: Open context menu
+ label_open_work_packages: open
+ label_password: Password
+ label_previous: Previous
+ label_per_page: 'Per page:'
+ label_please_wait: Please wait
+ label_visibility_settings: Visibility settings
+ label_quote_comment: Quote this comment
+ label_reset: Reset
+ label_remove_column: Remove column
+ label_remove_columns: Remove selected columns
+ label_remove_row: Remove row
+ label_save_as: Save as
+ label_select_watcher: Select a watcher...
+ label_selected_filter_list: Selected filters
+ label_show_attributes: Show all attributes
+ label_show_in_menu: Show view in menu
+ label_sort_by: Sort by
+ label_sorted_by: sorted by
+ label_sort_higher: Move up
+ label_sort_lower: Move down
+ label_sorting: Sorting
+ label_star_query: Favored
+ label_press_enter_to_save: Press enter to save.
+ label_public_query: Public
+ label_sum_for: Sum for
+ label_subject: Subject
+ label_this_week: this week
+ label_today: today
+ label_up: Up
+ label_activity_show_only_comments: Show activities with comments only
+ label_activity_show_all: Show all activities
+ label_total_progress: "%{percent}% Total progress"
+ label_total_amount: 'Total: %{amount}'
+ label_updated_on: updated on
+ label_warning: Warning
+ label_work_package: Work package
+ label_work_package_plural: Work packages
+ label_watch: Watch
+ label_watch_work_package: Watch work package
+ label_watcher_added_successfully: Watcher successfully added!
+ label_watcher_deleted_successfully: Watcher successfully deleted!
+ label_work_package_details_you_are_here: You're on the %{tab} tab for %{type}
+ %{subject}.
+ label_unwatch: Unwatch
+ label_unwatch_work_package: Unwatch work package
+ label_uploaded_by: Uploaded by
+ label_default_queries: Default views
+ label_starred_queries: Favorite views
+ label_global_queries: Public views
+ label_custom_queries: Private views
+ label_columns: Columns
+ label_attachments: Files
+ label_drop_files: Drop files here
+ label_drop_files_hint: or click to add files
+ label_drop_folders_hint: You cannot upload folders as an attachment. Please select
+ single files.
+ label_add_attachments: Add attachments
+ label_formattable_attachment_hint: Attach and link files by dropping on this field,
+ or pasting from the clipboard.
+ label_remove_file: Delete %{fileName}
+ label_remove_watcher: Remove watcher %{name}
+ label_remove_all_files: Delete all files
+ label_add_description: Add a description for %{file}
+ label_upload_notification: Uploading files...
+ label_work_package_upload_notification: 'Uploading files for Work package #%{id}:
+ %{subject}'
+ label_files_to_upload: 'These files will be uploaded:'
+ label_rejected_files: 'These files cannot be uploaded:'
+ label_rejected_files_reason: These files cannot be uploaded as their size is greater
+ than %{maximumFilesize}
+ label_wait: Please wait for configuration...
+ label_upload_counter: "%{done} of %{count} files finished"
+ label_validation_error: 'The work package could not be saved due to the following
+ errors:'
+ help_texts:
+ show_modal: Show attribute help text entry
+ onboarding:
+ buttons:
+ skip: Skip
+ next: Next
+ got_it: Got it
+ steps:
+ welcome: Take a three minutes introduction tour to learn the most important
+ features.
We recommend completing the steps until the end. You
+ can restart the tour any time.
+ project_selection: Please select one of the projects with useful demo data
+ to get started.
The Demo project suits best for classical project
+ management, while the Scrum project is better for Agile project management.
+ sidebar_arrow: With the arrow you can navigate back to the project's Main
+ menu.
+ members: Invite new Members to join your project.
+ wiki: Within the Wiki you can document and share knowledge together
+ with your team.
+ backlogs_overview: Manage your work in the Backlogs view.
On the
+ right you have the Product Backlog or a Bug Backlog, on the left you will
+ have the respective sprints. Here you can create epics, user stories,
+ and bugs, prioritize via drag'n'drop and add them to a sprint.
+ backlogs_task_board_arrow: To see your Task board, open the Sprint
+ drop-down...
+ backlogs_task_board_select: "... and select the Task board entry."
+ backlogs_task_board: The Task board visualizes the progress for this
+ sprint. Add new tasks or impediments with the + icon next to a user story.
+ Via drag'n'drop you can update the status.
+ wp_toggler: Now let's have a look at the Work package section, which
+ gives you a more detailed view of your work.
+ wp_list: This is the Work package list with the important work within
+ your project, such as tasks, features, milestones, bugs, and more.
+ You can create or edit a work package directly within this list. To see
+ its details you can double click on a row.
+ wp_full_view: Within the Work package details you find all relevant
+ information, such as description, status and priority, activities, dependencies
+ or comments.
+ wp_back_button: With the arrow you can navigate back to the work package list.
+ wp_create_button: The Create button will add a new work package to
+ your project.
+ wp_timeline_button: You can activate the Gantt chart to create a timeline
+ for your project.
+ wp_timeline: Here you can edit your project plan. Create new phases, milestones,
+ and add dependencies. All team members can see and update the latest plan
+ at any time.
+ help_menu: In the Help menu you will find a user guide and additional
+ help resources.
Enjoy your work with OpenProject!
+ password_confirmation:
+ field_description: You need to enter your account password to confirm this change.
+ title: Confirm your password to continue
+ pagination:
+ no_other_page: You are on the only page.
+ pages:
+ next: Forward to the next page
+ previous: Back to the previous page
+ placeholders:
+ default: "-"
+ subject: Enter subject here
+ selection: कृपया छान्नुहोस्
+ relation_description: Click to add description for this relation
+ project:
+ required_outside_context: You are not within a project context. Please choose
+ the project context first in order to select type and status
+ context: Project context
+ work_package_belongs_to: This work package belongs to project %{projectname}.
+ click_to_switch_context: Open this work package in that project.
+ autocompleter:
+ label: Project autocompletion
+ text_are_you_sure: Are you sure?
+ types:
+ attribute_groups:
+ error_duplicate_group_name: The name %{group} is used more than once. Group
+ names must be unique.
+ error_no_table_configured: Please configure a table for %{group}.
+ reset_title: Reset form configuration
+ confirm_reset: 'Warning: Are you sure you want to reset the form configuration?
+ This will reset the attributes to their default group and disable ALL custom
+ fields.
+
+'
+ upgrade_to_ee: Upgrade to Enterprise Edition
+ upgrade_to_ee_text: Wow! If you need this feature you are a super pro! Would
+ you mind supporting us OpenSource developers by becoming an Enterprise Edition
+ client?
+ more_information: More information
+ nevermind: Nevermind
+ filter_types:
+ parent: being child of
+ precedes: preceding
+ follows: following
+ relates: relating to
+ duplicates: duplicating
+ duplicated: duplicated by
+ blocks: blocking
+ blocked: blocked by
+ partof: being part of
+ includes: including
+ requires: requiring
+ required: required by
+ time_entry:
+ activity: Activity
+ comment: Comment
+ hours: Hours
+ watchers:
+ label_loading: loading watchers...
+ label_error_loading: An error occurred while loading the watchers
+ label_search_watchers: Search watchers
+ label_add: Add watchers
+ label_discard: Discard selection
+ typeahead_placeholder: Search for possible watchers
+ relation_labels:
+ parent: Parent
+ children: Children
+ relates: Related To
+ duplicates: Duplicates
+ duplicated: Duplicated by
+ blocks: Blocks
+ blocked: Blocked by
+ precedes: Precedes
+ follows: Follows
+ includes: Includes
+ partof: Part of
+ requires: Requires
+ required: Required by
+ relation_type: relation type
+ relations_hierarchy:
+ parent_headline: Parent
+ hierarchy_headline: Hierarchy
+ children_headline: Children
+ relation_buttons:
+ set_parent: Set parent
+ change_parent: Change parent
+ remove_parent: Remove parent
+ group_by_wp_type: Group by work package type
+ group_by_relation_type: Group by relation type
+ add_parent: Add existing parent
+ add_new_child: Create new child
+ create_new: Create new
+ add_existing: Add existing
+ add_existing_child: Add existing child
+ remove_child: Remove child
+ add_new_relation: Create new relation
+ add_existing_relation: Add existing relation
+ update_description: Set or update description of this relation
+ toggle_description: Toggle relation description
+ update_relation: Click to change the relation type
+ add_follower: Add follower
+ add_predecessor: Add predecessor
+ remove: Remove relation
+ save: Save relation
+ abort: Abort
+ relations_autocomplete:
+ placeholder: Enter the related work package id
+ parent_placeholder: Choose new parent, press enter to unset, escape to cancel.
+ repositories:
+ select_tag: Select tag
+ select_branch: Select branch
+ field_value_enter_prompt: Enter a value for '%{field}'
+ select2:
+ input_too_short:
+ one: Please enter one more character
+ other: Please enter {{count}} more characters
+ zero: Please enter more characters
+ load_more: Loading more results ...
+ no_matches: No matches found
+ searching: Searching ...
+ selection_too_big:
+ one: You can only select one item
+ other: You can only select {{limit}} items
+ zero: You cannot select any items
+ project_menu_details: Details
+ sort:
+ sorted_asc: 'Ascending sort applied, '
+ sorted_dsc: 'Descending sort applied, '
+ sorted_no: 'No sort applied, '
+ sorting_disabled: sorting is disabled
+ activate_asc: activate to apply an ascending sort
+ activate_dsc: activate to apply a descending sort
+ activate_no: activate to remove the sort
+ text_work_packages_destroy_confirmation: Are you sure you want to delete the selected
+ work package(s)?
+ text_query_destroy_confirmation: Are you sure you want to delete the selected
+ view?
+ text_attachment_destroy_confirmation: Are you sure you want to delete the attachment?
+ timelines:
+ quarter_label: Q%{quarter_number}
+ gantt_chart: Gantt chart
+ labels:
+ title: Label configuration
+ bar: Bar labels
+ left: Left
+ right: Right
+ farRight: Far right
+ showNone: "-- No label --"
+ description: 'Select the attributes you want to be shown in the respective
+ positions of the Gantt chart at all times. Note that when hovering an element,
+ its date labels will be shown instead of these attributes.
+
+'
+ button_activate: Show Gantt chart
+ button_deactivate: Hide Gantt chart
+ cancel: Cancel
+ change: Change in planning
+ due_date: Finish date
+ empty: "(empty)"
+ error: An error has occurred.
+ errors:
+ not_implemented: The timeline could not be rendered because it uses a feature
+ that is not yet implemented.
+ report_comparison: The timeline could not render the configured comparisons.
+ Please check the appropriate section in the configuration, resetting it
+ can help solve this problem.
+ report_epicfail: The timeline could not be loaded due to an unexpected error.
+ report_timeout: The timeline could not be loaded in a reasonable amount of
+ time.
+ filter:
+ grouping_other: Other
+ noneSelection: "(none)"
+ name: Name
+ outline: Reset Outline
+ outlines:
+ aggregation: Show aggregations only
+ level1: Expand level 1
+ level2: Expand level 2
+ level3: Expand level 3
+ level4: Expand level 4
+ level5: Expand level 5
+ all: Show all
+ project_status: Project status
+ really_close_dialog: Do you really want to close the dialog and lose the entered
+ data?
+ responsible: Responsible
+ save: Save
+ start_date: Start date
+ tooManyProjects: More than %{count} Projects. Please use a better filter!
+ selection_mode:
+ notification: Click on any highlighted work package to create the relation.
+ Press escape to cancel.
+ zoom:
+ in: Zoom in
+ out: Zoom out
+ auto: Auto zoom
+ days: Days
+ weeks: Weeks
+ months: Months
+ quarters: Quarters
+ years: Years
+ slider: Zoom slider
+ description: 'Select the initial zoom level that should be shown when autozoom
+ is not available.
+
+'
+ tl_toolbar:
+ zooms: Zoom level
+ outlines: Hierarchy level
+ upsale:
+ ee_only: Enterprise Edition only feature
+ wiki_formatting:
+ strong: Strong
+ italic: Italic
+ underline: Underline
+ deleted: Deleted
+ code: Inline Code
+ heading1: Heading 1
+ heading2: Heading 2
+ heading3: Heading 3
+ unordered_list: Unordered List
+ ordered_list: Ordered List
+ quote: Quote
+ unquote: Unquote
+ preformatted_text: Preformatted Text
+ wiki_link: Link to a Wiki page
+ image: Image
+ work_packages:
+ bulk_actions:
+ move: Bulk move
+ edit: Bulk edit
+ copy: Bulk copy
+ delete: Bulk delete
+ button_clear: Clear
+ comment_added: The comment was successfully added.
+ comment_send_failed: An error has occurred. Could not submit the comment.
+ comment_updated: The comment was successfully updated.
+ confirm_edit_cancel: Are you sure you want to cancel editing the work package?
+ description_filter: Filter
+ description_enter_text: Enter text
+ description_options_hide: Hide options
+ description_options_show: Show options
+ error:
+ update_conflict_refresh: Click here to refresh the work package and update
+ to the newest version.
+ edit_prohibited: Editing %{attribute} is blocked for this work package. Either
+ this attribute is derived from relations (e.g, children) or otherwise not
+ configurable.
+ format:
+ date: "%{attribute} is no valid date - YYYY-MM-DD expected."
+ general: An error has occurred.
+ edit_attribute: "%{attribute} - Edit"
+ key_value: "%{key}: %{value}"
+ label_enable_multi_select: Enable multiselect
+ label_disable_multi_select: Disable multiselect
+ label_filter_add: Add filter
+ label_filter_by_text: Filter by text
+ label_options: Options
+ label_column_multiselect: 'Combined dropdown field: Select with arrow keys,
+ confirm selection with enter, delete with backspace'
+ message_error_during_bulk_delete: An error occurred while trying to delete work
+ packages.
+ message_successful_bulk_delete: Successfully deleted work packages.
+ message_successful_show_in_fullscreen: Click here to open this work package
+ in fullscreen view.
+ message_view_spent_time: Show spent time for this work package
+ message_work_package_read_only: Work package is locked in this status. No attribute
+ other than status can be altered.
+ no_value: No value
+ placeholder_filter_by_text: Subject, description, comments, ...
+ inline_create:
+ title: Click here to add a new work package to this list
+ create:
+ title: New work package
+ header: New %{type}
+ header_no_type: New work package (Type not yet set)
+ header_with_parent: 'New %{type} (Child of %{parent_type} #%{id})'
+ button: Create
+ copy:
+ title: Copy work package
+ hierarchy:
+ show: Show hierarchy mode
+ hide: Hide hierarchy mode
+ toggle_button: Click to toggle hierarchy mode.
+ leaf: Work package leaf at level %{level}.
+ children_collapsed: Hierarchy level %{level}, collapsed. Click to show the
+ filtered children
+ children_expanded: Hierarchy level %{level}, expanded. Click to collapse the
+ filtered children
+ faulty_query:
+ title: Work packages could not be loaded.
+ description: Your view is erroneous and could not be processed.
+ no_results:
+ title: No work packages to display.
+ description: Either none have been created or all work packages are filtered
+ out.
+ property_groups:
+ details: Details
+ people: People
+ estimatesAndTime: Estimates & Time
+ other: Other
+ properties:
+ assignee: Assignee
+ author: Author
+ createdAt: Created on
+ description: Description
+ date: Date
+ dueDate: Finish date
+ estimatedTime: Estimated time
+ spentTime: Spent time
+ category: Category
+ percentageDone: Percentage done
+ priority: Priority
+ projectName: Project
+ responsible: Responsible
+ startDate: Start date
+ status: Status
+ subject: Subject
+ title: Title
+ type: Type
+ updatedAt: Updated on
+ versionName: Version
+ version: Version
+ default_queries:
+ latest_activity: Latest activity
+ created_by_me: Created by me
+ assigned_to_me: Assigned to me
+ recently_created: Recently created
+ all_open: All open
+ summary: Summary
+ jump_marks:
+ pagination: Jump to table pagination
+ label_pagination: Click here to skip over the work packages table and go to
+ pagination
+ content: Jump to content
+ label_content: Click here to skip over the menu and go to the content
+ placeholders:
+ default: "-"
+ description: Click to enter description...
+ query:
+ column_names: Columns
+ group_by: Group results by
+ group: Group by
+ group_by_disabled_by_hierarchy: Group by is disabled due to the hierarchy
+ mode being active.
+ hierarchy_disabled_by_group_by: Hierarchy mode is disabled due to results
+ being grouped by %{column}.
+ sort_ascending: Sort ascending
+ sort_descending: Sort descending
+ move_column_left: Move column left
+ move_column_right: Move column right
+ hide_column: Hide column
+ insert_columns: Insert columns ...
+ filters: Filters
+ display_sums: Display Sums
+ confirm_edit_cancel: Are you sure you want to cancel editing the name of this
+ view? Title will be set back to previous value.
+ click_to_edit_query_name: Click to edit title of this view.
+ rename_query_placeholder: Name of this view
+ errors:
+ unretrievable_query: Unable to retrieve view from URL
+ not_found: There is no such view
+ duplicate_query_title: Name of this view already exists. Change anyway?
+ text_no_results: No matching views were found.
+ table:
+ configure_button: Configure work package table
+ summary: Table with rows of work package and columns of work package attributes.
+ text_inline_edit: Most cells of this table are buttons that activate inline-editing
+ functionality of that attribute.
+ text_sort_hint: With the links in the table headers you can sort, group, reorder,
+ remove and add table columns.
+ text_select_hint: Select boxes should be opened with 'ALT' and arrow keys.
+ table_configuration:
+ button: Configure this work package table
+ choose_display_mode: Display work packages as
+ modal_title: Work package table configuration
+ embedded_tab_disabled: This configuration tab is not available for the embedded
+ view you're editing.
+ default: default
+ display_settings: Display settings
+ default_mode: Flat list
+ hierarchy_mode: Hierarchy
+ hierarchy_hint: All filtered table results will be augmented with their ancestors.
+ Hierarchies can be expanded and collapsed.
+ display_sums_hint: Display sums of all summable attributes in a row below
+ the table results.
+ show_timeline_hint: Show an interactive gantt chart on the right side of the
+ table. You can change its width by dragging the divider between table and
+ gantt chart.
+ highlighting: Highlighting
+ highlighting_mode:
+ description: Highlight with color
+ none: No highlighting
+ inline: Highlighted attribute(s)
+ inline_all: All attributes
+ entire_row_by: Entire row by
+ status: Status
+ priority: Priority
+ type: Type
+ columns_help_text: Use the input above to add or remove columns to your table
+ view. You can drag and drop the columns to reorder them.
+ upsale:
+ attribute_highlighting: Need certain work packages to stand out from the
+ mass?
+ relation_columns: Need to see relations in the work package list?
+ check_out_link: Check out the Enterprise Edition.
+ relation_filters:
+ first_part: Show all work packages
+ second_part: the current work package
+ tabs:
+ overview: Overview
+ activity: Activity
+ relations: Relations
+ watchers: Watchers
+ attachments: Attachments
+ time_relative:
+ days: days
+ weeks: weeks
+ months: months
+ toolbar:
+ settings:
+ configure_view: Configure view ...
+ columns: Columns ...
+ sort_by: Sort by ...
+ group_by: Group by ...
+ display_sums: Display sums
+ display_hierarchy: Display hierarchy
+ hide_hierarchy: Hide hierarchy
+ hide_sums: Hide sums
+ save: Save
+ save_as: Save as ...
+ export: Export ...
+ visibility_settings: Visibility settings ...
+ page_settings: Rename view ...
+ delete: Delete
+ filter: Filter
+ unselected_title: Work package
+ search_query_label: Search saved views
+ search_query_title: Click to search saved views
+ placeholder_query_title: Set a title for this view
+ modals:
+ label_settings: Rename view
+ label_name: Name
+ label_delete_page: Delete current page
+ button_apply: Apply
+ button_save: Save
+ button_submit: Submit
+ button_cancel: Cancel
+ form_submit:
+ title: Confirm to continue
+ text: Are you sure you want to perform this action?
+ destroy_work_package:
+ title: Confirm deletion of %{label}
+ text: Are you sure you want to delete the following %{label} ?
+ has_children: 'The work package has %{childUnits}:'
+ confirm_deletion_children: I acknowledge that ALL descendants of the listed
+ work packages will be recursively removed.
+ deletes_children: All child work packages and their descendants will also
+ be recursively deleted.
+ notice_successful_create: Successful creation.
+ notice_successful_delete: Successful deletion.
+ notice_successful_update: Successful update.
+ notice_bad_request: Bad Request.
+ relations:
+ empty: No relation exists
+ remove: Remove relation
+ inplace:
+ button_edit: "%{attribute}: Edit"
+ button_save: "%{attribute}: Save"
+ button_cancel: "%{attribute}: Cancel"
+ button_save_all: Save
+ button_cancel_all: Cancel
+ link_formatting_help: Text formatting help
+ btn_preview_enable: Preview
+ btn_preview_disable: Disable preview
+ null_value_label: No value
+ clear_value_label: "-"
+ errors:
+ required: "%{field} cannot be empty"
+ number: "%{field} is not a valid number"
+ maxlength: "%{field} cannot contain more than %{maxLength} digit(s)"
+ minlength: "%{field} cannot contain less than %{minLength} digit(s)"
+ messages_on_field: 'This field is invalid: %{messages}'
+ error_could_not_resolve_version_name: Couldn't resolve version name
+ error_could_not_resolve_user_name: Couldn't resolve user name
+ error_attachment_upload: 'File failed to upload: %{error}'
+ error_attachment_upload_permission: You don't have the permission to upload files
+ on this resource.
+ units:
+ workPackage:
+ one: work package
+ other: work packages
+ child_work_packages:
+ one: one child work package
+ other: "%{count} work package children"
+ hour:
+ one: 1 hour
+ other: "%{count} hours"
+ zero: 0 hours
+ zen_mode:
+ button_activate: Activate zen mode
+ button_deactivate: Deactivate zen mode
+ global_search:
+ all_projects: In all projects
+ search: Search
+ close_search: Close search
+ current_project: In this project
+ current_project_and_all_descendants: In this project + subprojects
+ title:
+ all_projects: all projects
+ project_and_subprojects: and all subprojects
+ search_for: Search for
diff --git a/config/locales/crowdin/js-nl.yml b/config/locales/crowdin/js-nl.yml
index 6768916e29..db6fc959cf 100644
--- a/config/locales/crowdin/js-nl.yml
+++ b/config/locales/crowdin/js-nl.yml
@@ -152,26 +152,26 @@ nl:
general_text_Yes: Ja
grid:
add_modal:
- choose_widget: Choose widget
+ choose_widget: Widget kiezen
widgets:
documents:
- title: Documents
- no_results: No documents yet.
+ title: Documenten
+ no_results: Geen documenten.
news:
title: Nieuws
- at: at
+ at: bij
no_results: Niets nieuws om te rapporteren.
time_entries_current_user:
- title: Spent time (last 7 days)
- no_results: No time entries for the last 7 days.
+ title: Besteed tijd (laatste 7 dagen)
+ no_results: Geen tijd items voor de afgelopen 7 dagen.
work_packages_accountable:
title: Werkpakketten waar ik verantwoordelijk voor ben
work_packages_assigned:
title: Werkpakketten toegewezen aan mij
work_packages_created:
- title: Work packages created by me
+ title: Werkpakketten gemaakt door mij werk werk
work_packages_watched:
- title: Work packages watched by me
+ title: Werkpakketten bekeken door mij
work_packages_calendar:
title: Agenda
label_activate: Activeren
diff --git a/config/locales/crowdin/js-no.yml b/config/locales/crowdin/js-no.yml
index 832f3950c5..75bb7667d0 100644
--- a/config/locales/crowdin/js-no.yml
+++ b/config/locales/crowdin/js-no.yml
@@ -152,7 +152,7 @@
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: Dokumenter
no_results: No documents yet.
news:
title: Nyheter
diff --git a/config/locales/crowdin/js-pl.yml b/config/locales/crowdin/js-pl.yml
index a45e26f565..5861655857 100644
--- a/config/locales/crowdin/js-pl.yml
+++ b/config/locales/crowdin/js-pl.yml
@@ -150,26 +150,26 @@ pl:
general_text_Yes: Tak
grid:
add_modal:
- choose_widget: Choose widget
+ choose_widget: Wybierz widżet
widgets:
documents:
- title: Documents
- no_results: No documents yet.
+ title: Dokumenty
+ no_results: Nie ma jeszcze dokumentów.
news:
title: Aktualności
- at: at
+ at: w
no_results: Utwórz nowy raport.
time_entries_current_user:
- title: Spent time (last 7 days)
- no_results: No time entries for the last 7 days.
+ title: Poświęcony czas (ostatnie 7 dni)
+ no_results: Brak zarejestrowanego czasu pracy w ostatnich 7 dniach.
work_packages_accountable:
title: Pakiety robocze, za które odpowiadam
work_packages_assigned:
title: Zadania przypisane do mnie
work_packages_created:
- title: Work packages created by me
+ title: Pakiety robocze stworzone przeze mnie
work_packages_watched:
- title: Work packages watched by me
+ title: Pakiety robocze obserwowane przeze mnie
work_packages_calendar:
title: Kalendarz
label_activate: Aktywuj
@@ -510,7 +510,7 @@ pl:
text_query_destroy_confirmation: Czy na pewno chcesz usunąć zaznaczony widok?
text_attachment_destroy_confirmation: Jesteś pewien, że chcesz usunąć ten załącznik?
timelines:
- quarter_label: Q%{quarter_number}
+ quarter_label: Kwartał%{quarter_number}
gantt_chart: Wykres Gantta
labels:
title: Konfiguracja etykiety
@@ -883,7 +883,7 @@ pl:
search: Szukaj
close_search: Zakończ wyszukiwanie
current_project: W tym projekcie
- current_project_and_all_descendants: W tym projekcie + podprojekcie
+ current_project_and_all_descendants: W tym projekcie + pod projekcie
title:
all_projects: Wszystkie projekty
project_and_subprojects: i wszystkie podprojekty
diff --git a/config/locales/crowdin/js-pt-BR.yml b/config/locales/crowdin/js-pt-BR.yml
index 46d049c0d2..c58eb14606 100644
--- a/config/locales/crowdin/js-pt-BR.yml
+++ b/config/locales/crowdin/js-pt-BR.yml
@@ -154,26 +154,26 @@ pt-BR:
general_text_Yes: Sim
grid:
add_modal:
- choose_widget: Choose widget
+ choose_widget: Escolher widget
widgets:
documents:
- title: Documents
- no_results: No documents yet.
+ title: Documentos
+ no_results: Nenhum documento ainda.
news:
title: Notícias
- at: at
+ at: em
no_results: Nada de novo para relatar.
time_entries_current_user:
- title: Spent time (last 7 days)
- no_results: No time entries for the last 7 days.
+ title: Tempo gasto (últimos 7 dias)
+ no_results: Não há entradas de tempo nos últimos 7 dias.
work_packages_accountable:
title: Pacotes de trabalho sob minha responsabilidade
work_packages_assigned:
title: Pacotes de trabalho atribuídos a mim
work_packages_created:
- title: Work packages created by me
+ title: Pacotes de trabalho criados por mim
work_packages_watched:
- title: Work packages watched by me
+ title: Pacotes de trabalho observados por mim
work_packages_calendar:
title: Calendário
label_activate: Ativar
diff --git a/config/locales/crowdin/js-pt.yml b/config/locales/crowdin/js-pt.yml
index c16b9bb96b..973b280e8a 100644
--- a/config/locales/crowdin/js-pt.yml
+++ b/config/locales/crowdin/js-pt.yml
@@ -151,24 +151,24 @@ pt:
general_text_Yes: Sim
grid:
add_modal:
- choose_widget: Choose widget
+ choose_widget: Escolher widget
widgets:
documents:
- title: Documents
+ title: Documentos
no_results: No documents yet.
news:
title: Noticias
at: at
no_results: Nada de novo no relatório.
time_entries_current_user:
- title: Spent time (last 7 days)
- no_results: No time entries for the last 7 days.
+ title: Tempo gasto (últimos 7 dias)
+ no_results: Não há entradas de tempo nos últimos 7 dias.
work_packages_accountable:
title: Pacotes de trabalho pelos quais sou responsável
work_packages_assigned:
title: Tarefas atribuídas a mim
work_packages_created:
- title: Work packages created by me
+ title: Pacotes de trabalho criados por mim
work_packages_watched:
title: Work packages watched by me
work_packages_calendar:
diff --git a/config/locales/crowdin/js-sk.yml b/config/locales/crowdin/js-sk.yml
index 2210179641..916a1acbd9 100644
--- a/config/locales/crowdin/js-sk.yml
+++ b/config/locales/crowdin/js-sk.yml
@@ -151,26 +151,26 @@ sk:
general_text_Yes: Áno
grid:
add_modal:
- choose_widget: Choose widget
+ choose_widget: Vyberte miniaplikáciu
widgets:
documents:
- title: Documents
- no_results: No documents yet.
+ title: Dokumenty
+ no_results: Zatiaľ žiadne dokumenty.
news:
title: Novinky
- at: at
+ at: o
no_results: Nič nové pre nahlásenie.
time_entries_current_user:
- title: Spent time (last 7 days)
- no_results: No time entries for the last 7 days.
+ title: Strávený čas (posledných 7 dní)
+ no_results: Žiadne časové záznamy za posledných 7 dní.
work_packages_accountable:
title: Pracovné balíčky, za ktoré som zodpovedný(a)
work_packages_assigned:
title: Mne priradené pracovné balíčky
work_packages_created:
- title: Work packages created by me
+ title: Pracovné balíčky vytvorené mnou
work_packages_watched:
- title: Work packages watched by me
+ title: Pracovné balíčky sledované mnou
work_packages_calendar:
title: Kalendár
label_activate: Aktivovať
diff --git a/config/locales/crowdin/js-sv-SE.yml b/config/locales/crowdin/js-sv-SE.yml
index 44f10834d0..f19b1e8009 100644
--- a/config/locales/crowdin/js-sv-SE.yml
+++ b/config/locales/crowdin/js-sv-SE.yml
@@ -155,7 +155,7 @@ sv-SE:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: Dokument
no_results: No documents yet.
news:
title: Nyheter
diff --git a/config/locales/crowdin/js-th.yml b/config/locales/crowdin/js-th.yml
index 5d56c483ea..8a6a7d1d4a 100644
--- a/config/locales/crowdin/js-th.yml
+++ b/config/locales/crowdin/js-th.yml
@@ -198,7 +198,7 @@ th:
label_date: วันที่
label_date_with_format: 'Enter the %{date_attribute} using the following format:
%{format}'
- label_deactivate: Deactivate
+ label_deactivate: ปิดใช้งาน
label_descending: มากไปน้อย
label_description: คำอธิบาย
label_cancel_comment: Cancel comment
@@ -241,8 +241,8 @@ th:
label_my_page: หน้าของฉัน
label_next: ถัดไป
label_no_data: ไม่มีข้อมูลให้แสดง
- label_no_due_date: no end date
- label_no_start_date: no start date
+ label_no_due_date: ไม่มีวันสิ้นสุด
+ label_no_start_date: ไม่มีวันเริ่มต้น
label_none: ไม่มี
label_not_contains: ไม่ประกอบด้วยการ
label_not_equals: ไม่
@@ -252,7 +252,7 @@ th:
label_open_work_packages: เปิด
label_password: รหัสผ่าน
label_previous: ก่อนหน้านี้
- label_per_page: 'Per page:'
+ label_per_page: ต่อหน้า
label_please_wait: กรุณารอสักครู่
label_visibility_settings: Visibility settings
label_quote_comment: Quote this comment
@@ -266,14 +266,14 @@ th:
label_show_attributes: Show all attributes
label_show_in_menu: Show view in menu
label_sort_by: เรียงลำดับโดย
- label_sorted_by: sorted by
+ label_sorted_by: เรียงลำดับตาม
label_sort_higher: เลื่อนขึ้น
label_sort_lower: เลื่อนลง
- label_sorting: Sorting
+ label_sorting: การเรียงลำดับ
label_star_query: Favored
label_press_enter_to_save: Press enter to save.
label_public_query: สาธารณะ
- label_sum_for: Sum for
+ label_sum_for: ผลรวมสำหรับ
label_subject: หัวข้อ
label_this_week: สัปดาห์นี้
label_today: วันนี้
@@ -294,7 +294,7 @@ th:
%{subject}.
label_unwatch: ไม่เข้าชม
label_unwatch_work_package: Unwatch work package
- label_uploaded_by: Uploaded by
+ label_uploaded_by: อัปโหลดโดย
label_default_queries: Default views
label_starred_queries: Favorite views
label_global_queries: Public views
@@ -437,7 +437,7 @@ th:
relation_labels:
parent: ค่าหลัก
children: Children
- relates: Related To
+ relates: ที่เกี่ยวข้องกับ
duplicates: Duplicates
duplicated: Duplicated by
blocks: บล็อก
@@ -635,7 +635,7 @@ th:
message_view_spent_time: Show spent time for this work package
message_work_package_read_only: Work package is locked in this status. No attribute
other than status can be altered.
- no_value: No value
+ no_value: ไม่มีค่า
placeholder_filter_by_text: Subject, description, comments, ...
inline_create:
title: Click here to add a new work package to this list
@@ -831,27 +831,27 @@ th:
notice_successful_update: ปรับปรุงข้อมูลเรียบร้อยแล้ว
notice_bad_request: คำขอไม่ถูกต้อง
relations:
- empty: No relation exists
+ empty: ไม่มีความสัมพันธ์
remove: Remove relation
inplace:
- button_edit: "%{attribute}: Edit"
- button_save: "%{attribute}: Save"
- button_cancel: "%{attribute}: Cancel"
+ button_edit: "%{attribute}: แก้ไข"
+ button_save: "%{attribute}: บันทึก"
+ button_cancel: "%{attribute}: ยกเลิก"
button_save_all: บันทึก
button_cancel_all: ยกเลิก
link_formatting_help: Text formatting help
btn_preview_enable: แสดงตัวอย่าง
- btn_preview_disable: Disable preview
- null_value_label: No value
+ btn_preview_disable: ปิดใช้งานตัวอย่าง
+ null_value_label: ไม่มีค่า
clear_value_label: "-"
errors:
- required: "%{field} cannot be empty"
- number: "%{field} is not a valid number"
+ required: ฟิลด์ %{field} ต้องไม่ว่างเปล่า
+ number: "%{field} ไม่ใช่หมายเลขที่ถูกต้อง"
maxlength: "%{field} cannot contain more than %{maxLength} digit(s)"
minlength: "%{field} cannot contain less than %{minLength} digit(s)"
messages_on_field: 'This field is invalid: %{messages}'
- error_could_not_resolve_version_name: Couldn't resolve version name
- error_could_not_resolve_user_name: Couldn't resolve user name
+ error_could_not_resolve_version_name: ไม่สามารถแก้ไขเวอร์ชัน
+ error_could_not_resolve_user_name: ไม่สามารถแก้ไขชื่อผู้ใช้
error_attachment_upload: 'File failed to upload: %{error}'
error_attachment_upload_permission: You don't have the permission to upload files
on this resource.
@@ -864,7 +864,7 @@ th:
other: "%{count} work package children"
hour:
one: 1 hour
- other: "%{count} hours"
+ other: "%{count} ชั่วโมง"
zero: 0 hours
zen_mode:
button_activate: Activate zen mode
diff --git a/config/locales/crowdin/js-tr.yml b/config/locales/crowdin/js-tr.yml
index caf0237a51..80d50d4b1e 100644
--- a/config/locales/crowdin/js-tr.yml
+++ b/config/locales/crowdin/js-tr.yml
@@ -5,8 +5,8 @@ tr:
hide: Gizle
loading: Yükleniyor ...
attachments:
- draggable_hint: 'Drag on editor field to inline image or reference attachment.
- Closed editor fields will be opened while you keep dragging.
+ draggable_hint: 'Editör alanında, satır içi görüntüye veya referans ekine sürükleyin.
+ Sürüklemeye devam ederken kapalı editör alanları açılacaktır.
'
autocomplete_select:
@@ -74,45 +74,45 @@ tr:
macro:
child_pages:
button: Alt sayfalara bağlantılar
- include_parent: Include parent
+ include_parent: Üst öğeyi dahil et
text: "[Placeholder] Alt sayfalara bağlantılar"
page: Viki sayfası
this_page: bu sayfa
- hint: 'Leave this field empty to list all child pages of the current page.
- If you want to reference a different page, provide its title or slug.
+ hint: 'Geçerli sayfanın tüm alt sayfalarını listelemek için bu alanı boş
+ bırakın. Farklı bir sayfaya referans vermek istiyorsanız, başlığını veya
+ fişini belirtin.
'
code_block:
button: Kod parçacığı ekle
title: Kod parçacığını ekle / düzenle
language: Biçimlendirme dili
- language_hint: Enter the formatting language that will be used for highlighting
- (if supported).
+ language_hint: Vurgulamak için kullanılacak formatlama dilini girin (destekleniyorsa).
dropdown:
macros: Makrolar
chose_macro: Makro seçin
toc: İçindekiler
- toolbar_help: Click to select widget and show the toolbar. Double-click to
- edit widget
+ toolbar_help: Widget'ı seçmek ve araç çubuğunu göstermek için tıklayın. Widget'ı
+ düzenlemek için çift tıklayın
wiki_page_include:
- button: Include content of another wiki page
- text: "[Placeholder] Included wiki page of"
+ button: Başka bir wiki sayfasının içeriğini ekle
+ text: "[Placeholder] Dahil edilen wiki sayfası"
page: Viki sayfası
not_set: "(Sayfa ayarlanmadı)"
hint: |
- Include the content of another wiki page by specifying its title or slug.
- You can include the wiki page of another project by separating them with a colon like the following example.
+ Başlığını veya sümüklü böcek belirterek başka bir wiki sayfasının içeriğini ekleyin.
+ Başka bir projenin wiki sayfasını, aşağıdaki örnekte olduğu gibi iki nokta ile ayırarak ekleyebilirsiniz.
work_package_button:
- button: Insert create work package button
+ button: Çalışma paketi yarat düğmesi ekle
type: İş paketi tipi
button_style: Düğme biçimini kullan
- button_style_hint: 'Optional: Check to make macro appear as a button, not
- as a link.'
+ button_style_hint: 'İsteğe bağlı: Makronun bağlantı olarak değil, düğme
+ olarak görünmesini sağlayın.'
without_type: İş paketini oluştur
with_type: İş paketini oluştur (Tür %{typename})
embedded_table:
button: Gömülü iş paketi tablosu
- text: "[Placeholder] Embedded work package table"
+ text: "[Yer Tutucu] Gömülü iş paketi tablosu"
embedded_calendar:
text: "[Placeholder] Göümülü takvim"
custom_actions:
@@ -124,7 +124,7 @@ tr:
cannot_save_changes_with_message: 'Değişikliklerinizin kaydedilememesine sebep
olan hata: %{error}'
query_saving: Görünüm kaydedilemedi.
- embedded_table_loading: 'The embedded view could not be loaded: %{message}'
+ embedded_table_loading: 'Gömülü görünüm yüklenemedi: %{message}'
filter:
description:
text_open_filter: Bu filtreyi 'ALT' ve ok tuşları ile açın.
@@ -149,18 +149,18 @@ tr:
general_text_Yes: Evet
grid:
add_modal:
- choose_widget: Choose widget
+ choose_widget: Widget seç
widgets:
documents:
title: Belgeler
no_results: Henüz belge yok.
news:
title: Haberler
- at: at
+ at: en
no_results: Rapor için yeni birşey bulunamadı.
time_entries_current_user:
- title: Spent time (last 7 days)
- no_results: No time entries for the last 7 days.
+ title: Harcanan zaman (son 7 gün)
+ no_results: Son 7 güne zaman girişi yok.
work_packages_accountable:
title: Sorumlusu olduğum iş paketleri
work_packages_assigned:
@@ -272,7 +272,7 @@ tr:
label_sort_higher: Yukarı taşı
label_sort_lower: Aşağı taşı
label_sorting: Sıralama
- label_star_query: Favored
+ label_star_query: avantajlı
label_press_enter_to_save: Kaydetmek için enter tuşuna basın.
label_public_query: Herkese Açık
label_sum_for: Toplam
@@ -334,43 +334,42 @@ tr:
welcome: En önemli özellikleri öğrenmek için üç dakikalık bir tanıtım
gezintisine çıkın.
Tüm adımları tamamlamanızı öneririz. Turu istediğiniz
zaman yeniden başlatabilirsiniz.
- project_selection: Please select one of the projects with useful demo data
- to get started.
The Demo project suits best for classical project
- management, while the Scrum project is better for Agile project management.
- sidebar_arrow: With the arrow you can navigate back to the project's Main
- menu.
- members: Invite new Members to join your project.
- wiki: Within the Wiki you can document and share knowledge together
- with your team.
- backlogs_overview: Manage your work in the Backlogs view.
On the
- right you have the Product Backlog or a Bug Backlog, on the left you will
- have the respective sprints. Here you can create epics, user stories,
- and bugs, prioritize via drag'n'drop and add them to a sprint.
- backlogs_task_board_arrow: To see your Task board, open the Sprint
- drop-down...
- backlogs_task_board_select: "... and select the Task board entry."
- backlogs_task_board: The Task board visualizes the progress for this
- sprint. Add new tasks or impediments with the + icon next to a user story.
- Via drag'n'drop you can update the status.
- wp_toggler: Now let's have a look at the Work package section, which
- gives you a more detailed view of your work.
- wp_list: This is the Work package list with the important work within
- your project, such as tasks, features, milestones, bugs, and more.
- You can create or edit a work package directly within this list. To see
- its details you can double click on a row.
- wp_full_view: Within the Work package details you find all relevant
- information, such as description, status and priority, activities, dependencies
- or comments.
- wp_back_button: With the arrow you can navigate back to the work package list.
- wp_create_button: The Create button will add a new work package to
- your project.
- wp_timeline_button: You can activate the Gantt chart to create a timeline
- for your project.
- wp_timeline: Here you can edit your project plan. Create new phases, milestones,
- and add dependencies. All team members can see and update the latest plan
- at any time.
- help_menu: In the Help menu you will find a user guide and additional
- help resources.
Enjoy your work with OpenProject!
+ project_selection: Başlamak için lütfen faydalı demo verileri olan projelerden
+ birini seçin.
Demo proje klasik proje yönetimi için en iyisidir,
+ Scrum projesi Çevik proje yönetimi için daha iyidir.
+ sidebar_arrow: Ok işereti ile projenin Ana menüsüne geri dönebilirsiniz.
+ members: Projenize katılmak için yeni Üyeler davet edin.
+ wiki: " Wiki içerisinde bilgileri ekibinizle birlikte belgeleyebilir
+ ve paylaşabilirsiniz."
+ backlogs_overview: Çalışmanızı İş Listeleri görünümünde yönetin.
+
Sağda, Ürün İş Listesi veya bir Hata İş Listesi bulunur, solda ilgili
+ bölümlere sahip olursunuz. Burada, destanlar, kullanıcı hikayeleri ve
+ hatalar yaratabilir, drag'n'drop ile önceliklendirme yapabilir ve bunları
+ bir sprint'e ekleyebilirsiniz.
+ backlogs_task_board_arrow: " Görev tahtası nızı görmek için Sprint
+ açılır menüsünü açın ..."
+ backlogs_task_board_select: "... ve Görev tahtası kayıtlarını seçin."
+ backlogs_task_board: " Görev panosu bu sprint için kaydedilen ilerlemeyi
+ gösterir. Bir kullanıcı hikayesinin yanındaki + simgesi ile yeni görevler
+ veya engeller ekleyin. Sürükle ve bırak özelliği ile durumu güncelleyebilirsiniz."
+ wp_toggler: Şimdi, size çalışmanız hakkında daha ayrıntılı bir görünüm sağlayan
+ İş paketi bölümüne göz atalım.
+ wp_list: Bu, projenizdeki görevler, özellikler, kilometre taşları, hatalar
+ ve daha fazlası gibi önemli çalışmaların yer aldığı İş paketi listesidir.
+
Bir çalışma paketini doğrudan bu listeden oluşturabilir veya düzenleyebilirsiniz.
+ Detaylarını görmek için bir satır üzerine çift tıklayabilirsiniz.
+ wp_full_view: " İş paketi ayrıntıları 'nda açıklama, durum ve öncelik,
+ etkinlikler, bağımlılıklar veya yorumlar gibi tüm ilgili bilgileri bulabilirsiniz."
+ wp_back_button: Ok işareti ile iş paketi listesine geri dönebilirsiniz.
+ wp_create_button: " Oluştur düğmesi, projenize yeni bir iş paketi
+ ekler."
+ wp_timeline_button: Projeniz için bir zaman çizelgesi oluşturmak için
+ Gantt şeması 'nı etkinleştirebilirsiniz.
+ wp_timeline: Burada proje planınızı düzenleyebilirsiniz. Yeni aşamalar, kilometre
+ taşları oluşturun ve bağımlılıklar ekleyin. Tüm ekip üyeleri en son planı
+ istedikleri zaman görebilir ve güncelleyebilir.
+ help_menu: " Yardım menüsünde bir kullanım kılavuzu ve ek yardım kaynakları
+ bulacaksınız.
OpenProject ile çalışmanın tadını çıkarın!"
password_confirmation:
field_description: Bu değişikliği onaylamak için hesap parolanızı girmeniz gerekir.
title: Devam etmek için parolanızı doğrulayın
@@ -397,11 +396,11 @@ tr:
attribute_groups:
error_duplicate_group_name: "%{group} ismi birden fazla kullanıldı. Grup isimleri
eşsiz olmalıdır."
- error_no_table_configured: Please configure a table for %{group}.
+ error_no_table_configured: Lütfen %{group} için bir tablo yapılandırın.
reset_title: Form ayarlarlarını sıfırlayın
- confirm_reset: 'Warning: Are you sure you want to reset the form configuration?
- This will reset the attributes to their default group and disable ALL custom
- fields.
+ confirm_reset: 'Uyarı: Form yapılandırmasını sıfırlamak istediğinizden emin
+ misiniz? Bu, nitelikleri varsayılan gruplarına sıfırlar ve TÜM özel alanları
+ devre dışı bırakır.
'
upgrade_to_ee: Enterprise Edition sürümüne yükseltme
@@ -412,17 +411,17 @@ tr:
more_information: Daha fazla bilgi
nevermind: Boşver
filter_types:
- parent: being child of
- precedes: preceding
+ parent: çocuğu olmak
+ precedes: önceki
follows: takip etmek
- relates: relating to
- duplicates: duplicating
+ relates: ile ilgili
+ duplicates: çoğaltmak
duplicated: tarafından çoğaltılır
blocks: engelleme
blocked: bağlı
- partof: being part of
- includes: including
- requires: requiring
+ partof: parçası olmak
+ includes: dahil olmak üzere
+ requires: gerektiren
required: tarafından gerekli
time_entry:
activity: Etkinlik
@@ -524,8 +523,8 @@ tr:
özellikleri yerine etiketinin görüneceğini unutmayın.
'
- button_activate: Show Gantt chart
- button_deactivate: Hide Gantt chart
+ button_activate: İş-Zaman çizelgesi göster
+ button_deactivate: İş-Zaman çizelgesi gizle.
cancel: İptal
change: Planlama değişikliği
due_date: Bitiş tarihi
@@ -573,8 +572,8 @@ tr:
quarters: Üç aylık
years: Yıl
slider: Yakınlaştırma kaydırıcısı
- description: 'Select the initial zoom level that should be shown when autozoom
- is not available.
+ description: 'Otomatik zoom mevcut olmadığında gösterilmesi gereken ilk yakınlaştırma
+ seviyesini seçin.
'
tl_toolbar:
@@ -662,7 +661,7 @@ tr:
bileşenleri gizlemek için tıklayın
faulty_query:
title: İş paketleri yüklenemiyor.
- description: Your view is erroneous and could not be processed.
+ description: Görüşün hatalı ve işlenemedi.
no_results:
title: Görüntülecek bir iş paketi bulunmuyor.
description: Ya hiç iş paketi oluşturulmamış, ya da tüm iş paketeri filtrelenmiş.
@@ -725,12 +724,12 @@ tr:
insert_columns: Sütun ekle ...
filters: Filtreler
display_sums: Toplamları görüntüle
- confirm_edit_cancel: Are you sure you want to cancel editing the name of this
- view? Title will be set back to previous value.
+ confirm_edit_cancel: Bu görünümün adını düzenlemeyi iptal etmek istediğinizden
+ emin misiniz? Başlık önceki değere ayarlanacaktır.
click_to_edit_query_name: Bu görünümün başlığını düzenlemek için tıklayın.
rename_query_placeholder: Bu görünümüm adı
errors:
- unretrievable_query: Unable to retrieve view from URL
+ unretrievable_query: URL’den görünüm alınamadı
not_found: Böyle bir görünüm bulunmamakta
duplicate_query_title: Bu isimde bir görünüm var. Yinede devam edilsin mi?
text_no_results: Eşleşen görünüm bulunamadı.
@@ -744,36 +743,35 @@ tr:
text_select_hint: Seçim kutuları 'ALT' ve ok tuşları ile açılmalıdır.
table_configuration:
button: Bu iş paketi tablosunu yapılandır
- choose_display_mode: Display work packages as
+ choose_display_mode: İş paketlerini farklı olarak göster
modal_title: İş paketi tablosu yapılandırma
- embedded_tab_disabled: This configuration tab is not available for the embedded
- view you're editing.
+ embedded_tab_disabled: Bu yapılandırma sekmesi, düzenlemekte olduğunuz katıştırılmış
+ görünüm için kullanılamaz.
default: varsayılan
display_settings: Görünüm ayarları
default_mode: Düz liste
hierarchy_mode: Hiyerarşi
- hierarchy_hint: All filtered table results will be augmented with their ancestors.
- Hierarchies can be expanded and collapsed.
- display_sums_hint: Display sums of all summable attributes in a row below
- the table results.
- show_timeline_hint: Show an interactive gantt chart on the right side of the
- table. You can change its width by dragging the divider between table and
- gantt chart.
+ hierarchy_hint: Filtrelenen tüm tablo sonuçları atalarıyla artırılacaktır.
+ Hiyerarşiler genişletilebilir ve daraltılabilir.
+ display_sums_hint: Tüm toplanabilir özelliklerin toplamlarını, tablonun sonuçlarının
+ altındaki bir satırda görüntüleyin.
+ show_timeline_hint: Tablonun sağ tarafında etkileşimli bir gantt grafiği göster.
+ Tablo ve gantt tablosu arasındaki bölücüyü sürükleyerek genişliğini değiştirebilirsiniz.
highlighting: Vurgulama
highlighting_mode:
description: Rekle vurgula
none: Vurgulama
inline: Vurgulanan öznitelik(ler)
inline_all: Tüm öznitelikler
- entire_row_by: Entire row by
+ entire_row_by: Tüm satır tarafından
status: Durum
priority: Öncelik
type: Tür
- columns_help_text: Use the input above to add or remove columns to your table
- view. You can drag and drop the columns to reorder them.
+ columns_help_text: Tablo görünümünüze sütun eklemek veya kaldırmak için yukarıdaki
+ girişi kullanın. Yeniden düzenlemek için sütunları sürükleyip bırakabilirsiniz.
upsale:
- attribute_highlighting: Need certain work packages to stand out from the
- mass?
+ attribute_highlighting: Kitleden sıyrılmak için bazı iş paketlerine mi ihtiyacınız
+ var?
relation_columns: İş paketleri listesindeki ilişkileri görmek ister misiniz?
check_out_link: Enterprise sürüme bakın.
relation_filters:
@@ -825,10 +823,9 @@ tr:
title: "%{label} için silme işlimini onaylayın"
text: "%{label} silinecek. Emin misiniz?"
has_children: 'İş paketi %{childUnits} alt paketlerine sahip:'
- confirm_deletion_children: I acknowledge that ALL descendants of the listed
- work packages will be recursively removed.
- deletes_children: All child work packages and their descendants will also
- be recursively deleted.
+ confirm_deletion_children: Listelenen iş paketlerinin TÜM soylarının tekrar
+ tekrar kaldırılacağını kabul ediyorum.
+ deletes_children: Tüm çocuk iş paketleri ve torunları da tekrar tekrar silinir.
notice_successful_create: Oluşturma başarılı.
notice_successful_delete: Silme başarılı.
notice_successful_update: Güncelleme başarılı.
@@ -880,4 +877,4 @@ tr:
title:
all_projects: tüm projeler
project_and_subprojects: ve tüm alt projeler
- search_for: Search for
+ search_for: Aramak
diff --git a/config/locales/crowdin/js-uk.yml b/config/locales/crowdin/js-uk.yml
index 8042f8fbe5..59d1ec90f5 100644
--- a/config/locales/crowdin/js-uk.yml
+++ b/config/locales/crowdin/js-uk.yml
@@ -38,7 +38,7 @@ uk:
button_duplicate: Duplicate
button_edit: Edit
button_filter: Filter
- button_advanced_filter: Advanced filter
+ button_advanced_filter: Розширений фільтр
button_list_view: Подання списком
button_show_view: Повноекранний режим
button_log_time: Log time
@@ -150,39 +150,39 @@ uk:
general_text_Yes: 'Yes'
grid:
add_modal:
- choose_widget: Choose widget
+ choose_widget: Оберіть віджет
widgets:
documents:
- title: Documents
- no_results: No documents yet.
+ title: Документи
+ no_results: Ще немає документів.
news:
title: News
- at: at
+ at: на
no_results: Nothing new to report.
time_entries_current_user:
- title: Spent time (last 7 days)
- no_results: No time entries for the last 7 days.
+ title: Витрачений час (останні 7 днів)
+ no_results: Немає записів часу за останні 7 днів.
work_packages_accountable:
title: Work packages I am accountable for
work_packages_assigned:
title: Work packages assigned to me
work_packages_created:
- title: Work packages created by me
+ title: Пакети робіт створені мною
work_packages_watched:
- title: Work packages watched by me
+ title: Пакети робіт переглянуті мною
work_packages_calendar:
title: Calendar
label_activate: Activate
label_activity_no: Запис активності номер %{activityNo}
label_activity_with_comment_no: Запис активності номер %{activityNo}. Має коментар
користувача.
- label_add_column_after: Add column after
- label_add_column_before: Add column before
+ label_add_column_after: Додати стовпець після
+ label_add_column_before: Додати стовпець перед
label_add_columns: Add columns
label_add_comment: Додати коментар
label_add_comment_title: Comment and type @ to notify other people
- label_add_row_after: Add row after
- label_add_row_before: Add row before
+ label_add_row_after: Додати рядок після
+ label_add_row_before: Додати рядок перед
label_add_selected_columns: Add selected columns
label_added_by: додав(-ла)
label_added_time_by: Додав(-ла) %{author} %{age}
@@ -259,9 +259,9 @@ uk:
label_visibility_settings: Visibility settings
label_quote_comment: Цитувати цей коментар
label_reset: Reset
- label_remove_column: Remove column
+ label_remove_column: Видалити стовпець
label_remove_columns: Remove selected columns
- label_remove_row: Remove row
+ label_remove_row: Видалити рядок
label_save_as: Зберегти як
label_select_watcher: Виберіть спостерігача...
label_selected_filter_list: Вибрані фільтри
@@ -283,7 +283,7 @@ uk:
label_activity_show_only_comments: Show activities with comments only
label_activity_show_all: Show all activities
label_total_progress: "%{percent}% загального прогресу"
- label_total_amount: 'Total: %{amount}'
+ label_total_amount: 'Всього: %{amount}'
label_updated_on: оновлено
label_warning: Warning
label_work_package: Work package
@@ -632,7 +632,7 @@ uk:
label_enable_multi_select: Дозволити мультивибір
label_disable_multi_select: Не дозволяти мультивибір
label_filter_add: Add filter
- label_filter_by_text: Filter by text
+ label_filter_by_text: Фільтрування за текстом
label_options: Options
label_column_multiselect: 'Поле комбінованого випадаючого списку: виділіть за
допомогою клавіш зі стрілками, підтвердьте вибір з Enter, видаліть з Backspace'
@@ -645,7 +645,7 @@ uk:
message_work_package_read_only: Work package is locked in this status. No attribute
other than status can be altered.
no_value: Значення відсутнє
- placeholder_filter_by_text: Subject, description, comments, ...
+ placeholder_filter_by_text: Тема, опис, коментарі, ...
inline_create:
title: Клацніть тут, щоб додати до цього списку новий пакет робіт
create:
@@ -861,7 +861,7 @@ uk:
messages_on_field: 'Це поле невірне: %{messages}'
error_could_not_resolve_version_name: Не вдалося визначити версію
error_could_not_resolve_user_name: Не вдалося визначити ім'я користувача
- error_attachment_upload: 'File failed to upload: %{error}'
+ error_attachment_upload: 'Не вдалося завантажити файл: %{error}'
error_attachment_upload_permission: You don't have the permission to upload files
on this resource.
units:
@@ -885,12 +885,12 @@ uk:
button_activate: Activate zen mode
button_deactivate: Deactivate zen mode
global_search:
- all_projects: In all projects
+ all_projects: У всіх проектах
search: Search
- close_search: Close search
- current_project: In this project
- current_project_and_all_descendants: In this project + subprojects
+ close_search: Закрити пошук
+ current_project: У цьому проекті
+ current_project_and_all_descendants: У цьому проекті + підпроекти
title:
- all_projects: all projects
- project_and_subprojects: and all subprojects
- search_for: Search for
+ all_projects: всі проекти
+ project_and_subprojects: і всі підпроекти
+ search_for: Пошук по
diff --git a/config/locales/crowdin/js-zh-TW.yml b/config/locales/crowdin/js-zh-TW.yml
index 520dc52aa0..9a61530c0d 100644
--- a/config/locales/crowdin/js-zh-TW.yml
+++ b/config/locales/crowdin/js-zh-TW.yml
@@ -144,7 +144,7 @@ zh-TW:
choose_widget: Choose widget
widgets:
documents:
- title: Documents
+ title: 文件
no_results: No documents yet.
news:
title: 新知
@@ -421,7 +421,7 @@ zh-TW:
group_by_relation_type: 按關聯類型分組
add_parent: 增加現有的上一層
add_new_child: 建立新子項
- create_new: 新建
+ create_new: 新增
add_existing: 添加現有的
add_existing_child: 加入現有子項
remove_child: 移除子項
diff --git a/config/locales/crowdin/js-zh.yml b/config/locales/crowdin/js-zh.yml
index 001e56e01d..e85e51891e 100644
--- a/config/locales/crowdin/js-zh.yml
+++ b/config/locales/crowdin/js-zh.yml
@@ -140,38 +140,38 @@ zh:
general_text_Yes: 是
grid:
add_modal:
- choose_widget: Choose widget
+ choose_widget: 选择小部件
widgets:
documents:
- title: Documents
- no_results: No documents yet.
+ title: 文档
+ no_results: 没有文档。
news:
title: 新闻
at: at
no_results: 没有新消息报告。
time_entries_current_user:
- title: Spent time (last 7 days)
- no_results: No time entries for the last 7 days.
+ title: 花费时间 (最近 7天)
+ no_results: 过去7天没有时间记录。
work_packages_accountable:
title: 我负责的工作包
work_packages_assigned:
title: 分配给我的工作包
work_packages_created:
- title: Work packages created by me
+ title: 我创建的工作包
work_packages_watched:
- title: Work packages watched by me
+ title: 由我汇报的工作包
work_packages_calendar:
title: 日历
label_activate: 激活
label_activity_no: 活动条目编号 %{activityNo}
label_activity_with_comment_no: 活动条目编号 %{activityNo},有用户评论。
- label_add_column_after: Add column after
- label_add_column_before: Add column before
+ label_add_column_after: 之后添加列
+ label_add_column_before: 在之前添加列
label_add_columns: 增添列
label_add_comment: 添加评论
label_add_comment_title: 写下评论并输入@ 以通知其他人
- label_add_row_after: Add row after
- label_add_row_before: Add row before
+ label_add_row_after: 之后添加行
+ label_add_row_before: 之前添加行
label_add_selected_columns: 添加所选的列
label_added_by: 添加人
label_added_time_by: 由 %{author} %{age} 添加
@@ -247,9 +247,9 @@ zh:
label_visibility_settings: 可见性设置
label_quote_comment: 引用这个评论
label_reset: 重置
- label_remove_column: Remove column
+ label_remove_column: 删除列
label_remove_columns: 删除选定的列
- label_remove_row: Remove row
+ label_remove_row: 删除行
label_save_as: 另存为
label_select_watcher: 选择一位关注者...
label_selected_filter_list: 所选的筛选器
@@ -271,7 +271,7 @@ zh:
label_activity_show_only_comments: 仅显示批注的活动
label_activity_show_all: 显示所有项目
label_total_progress: "%{percent} %总进度"
- label_total_amount: 'Total: %{amount}'
+ label_total_amount: '总计: %{amount}'
label_updated_on: 更新于
label_warning: 警告
label_work_package: 工作包
@@ -568,7 +568,7 @@ zh:
label_enable_multi_select: 启用多选
label_disable_multi_select: 禁用多选
label_filter_add: 添加筛选器
- label_filter_by_text: Filter by text
+ label_filter_by_text: 按文本筛选
label_options: 选项
label_column_multiselect: '组合式的下拉字段: 使用箭头键选择,用 enter 键确认选择,用退格键删除'
message_error_during_bulk_delete: 试图删除工作包时出错。
@@ -577,7 +577,7 @@ zh:
message_view_spent_time: 显示这个工作包所花费的时间
message_work_package_read_only: 工作包被锁定在此状态。除状态外,其他属性均不可更改。
no_value: 无值
- placeholder_filter_by_text: Subject, description, comments, ...
+ placeholder_filter_by_text: 主题, 描述, 评论,..。
inline_create:
title: 单击此处将新工作包添加至此列表
create:
@@ -775,7 +775,7 @@ zh:
messages_on_field: 此字段无效:%{messages}
error_could_not_resolve_version_name: 无法解析版本名称
error_could_not_resolve_user_name: 不能确定用户名
- error_attachment_upload: 'File failed to upload: %{error}'
+ error_attachment_upload: '文件上传失败: %{error}'
error_attachment_upload_permission: 您没有上传此资源上文件的权限。
units:
workPackage:
@@ -792,9 +792,9 @@ zh:
button_activate: 激活 zen 模式
button_deactivate: 取消激活 zen 模式
global_search:
- all_projects: In all projects
+ all_projects: 在所有项目中
search: 搜索
- close_search: Close search
+ close_search: 关闭搜索
current_project: 在当前项目中
current_project_and_all_descendants: 在当前项目和子项目中
title:
diff --git a/config/locales/crowdin/ko.yml b/config/locales/crowdin/ko.yml
index e9dca7b014..a98f833691 100644
--- a/config/locales/crowdin/ko.yml
+++ b/config/locales/crowdin/ko.yml
@@ -48,12 +48,12 @@ ko:
no_results_content_title: 사용인증 모드가 없습니다.
no_results_content_text: 새 사용인증 모드 생성
ldap_auth_sources:
- connection_encryption: Connection encryption
+ connection_encryption: 연결 암호화
tls_mode:
plain: 없음
- simple_tls: simple_tls
- start_tls: start_tls
- plain_description: Plain unencrypted connection, no TLS negotiation.
+ simple_tls: 단순 TLS
+ start_tls: TLS 시작
+ plain_description: 일반 암호화 되지 않은 연결 TLS 협상 없음
simple_tls_description: Implicit TLS encryption, but no certificate validation.
Use with caution and implicit trust of the LDAP connection.
start_tls_description: Explicit TLS encryption with full validation. Use for
@@ -350,10 +350,10 @@ ko:
encoded_token: 엔터프라이즈 지원 토큰
active_user_count_restriction: 최대 활성 사용자
grids/grid:
- page: Page
+ page: 페이지
row_count: Number of rows
column_count: Number of columns
- widgets: Widgets
+ widgets: 위젯
relation:
delay: 지연
from: 작업 패키지
@@ -443,9 +443,9 @@ ko:
type: 타입
watcher: 주시자
doorkeeper/application:
- uid: Client ID
+ uid: 고객 ID
secret: Client secret
- owner: Owner
+ owner: 소유자
redirect_uri: Redirect URI
client_credentials_user_id: Client Credentials User ID
scopes: Scopes
@@ -516,7 +516,7 @@ ko:
enterprise_token:
unreadable: 읽을 수 없습니다. 지원하는 토큰이 확실한가요?
grids/grid:
- overlaps: overlap.
+ overlaps: 오버랩
outside: is outside of the grid.
end_before_start: end value needs to be larger than the start value.
parse_schema_filter_params_service:
@@ -1302,7 +1302,7 @@ ko:
label_environment: 환경
label_estimates_and_time: 견적 및 시간
label_equals: 일치함
- label_everywhere: everywhere
+ label_everywhere: 어디에 있든지
label_example: 예
label_export_to: '다음에서도 사용 가능:'
label_expanded_click_to_collapse: 확장되었습니다. 축소하려면 클릭하세요.
@@ -1616,7 +1616,7 @@ ko:
label_view_diff: 차이점 보기
label_view_revisions: 수정 보기
label_watched_work_packages: 주시하는 작업 패키지
- label_what_is_this: What is this?
+ label_what_is_this: 이게 뭐예요?
label_week: 주
label_wiki_content_added: 위키 페이지 추가됨
label_wiki_content_updated: 위키 페이지 업데이트됨
@@ -2732,7 +2732,7 @@ ko:
register_intro: If you are developing an OAuth API client application for
OpenProject, you can register it using this form for all users to use.
default_scopes: ''
- client_id: Client ID
+ client_id: 고객 ID
client_secret_notice: 'This is the only time we can print the client secret, please
note it down and keep it secure. It should be treated as a password and cannot
be retrieved by OpenProject at a later time.
@@ -2778,6 +2778,3 @@ ko:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: 들어오는 이메일 웹 서비스 사용
- setting_mail_handler_api_description: '이메일 웹 처리기는 OpenProject가 계측 메커니즘으로 특정 명령을
- 포함하는 이메일을 받을 수 있게 합니다(예: 작업 패키지를 만들고 업데이트하기 위해).'
diff --git a/config/locales/crowdin/lol.yml b/config/locales/crowdin/lol.yml
index d01e56cf16..e3876037bd 100644
--- a/config/locales/crowdin/lol.yml
+++ b/config/locales/crowdin/lol.yml
@@ -59,7 +59,7 @@ lol:
'
boards:
show:
- no_results_title_text: crwdns114770:0crwdne114770:0
+ no_results_title_text: crwdns122672:0crwdne122672:0
colors:
index:
no_results_title_text: crwdns114772:0crwdne114772:0
@@ -132,8 +132,8 @@ lol:
activities:
no_results_title_text: crwdns114854:0crwdne114854:0
boards:
- no_results_title_text: crwdns114856:0crwdne114856:0
- no_results_content_text: crwdns114858:0crwdne114858:0
+ no_results_title_text: crwdns122674:0crwdne122674:0
+ no_results_content_text: crwdns122676:0crwdne122676:0
categories:
no_results_title_text: crwdns114860:0crwdne114860:0
no_results_content_text: crwdns114862:0crwdne114862:0
@@ -593,7 +593,7 @@ lol:
models:
attachment: crwdns115450:0crwdne115450:0
attribute_help_text: crwdns115452:0crwdne115452:0
- board: crwdns115454:0crwdne115454:0
+ board: crwdns122678:0crwdne122678:0
comment: crwdns115456:0crwdne115456:0
custom_action: crwdns115458:0crwdne115458:0
custom_field: crwdns115460:0crwdne115460:0
@@ -1060,9 +1060,9 @@ lol:
faq: crwdns116258:0crwdne116258:0
glossary: crwdns116260:0crwdne116260:0
shortcuts: crwdns116262:0crwdne116262:0
- forums: crwdns116264:0crwdne116264:0
+ forums: crwdns122680:0crwdne122680:0
blog: crwdns116266:0crwdne116266:0
- boards: crwdns116268:0crwdne116268:0
+ boards: crwdns122682:0crwdne122682:0
newsletter: crwdns116270:0crwdne116270:0
links:
configuration_guide: crwdns116272:0crwdne116272:0
@@ -1124,7 +1124,7 @@ lol:
label_authentication: crwdns116376:0crwdne116376:0
label_available_project_work_package_categories: crwdns116378:0crwdne116378:0
label_available_project_work_package_types: crwdns116380:0crwdne116380:0
- label_available_project_boards: crwdns116382:0crwdne116382:0
+ label_available_project_boards: crwdns122684:0crwdne122684:0
label_available_project_versions: crwdns116384:0crwdne116384:0
label_available_project_repositories: crwdns116386:0crwdne116386:0
label_api_documentation: crwdns116388:0crwdne116388:0
@@ -1132,10 +1132,10 @@ lol:
label_blocked_by: crwdns116392:0crwdne116392:0
label_blocks: crwdns116394:0crwdne116394:0
label_blog: crwdns116396:0crwdne116396:0
- label_board_locked: crwdns116398:0crwdne116398:0
- label_board_new: crwdns116400:0crwdne116400:0
- label_board_plural: crwdns116402:0crwdne116402:0
- label_board_sticky: crwdns116404:0crwdne116404:0
+ label_board_locked: crwdns122686:0crwdne122686:0
+ label_board_new: crwdns122688:0crwdne122688:0
+ label_board_plural: crwdns122690:0crwdne122690:0
+ label_board_sticky: crwdns122692:0crwdne122692:0
label_boolean: crwdns116406:0crwdne116406:0
label_branch: crwdns116408:0crwdne116408:0
label_browse: crwdns116410:0crwdne116410:0
@@ -1274,7 +1274,7 @@ lol:
label_hierarchy_leaf: crwdns116676:0crwdne116676:0
label_home: crwdns116678:0crwdne116678:0
label_subject_or_id: crwdns116680:0crwdne116680:0
- label_impressum: crwdns122544:0crwdne122544:0
+ label_impressum: crwdns122694:0crwdne122694:0
label_in: crwdns116682:0crwdne116682:0
label_in_less_than: crwdns116684:0crwdne116684:0
label_in_more_than: crwdns116686:0crwdne116686:0
@@ -1407,7 +1407,7 @@ lol:
label_previous_week: crwdns116940:0crwdne116940:0
label_principal_invite_via_email: crwdns116942:0crwdne116942:0
label_principal_search: crwdns116944:0crwdne116944:0
- label_privacy_policy: crwdns122546:0crwdne122546:0
+ label_privacy_policy: crwdns122696:0crwdne122696:0
label_product_version: crwdns116946:0crwdne116946:0
label_professional_support: crwdns116948:0crwdne116948:0
label_profile: crwdns116950:0crwdne116950:0
@@ -1815,7 +1815,7 @@ lol:
permission_export_wiki_pages: crwdns117672:0crwdne117672:0
permission_list_attachments: crwdns117674:0crwdne117674:0
permission_log_time: crwdns117676:0crwdne117676:0
- permission_manage_boards: crwdns117678:0crwdne117678:0
+ permission_manage_boards: crwdns122698:0crwdne122698:0
permission_manage_categories: crwdns117680:0crwdne117680:0
permission_manage_work_package_relations: crwdns117682:0crwdne117682:0
permission_manage_members: crwdns117684:0crwdne117684:0
@@ -1861,7 +1861,7 @@ lol:
archive:
are_you_sure: crwdns117756:0%{name}crwdne117756:0
project_module_activity: crwdns117758:0crwdne117758:0
- project_module_boards: crwdns117760:0crwdne117760:0
+ project_module_boards: crwdns122700:0crwdne122700:0
project_module_calendar: crwdns117762:0crwdne117762:0
project_module_work_package_tracking: crwdns117764:0crwdne117764:0
project_module_news: crwdns117766:0crwdne117766:0
@@ -2237,7 +2237,7 @@ lol:
color: crwdns118420:0crwdne118420:0
colors: crwdns118422:0crwdne118422:0
associations: crwdns118424:0crwdne118424:0
- board_could_not_be_saved: crwdns118426:0crwdne118426:0
+ board_could_not_be_saved: crwdns122702:0crwdne122702:0
button_delete_all: crwdns118428:0crwdne118428:0
change: crwdns118430:0crwdne118430:0
children: crwdns118432:0crwdne118432:0
@@ -2590,5 +2590,3 @@ lol:
authorization_error: crwdns118974:0crwdne118974:0
revoke_my_application_confirmation: crwdns118976:0%{token_count}crwdne118976:0
my_registered_applications: crwdns118978:0crwdne118978:0
- setting_mail_handler_api_enabled: crwdns118084:0crwdne118084:0
- setting_mail_handler_api_description: crwdns118086:0crwdne118086:0
diff --git a/config/locales/crowdin/lt.yml b/config/locales/crowdin/lt.yml
index 966980a4b1..595ea432f1 100644
--- a/config/locales/crowdin/lt.yml
+++ b/config/locales/crowdin/lt.yml
@@ -3005,7 +3005,3 @@ lt:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Įgalinti įeinančio el. pašto žiniatinklio tarnybą
- setting_mail_handler_api_description: El. pašto žiniatinklio apdorojimo įrankis
- leidžia OpenProject gauti laiškus kurių sudėtyje yra specialios komandos, kurios
- įvykdomos sistemoje (pvz., kurti ir atnaujinti darbų paketus).
diff --git a/config/locales/crowdin/lv.yml b/config/locales/crowdin/lv.yml
index b5dacb1e1d..601b21a027 100644
--- a/config/locales/crowdin/lv.yml
+++ b/config/locales/crowdin/lv.yml
@@ -2937,7 +2937,3 @@ lv:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/ne-NP.yml b/config/locales/crowdin/ne-NP.yml
new file mode 100644
index 0000000000..9b144c7357
--- /dev/null
+++ b/config/locales/crowdin/ne-NP.yml
@@ -0,0 +1,2920 @@
+---
+ne-NP:
+ no_results_title_text: त्यहाँ प्रदर्शन गर्न केहि पनि छैन।
+ activities:
+ index:
+ no_results_title_text: There has not been any activity for the project within
+ this time frame.
+ admin:
+ plugins:
+ no_results_title_text: There are currently no plugins available.
+ custom_styles:
+ custom_colors: Custom colors
+ customize: 'Customize your OpenProject installation with your own logo. Note:
+ This logo will be publicly accessible.'
+ enterprise_notice: As a special 'Thank you!' for their financial contribution
+ to develop OpenProject, this tiny feature is only available for Enterprise
+ Edition support subscribers.
+ manage_colors: Edit color select options
+ instructions:
+ alternative_color: Strong accent color, typically used for most the important
+ button on a screen.
+ content_link_color: Font color of most of the links.
+ primary_color: Main color.
+ primary_color_dark: Typically a darker version of the main color used for
+ hover effects.
+ header_bg_color: Background color of the header.
+ header_item_bg_hover_color: Background color of clickable header items when
+ hovered with the mouse.
+ header_item_font_color: Font color of clickable header items.
+ header_item_font_hover_color: Font color of clickable header items when hovered
+ with the mouse.
+ header_border_bottom_color: Thin line under the header. Leave this field empty
+ if you don't want any line.
+ main_menu_bg_color: Left side menu's background color.
+ enterprise:
+ upgrade_to_ee: Upgrade to Enterprise Edition
+ add_token: Upload an Enterprise Edition support token
+ replace_token: Replace your current support token
+ order: Order Enterprise Edition
+ paste: Paste your Enterprise Edition support token
+ required_for_feature: This feature is only available with an active Enterprise
+ Edition support token.
+ enterprise_link: For more information, click here.
+ announcements:
+ show_until: Show until
+ is_active: currently displayed
+ is_inactive: currently not displayed
+ attribute_help_texts:
+ text_overview: In this view, you can create custom help texts for attributes view.
+ When defined, these texts can be shown by clicking the help icon next to its
+ belonging attribute.
+ label_plural: Attribute help texts
+ show_preview: Preview text
+ add_new: Add help text
+ edit: Edit help text for %{attribute_caption}
+ auth_sources:
+ index:
+ no_results_content_title: There are currently no authentication modes.
+ no_results_content_text: Create a new authentication mode
+ ldap_auth_sources:
+ connection_encryption: Connection encryption
+ tls_mode:
+ plain: none
+ simple_tls: simple_tls
+ start_tls: start_tls
+ plain_description: Plain unencrypted connection, no TLS negotiation.
+ simple_tls_description: Implicit TLS encryption, but no certificate validation.
+ Use with caution and implicit trust of the LDAP connection.
+ start_tls_description: Explicit TLS encryption with full validation. Use for
+ LDAP over TLS/SSL.
+ section_more_info_link_html: 'यो खण्ड, LDAP प्रमाणिकरण स्रोतको जडान सुरक्षाको
+ बारेमा हो। थप जानकारीको लागि, यो लिंकमा जानुहोस् the Net::LDAP
+ documentation
+
+'
+ boards:
+ show:
+ no_results_title_text: There are currently no posts for the board.
+ colors:
+ index:
+ no_results_title_text: There are currently no colors.
+ no_results_content_text: Create a new color
+ label_no_color: No color
+ custom_actions:
+ actions:
+ name: Actions
+ add: Add action
+ assigned_to:
+ executing_user_value: "(Assign to executing user)"
+ conditions: Conditions
+ plural: Custom actions
+ new: New custom action
+ edit: Edit custom action %{name}
+ execute: Execute %{name}
+ upsale:
+ title: Custom actions is an Enterprise Edition feature
+ description: Custom actions streamline everyday work by combining a set of individual
+ steps into one button.
+ custom_fields:
+ text_add_new_custom_field: 'To add new custom fields to a project you first need
+ to create them before you can add them to this project.
+
+'
+ is_enabled_globally: Is enabled globally
+ enabled_in_project: Enabled in project
+ contained_in_type: Contained in type
+ confirm_destroy_option: Deleting an option will delete all of its occurrences
+ (e.g. in work packages). Are you sure you want to delete it?
+ tab:
+ no_results_title_text: There are currently no custom fields.
+ no_results_content_text: Create a new custom field
+ concatenation:
+ single: or
+ deprecations:
+ old_timeline:
+ replacement: This timelines module is being replaced by the interactive timeline
+ embedded into the work packages module.
+ removal: This module is going to be removed with OpenProject 8.0. The configuration
+ for this view will NOT be migrated to the work package view.
+ further_information_before: Please take a look at
+ link_name: how to migrate to the new timeline.
+ further_information_after: ''
+ calendar:
+ removal: 'Please note: This module is going to be removed with OpenProject 8.0.'
+ global_search:
+ overwritten_tabs:
+ wiki_pages: Wiki
+ messages: Forum
+ groups:
+ index:
+ no_results_title_text: There are currently no groups.
+ no_results_content_text: Create a new group
+ users:
+ no_results_title_text: There are currently no users part of this group.
+ memberships:
+ no_results_title_text: There are currently no projects part of this group.
+ incoming_mails:
+ ignore_filenames: 'आगामी मेलहरूका लागि अनुलग्नकहरू प्रशोधन गर्दा उपेक्षा गर्न
+ नामहरूको सूची निर्दिष्ट गर्नुहोस् (जस्तै, हस्ताक्षरहरू वा प्रतिमाहरू)। प्रति
+ रेखा एक फाइलको नाम प्रविष्ट गर्नुहोस्।
+
+'
+ projects:
+ delete:
+ scheduled: मेटाउने कार्य अनुसूचित गरिएको छ र पृष्टभूमिमा सम्पादन गरिनेछ। तपाईंलाई
+ परिणाम सूचित गरिनेछ।
+ schedule_failed: 'परियोजना मेटिने छैन: %{errors}'
+ failed: परियोजना '%{name}' मेटाउने कार्य असफल भयो
+ failed_text: परियोजना '%{name}' मेटाउने अनुरोध असफल भयो। परियोजना संग्रहित अवस्थामा
+ छ।
+ completed: परियोजना '%{name}' मेटाउने कार्य पुरा भयो
+ completed_text: परियोजना '%{name}' मेट्ने अनुरोध पुरा भयो।
+ index:
+ no_results_title_text: There are currently no projects
+ no_results_content_text: Create a new project
+ settings:
+ activities:
+ no_results_title_text: There are currently no activities available.
+ boards:
+ no_results_title_text: There are currently no boards for the project.
+ no_results_content_text: Create a new board
+ categories:
+ no_results_title_text: There are currently no work package categories.
+ no_results_content_text: Create a new work package category
+ custom_fields:
+ no_results_title_text: There are currently no custom fields available.
+ types:
+ no_results_title_text: There are currently no types available.
+ versions:
+ no_results_title_text: There are currently no versions for the project.
+ no_results_content_text: Create a new version
+ members:
+ index:
+ no_results_title_text: There are currently no members part of this project.
+ no_results_content_text: Add a member to the project
+ my:
+ access_token:
+ failed_to_reset_token: 'Failed to reset access token: %{error}'
+ notice_reset_token: 'A new %{type} token has been generated. Your access token
+ is:'
+ token_value_warning: 'Note: This is the only time you will see this token, make
+ sure to copy it now.'
+ no_results_title_text: There are currently no access tokens available.
+ news:
+ index:
+ no_results_title_text: There is currently no news to report.
+ no_results_content_text: Add a news item
+ my_page:
+ no_results_title_text: Nothing new to report.
+ users:
+ memberships:
+ no_results_title_text: This user is currently not a member of a project.
+ prioritiies:
+ edit:
+ priority_color_text: |
+ Click to assign or change the color of this priority.
+ It can be used for highlighting work packages in the table.
+ reportings:
+ index:
+ no_results_title_text: There are currently no status reportings.
+ no_results_content_text: Add a status reporting
+ statuses:
+ edit:
+ status_readonly_html: |
+ कार्य प्याकेजहरूलाई पढ्न-मात्र मिल्ने रूपमा राख्न, यो विकल्पमा चिन्ह लगाउनु होस्।
+ स्थितिको अपवाद बिना कुनै पनि विशेषताहरू परिवर्तन गर्न सकिँदैन।
+
+ द्रष्टव्य: प्रारम्भिक मानहरू (जस्तै, from children or relations) लागू हुनेछ।
+ status_color_text: |
+ Click to assign or change the color of this status.
+ It is shown in the status button and can be used for highlighting work packages in the table.
+ index:
+ no_results_title_text: There are currently no work package statuses.
+ no_results_content_text: Add a new status
+ types:
+ index:
+ no_results_title_text: There are currently no types.
+ no_results_content_text: Create a new type
+ edit:
+ settings: Settings
+ form_configuration: Form configuration
+ projects: Projects
+ enabled_projects: Enabled projects
+ add_group: Add attribute group
+ add_table: सम्बन्धित कार्य प्याकेजहरूको तालिका थप्नुहोस्
+ edit_query: तालिका सम्पादन गर्नुहोस्
+ query_group_placeholder: तालिकालाई नाम दिनुहोस्
+ reset: Reset to defaults
+ type_color_text: |
+ Click to assign or change the color of this type. The selected color distinguishes work packages
+ in Gantt charts.
+ versions:
+ overview:
+ no_results_title_text: There are currently no work packages assigned to this
+ version.
+ wiki:
+ no_results_title_text: There are currently no wiki pages.
+ index:
+ no_results_content_text: Add a new wiki page
+ work_flows:
+ index:
+ no_results_title_text: There are currently no workflows.
+ work_packages:
+ x_descendants:
+ one: One descendant work package
+ other: "%{count} work package descendants"
+ bulk:
+ could_not_be_saved: 'निम्न कार्य प्याकेजहरू सुरक्षित गर्न सकिँदैन:'
+ move:
+ no_common_statuses_exists: There is no status available for all selected work
+ packages. Their status cannot be changed.
+ unsupported_for_multiple_projects: Bulk move/copy is not supported for work
+ packages from multiple projects
+ list_simple:
+ assigned:
+ no_results_title_text: There are currently no work packages assigned to me.
+ reported:
+ no_results_title_text: There are currently no work packages that I have reported.
+ responsible:
+ no_results_title_text: There are currently no work packages that I am accountable
+ for.
+ watched:
+ no_results_title_text: There are currently no work packages that I am watching.
+ summary:
+ reports:
+ category:
+ no_results_title_text: There are currently no categories available.
+ assigned_to:
+ no_results_title_text: There are currently no members part of this project.
+ responsible:
+ no_results_title_text: There are currently no members part of this project.
+ author:
+ no_results_title_text: There are currently no members part of this project.
+ priority:
+ no_results_title_text: There are currently no priorities available.
+ type:
+ no_results_title_text: There are currently no types available.
+ version:
+ no_results_title_text: There are currently no versions available.
+ label_invitation: Invitation
+ account:
+ delete: खाता मेटाउनुहोस्
+ delete_confirmation: के तपाईं खाता हटाउन निश्चित हुनुहुन्छ?
+ deleted: सफलतापूर्वक खाता मेटाईयो।
+ deletion_info:
+ data_consequences:
+ other: Of the data the user created (e.g. email, preferences, work packages,
+ wiki entries) as much as possible will be deleted. Note however, that data
+ like work packages and wiki entries can not be deleted without impeding
+ the work of the other users. Such data is hence reassigned to an account
+ called "Deleted user". As the data of every deleted account is reassigned
+ to this account it will not be possible to distinguish the data the user
+ created from the data of another deleted account.
+ self: Of the data you created (e.g. email, preferences, work packages, wiki
+ entries) as much as possible will be deleted. Note however, that data like
+ work packages and wiki entries can not be deleted without impeding the work
+ of the other users. Such data is hence reassigned to an account called "Deleted
+ user". As the data of every deleted account is reassigned to this account
+ it will not be possible to distinguish the data you created from the data
+ of another deleted account.
+ heading: "%{name} काे खाता मेटाउनुहोस्"
+ info:
+ other: प्रयोगकर्ता खाता हटाउने, एक अपरिवर्तनीय कार्य हो।
+ self: आफ्नो प्रयोगकर्ता खाता हटाउने, एक अपरिवर्तनीय कार्य हो।
+ login_consequences:
+ other: The account will be deleted from the system. Therefore, the user will
+ no longer be able to log in with his current credentials. He/she can choose
+ to become a user of this application again by the means this application
+ grants.
+ self: Your account will be deleted from the system. Therefore, you will no
+ longer be able to log in with your current credentials. If you choose to
+ become a user of this application again, you can do so by using the means
+ this application grants.
+ login_verification:
+ other: Enter the login %{name} to verify the deletion. Once submitted, you
+ will be asked to confirm your password.
+ self: Enter your login %{name} to verify the deletion. Once submitted, you
+ will be asked to confirm your password.
+ error_inactive_activation_by_mail: 'Your account has not yet been activated. To
+ activate your account, click on the link that was emailed to you.
+
+'
+ error_inactive_manual_activation: 'Your account has not yet been activated. Please
+ wait for an administrator to activate your account.
+
+'
+ error_self_registration_disabled: 'यस प्रणालीमा प्रयोगकर्ता दर्ता असक्षम बनाइएको
+ छ । कृपया प्रणाली प्रशासकलाई सोध्नुहोस् तपाईको खाता बनाउनको लागी।
+
+'
+ login_with_auth_provider: वा तपाईंको हालको खाताबाट साइन इन गर्नुहोस्
+ signup_with_auth_provider: or sign up using
+ auth_source_login: Please login as %{login} to activate your account.
+ omniauth_login: Please login to activate your account.
+ actionview_instancetag_blank_option: कृपया छान्नुहोस्
+ activerecord:
+ attributes:
+ announcements:
+ show_until: Display until
+ attachment:
+ attachment_content: Attachment content
+ attachment_file_name: Attachment file name
+ downloads: डाउनलोड
+ file: फाइल
+ filename: फाइल
+ filesize: साइज
+ attribute_help_text:
+ attribute_name: Attribute
+ help_text: Help text
+ auth_source:
+ account: खाता
+ attr_firstname: Firstname attribute
+ attr_lastname: Lastname attribute
+ attr_login: Login attribute
+ attr_mail: Email attribute
+ base_dn: Base DN
+ host: Host
+ onthefly: On-the-fly user creation
+ port: Port
+ changeset:
+ repository: Repository
+ comment:
+ commented: Commented
+ custom_action:
+ actions: Actions
+ custom_field:
+ default_value: पूर्वनिर्धारित मान
+ editable: सम्पादन योग्य
+ field_format: ढाँचा
+ is_filter: फिल्टरको रूपमा प्रयोग गरिने
+ is_required: आवश्यक
+ max_length: अधिकतम लम्बाई
+ min_length: न्यूनतम लम्बाई
+ multi_value: Allow multi-select
+ possible_values: सम्भाव्य मानहरू
+ regexp: Regular expression
+ searchable: खोज्न योग्य
+ visible: Visible
+ custom_value:
+ value: मान
+ enterprise_token:
+ starts_at: Valid since
+ expires_at: Expires at
+ subscriber: Subscriber
+ encoded_token: Enterprise support token
+ active_user_count_restriction: Maximum active users
+ grids/grid:
+ page: पृष्ठ
+ row_count: पङ्क्तिहरूको संख्या
+ column_count: स्तम्भहरूको संख्या
+ widgets: विजेटहरू
+ relation:
+ delay: ढिलो
+ from: Work package
+ to: Related work package
+ status:
+ is_closed: Work package closed
+ is_readonly: कार्य प्याकेज पढ्ने-मात्र
+ journal:
+ notes: द्रष्टव्यहरु
+ member:
+ roles: भूमिकाहरु
+ project:
+ identifier: परिचायक
+ latest_activity_at: Latest activity at
+ parent: Subproject of
+ queries: Queries
+ types: Types
+ versions: Versions
+ work_packages: Work Packages
+ query:
+ column_names: Columns
+ relations_to_type_column: Relations to %{type}
+ relations_of_type_column: "%{type} relations"
+ group_by: Group results by
+ filters: Filters
+ timeline_labels: Timeline labels
+ repository:
+ url: URL
+ role:
+ assignable: Work packages can be assigned to users and groups in possession
+ of this role in the respective project
+ time_entry:
+ activity: Activity
+ hours: Hours
+ spent_on: Date
+ type: Type
+ type:
+ attribute_groups: ''
+ is_in_roadmap: Displayed in roadmap by default
+ is_default: Activated for new projects by default
+ is_milestone: Is milestone
+ color: Color
+ user:
+ admin: Administrator
+ auth_source: Authentication mode
+ current_password: Current password
+ force_password_change: Enforce password change on next login
+ language: Language
+ last_login_on: Last login
+ mail_notification: Email notifications
+ new_password: New password
+ password_confirmation: Confirmation
+ consented_at: Consented at
+ user_preference:
+ comments_sorting: Display comments
+ hide_mail: Hide my email address
+ impaired: Accessibility mode
+ time_zone: Time zone
+ auto_hide_popups: Auto-hide success notifications
+ warn_on_leaving_unsaved: Warn me when leaving a work package with unsaved
+ changes
+ version:
+ effective_date: Finish date
+ sharing: Sharing
+ wiki_content:
+ text: Text
+ wiki_page:
+ parent_title: Parent page
+ redirect_existing_links: Redirect existing links
+ planning_element_type_color:
+ hexcode: Hex code
+ work_package:
+ begin_insertion: Begin of the insertion
+ begin_deletion: Begin of the deletion
+ children: Subelements
+ done_ratio: Progress (%)
+ end_insertion: End of the insertion
+ end_deletion: End of the deletion
+ fixed_version: Version
+ parent: Parent
+ parent_issue: Parent
+ parent_work_package: Parent
+ priority: Priority
+ progress: Progress (%)
+ spent_hours: Spent time
+ spent_time: Spent time
+ subproject: Subproject
+ time_entries: Log time
+ type: Type
+ watcher: Watcher
+ doorkeeper/application:
+ uid: Client ID
+ secret: Client secret
+ owner: मालिक
+ redirect_uri: Redirect URI
+ client_credentials_user_id: Client Credentials User ID
+ scopes: Scopes
+ confidential: गोप्य
+ errors:
+ messages:
+ accepted: must be accepted.
+ after: must be after %{date}.
+ after_or_equal_to: must be after or equal to %{date}.
+ before: must be before %{date}.
+ before_or_equal_to: must be before or equal to %{date}.
+ blank: can't be blank.
+ cant_link_a_work_package_with_a_descendant: A work package cannot be linked
+ to one of its subtasks.
+ circular_dependency: This relation would create a circular dependency.
+ confirmation: doesn't match %{attribute}.
+ could_not_be_copied: could not be (fully) copied.
+ does_not_exist: does not exist.
+ empty: can't be empty.
+ even: must be even.
+ exclusion: is reserved.
+ file_too_large: is too large (maximum size is %{count} Bytes).
+ greater_than: must be greater than %{count}.
+ greater_than_or_equal_to: must be greater than or equal to %{count}.
+ greater_than_or_equal_to_start_date: must be greater than or equal to the
+ start date.
+ greater_than_start_date: must be greater than the start date.
+ inclusion: is not set to one of the allowed values.
+ invalid: is invalid.
+ invalid_url: is not a valid URL.
+ invalid_url_scheme: 'is not a supported protocol (allowed: %{allowed_schemes}).'
+ less_than_or_equal_to: must be less than or equal to %{count}.
+ not_a_date: is not a valid date.
+ not_a_datetime: is not a valid date time.
+ not_a_number: is not a number.
+ not_allowed: is invalid because of missing permissions.
+ not_an_integer: is not an integer.
+ not_an_iso_date: 'is not a valid date. Required format: YYYY-MM-DD.'
+ not_same_project: doesn't belong to the same project.
+ odd: must be odd.
+ regex_invalid: could not be validated with the associated regular expression.
+ smaller_than_or_equal_to_max_length: must be smaller than or equal to maximum
+ length.
+ taken: has already been taken.
+ too_long: is too long (maximum is %{count} characters).
+ too_short: is too short (minimum is %{count} characters).
+ unchangeable: cannot be changed.
+ wrong_length: is the wrong length (should be %{count} characters).
+ models:
+ custom_field:
+ at_least_one_custom_option: At least one option needs to be available.
+ custom_actions:
+ only_one_allowed: "(%{name}) only one value is allowed."
+ empty: "(%{name}) value can't be empty."
+ inclusion: "(%{name}) value is not set to one of the allowed values."
+ not_logged_in: "(%{name}) value cannot be set because you are not logged
+ in."
+ not_an_integer: "(%{name}) is not an integer."
+ smaller_than_or_equal_to: "(%{name}) must be smaller than or equal to %{count}."
+ greater_than_or_equal_to: "(%{name}) must be greater than or equal to %{count}."
+ doorkeeper/application:
+ attributes:
+ redirect_uri:
+ fragment_present: टुक्रा समावेश गर्न सक्दैन।
+ invalid_uri: वैध URI हुनु पर्दछ।
+ relative_uri: पूर्ण URI हुनु पर्दछ।
+ secured_uri: HTTPS/SSL URI हुनु पर्छ।
+ forbidden_uri: सर्भरद्वारा निषेध गरिएको छ।
+ scopes:
+ not_match_configured: उपलब्ध scope हरु मेल खाँदैन।
+ enterprise_token:
+ unreadable: can't be read. Are you sure it is a support token?
+ grids/grid:
+ overlaps: overlap.
+ outside: is outside of the grid.
+ end_before_start: अन्तिम मान सुरु मान भन्दा ठूलो हुनु आवश्यक छ।
+ parse_schema_filter_params_service:
+ attributes:
+ base:
+ unsupported_operator: The operator is not supported.
+ invalid_values: A value is invalid.
+ id_filter_required: An 'id' filter is required.
+ project:
+ attributes:
+ types:
+ in_use_by_work_packages: 'still in use by work packages: %{types}'
+ query:
+ attributes:
+ project:
+ error_not_found: not found
+ public:
+ error_unauthorized: "- The user has no permission to create public views."
+ group_by_hierarchies_exclusive: is mutually exclusive with group by '%{group_by}'.
+ You cannot activate both.
+ filters:
+ custom_fields:
+ inexistent: There is no custom field for the filter.
+ invalid: The custom field is not valid in the given context.
+ relation:
+ typed_dag:
+ circular_dependency: The relationship creates a circle of relationships.
+ attributes:
+ to:
+ error_not_found: work package in `to` position not found or not visible
+ error_readonly: an existing relation's `to` link is immutable
+ from:
+ error_not_found: work package in `from` position not found or not visible
+ error_readonly: an existing relation's `from` link is immutable
+ repository:
+ not_available: SCM vendor is not available
+ not_whitelisted: is not allowed by the configuration.
+ invalid_url: is not a valid repository URL or path.
+ must_not_be_ssh: must not be an SSH url.
+ no_directory: is not a directory.
+ work_package:
+ is_not_a_valid_target_for_time_entries: 'Work package #%{id} is not a valid
+ target for reassigning the time entries.'
+ attributes:
+ due_date:
+ not_start_date: is not on start date, although this is required for
+ milestones.
+ parent:
+ cannot_be_milestone: cannot be a milestone.
+ cannot_be_in_another_project: cannot be in another project.
+ not_a_valid_parent: is invalid.
+ start_date:
+ violates_relationships: can only be set to %{soonest_start} or later
+ so as not to violate the work package's relationships.
+ status_id:
+ status_transition_invalid: is invalid because no valid transition exists
+ from old to new status for the current user's roles.
+ status_invalid_in_type: is invalid because the current status does not
+ exist in this type.
+ type:
+ cannot_be_milestone_due_to_children: cannot be a milestone because this
+ work package has children.
+ priority_id:
+ only_active_priorities_allowed: needs to be active.
+ category:
+ only_same_project_categories_allowed: The category of a work package
+ must be within the same project as the work package.
+ does_not_exist: The specified category does not exist.
+ estimated_hours:
+ only_values_greater_or_equal_zeroes_allowed: must be >= 0.
+ type:
+ attributes:
+ attribute_groups:
+ attribute_unknown: Invalid work package attribute used.
+ duplicate_group: The group name '%{group}' is used more than once. Group
+ names must be unique.
+ query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}'
+ group_without_name: Unnamed groups are not allowed.
+ user:
+ attributes:
+ password:
+ weak: 'Must contain characters of the following classes (at least %{min_count}
+ of %{all_count}): %{rules}.'
+ lowercase: lowercase (e.g. 'a')
+ uppercase: uppercase (e.g. 'A')
+ numeric: numeric (e.g. '1')
+ special: special (e.g. '%')
+ reused:
+ one: has been used before. Please choose one that is different from
+ your last one.
+ other: has been used before. Please choose one that is different from
+ your last %{count}.
+ match:
+ confirm: Confirm new password.
+ description: "'Password confirmation' should match the input in the
+ 'New password' field."
+ status:
+ invalid_on_create: is not a valid status for new users.
+ auth_source:
+ error_not_found: not found
+ member:
+ principal_blank: Please choose at least one user or group.
+ role_blank: Please choose at least one role.
+ template:
+ body: 'Please check the following fields:'
+ header:
+ one: 1 error prohibited this %{model} from being saved
+ other: "%{count} errors prohibited this %{model} from being saved"
+ models:
+ attachment: फाइल
+ attribute_help_text: Attribute help text
+ board: Forum
+ comment: Comment
+ custom_action: Custom action
+ custom_field: Custom field
+ group: Group
+ category: Category
+ status: Work package status
+ member: Member
+ news: News
+ project: Project
+ query: Custom query
+ role:
+ one: Role
+ other: Roles
+ type: Type
+ user: User
+ version: Version
+ wiki: Wiki
+ wiki_page: Wiki page
+ workflow: Workflow
+ work_package: Work package
+ doorkeeper/application: OAuth application
+ errors:
+ header_invalid_fields: 'There were problems with the following fields:'
+ field_erroneous_label: |-
+ This field is invalid: %{full_errors}
+ Please enter a valid value.
+ activity:
+ created: 'Created: %{title}'
+ updated: 'Updated: %{title}'
+ attributes:
+ active: Active
+ assigned_to: Assignee
+ assignee: Assignee
+ attachments: Attachments
+ author: Author
+ base: 'General Error:'
+ blocks_ids: IDs of blocked work packages
+ category: Category
+ comment: Comment
+ comments: Comment
+ content: Content
+ color: Color
+ created_at: Created on
+ created_on: Created on
+ custom_options: सम्भाव्य मानहरू
+ custom_values: Custom fields
+ date: Date
+ default_columns: Default columns
+ description: Description
+ display_sums: Display Sums
+ due_date: Finish date
+ estimated_hours: Estimated time
+ estimated_time: Estimated time
+ firstname: First name
+ group: Group
+ groups: Groups
+ groupname: Group name
+ id: ID
+ is_default: पूर्वनिर्धारित मान
+ is_for_all: For all projects
+ is_public: Public
+ issue: Work package
+ lastname: Last name
+ login: Login
+ mail: Email
+ name: Name
+ password: Password
+ priority: Priority
+ project: Project
+ responsible: Accountable
+ role: Role
+ roles: भूमिकाहरु
+ start_date: Start date
+ status: Status
+ subject: Subject
+ summary: Summary
+ title: Title
+ type: Type
+ updated_at: Updated on
+ updated_on: Updated on
+ user: User
+ version: Version
+ work_package: Work package
+ button_add: Add
+ button_add_member: Add member
+ button_add_watcher: Add watcher
+ button_annotate: Annotate
+ button_apply: Apply
+ button_archive: Archive
+ button_back: Back
+ button_cancel: Cancel
+ button_change: Change
+ button_change_parent_page: Change parent page
+ button_change_password: Change password
+ button_check_all: Check all
+ button_clear: Clear
+ button_click_to_reveal: हेर्न क्लिक गर्नुहोस
+ button_close: Close
+ button_collapse_all: Collapse all
+ button_configure: Configure
+ button_continue: Continue
+ button_copy: Copy
+ button_copy_and_follow: Copy and follow
+ button_create: Create
+ button_create_and_continue: Create and continue
+ button_delete: Delete
+ button_decline: Decline
+ button_delete_watcher: Delete watcher %{name}
+ button_download: Download
+ button_duplicate: Duplicate
+ button_edit: Edit
+ button_edit_associated_wikipage: 'Edit associated Wiki page: %{page_title}'
+ button_expand_all: Expand all
+ button_filter: Filter
+ button_generate: Generate
+ button_list: List
+ button_lock: Lock
+ button_log_time: Log time
+ button_login: Sign in
+ button_move: Move
+ button_move_and_follow: Move and follow
+ button_print: Print
+ button_quote: Quote
+ button_remove: Remove
+ button_rename: Rename
+ button_replace: Replace
+ button_revoke: रद्द गर्नुहोस्
+ button_reply: Reply
+ button_reset: Reset
+ button_rollback: Rollback to this version
+ button_save: Save
+ button_save_back: Save and back
+ button_show: Show
+ button_sort: Sort
+ button_submit: Submit
+ button_test: Test
+ button_unarchive: Unarchive
+ button_uncheck_all: Uncheck all
+ button_unlock: Unlock
+ button_unwatch: Unwatch
+ button_update: Update
+ button_upgrade: Upgrade
+ button_upload: Upload
+ button_view: View
+ button_watch: Watch
+ button_manage_menu_entry: Configure menu item
+ button_add_menu_entry: Add menu item
+ button_configure_menu_entry: Configure menu item
+ button_delete_menu_entry: Delete menu item
+ consent:
+ checkbox_label: I have noted and do consent to the above.
+ failure_message: Consent failed, cannot proceed.
+ title: User Consent
+ decline_warning_message: You have declined to consent and have been logged out.
+ user_has_consented: User has consented to your configured statement at the given
+ time.
+ not_yet_consented: User has not consented yet, will be requested upon next login.
+ contact_mail_instructions: Define the mail address that users can reach a data
+ controller to perform data change or removal requests.
+ contact_your_administrator: Please contact your administrator if you want to have
+ your account deleted.
+ contact_this_mail_address: Please contact %{mail_address} if you want to have
+ your account deleted.
+ text_update_consent_time: Check this box to force users to consent again. Enable
+ when you have changed the legal aspect of the consent information above.
+ update_consent_last_time: 'Last update of consent: %{update_time}'
+ copy_project:
+ started: Started to copy project "%{source_project_name}" to "%{target_project_name}".
+ You will be informed by mail as soon as "%{target_project_name}" is available.
+ failed: Cannot copy project %{source_project_name}
+ succeeded: Created project %{target_project_name}
+ errors: Error
+ project_custom_fields: Custom fields on project
+ text:
+ failed: Could not copy project "%{source_project_name}" to project "%{target_project_name}".
+ succeeded: Copied project "%{source_project_name}" to "%{target_project_name}".
+ create_new_page: Wiki page
+ date:
+ abbr_day_names:
+ - Sun
+ - Mon
+ - Tue
+ - Wed
+ - Thu
+ - Fri
+ - Sat
+ abbr_month_names:
+ -
+ - Jan
+ - Feb
+ - Mar
+ - Apr
+ - May
+ - Jun
+ - Jul
+ - Aug
+ - Sep
+ - Oct
+ - Nov
+ - Dec
+ day_names:
+ - Sunday
+ - Monday
+ - Tuesday
+ - Wednesday
+ - Thursday
+ - Friday
+ - Saturday
+ formats:
+ default: "%m/%d/%Y"
+ long: "%B %d, %Y"
+ short: "%b %d"
+ month_names:
+ -
+ - January
+ - February
+ - March
+ - April
+ - May
+ - June
+ - July
+ - August
+ - September
+ - October
+ - November
+ - December
+ order:
+ - :year
+ - :month
+ - :day
+ datetime:
+ distance_in_words:
+ about_x_hours:
+ one: about 1 hour
+ other: about %{count} hours
+ about_x_months:
+ one: about 1 month
+ other: about %{count} months
+ about_x_years:
+ one: about 1 year
+ other: about %{count} years
+ almost_x_years:
+ one: almost 1 year
+ other: almost %{count} years
+ half_a_minute: half a minute
+ less_than_x_minutes:
+ one: less than a minute
+ other: less than %{count} minutes
+ less_than_x_seconds:
+ one: less than 1 second
+ other: less than %{count} seconds
+ over_x_years:
+ one: over 1 year
+ other: over %{count} years
+ x_days:
+ one: 1 day
+ other: "%{count} days"
+ x_minutes:
+ one: 1 minute
+ other: "%{count} minutes"
+ x_months:
+ one: 1 month
+ other: "%{count} months"
+ x_seconds:
+ one: 1 second
+ other: "%{count} seconds"
+ units:
+ hour:
+ one: hour
+ other: hours
+ default_activity_development: Development
+ default_activity_management: Management
+ default_activity_other: Other
+ default_activity_specification: Specification
+ default_activity_support: Support
+ default_activity_testing: Testing
+ default_color_black: Black
+ default_color_blue: Blue
+ default_color_blue_dark: Blue (dark)
+ default_color_blue_light: Blue (light)
+ default_color_green_dark: Green (dark)
+ default_color_green_light: Green (light)
+ default_color_grey_dark: Grey (dark)
+ default_color_grey_light: Grey (light)
+ default_color_grey: Grey
+ default_color_magenta: Magenta
+ default_color_orange: Orange
+ default_color_red: Red
+ default_color_white: White
+ default_color_yellow: Yellow
+ default_status_closed: Closed
+ default_status_confirmed: Confirmed
+ default_status_developed: Developed
+ default_status_in_development: In development
+ default_status_in_progress: In progress
+ default_status_in_specification: In specification
+ default_status_in_testing: In testing
+ default_status_new: New
+ default_status_on_hold: On hold
+ default_status_rejected: Rejected
+ default_status_scheduled: Scheduled
+ default_status_specified: Specified
+ default_status_tested: Tested
+ default_status_test_failed: Test failed
+ default_status_to_be_scheduled: To be scheduled
+ default_priority_low: Low
+ default_priority_normal: Normal
+ default_priority_high: High
+ default_priority_immediate: Immediate
+ default_role_anonymous: Anonymous
+ default_role_developer: Developer
+ default_role_project_admin: Project admin
+ default_role_non_member: Non member
+ default_role_reader: Reader
+ default_role_member: Member
+ default_type: Work Package
+ default_type_bug: Bug
+ default_type_deliverable: Deliverable
+ default_type_epic: Epic
+ default_type_feature: Feature
+ default_type_milestone: Milestone
+ default_type_phase: Phase
+ default_type_task: Task
+ default_type_user_story: User story
+ description_active: Active?
+ description_attachment_toggle: Show/Hide attachments
+ description_autocomplete: 'This field uses autocomplete. While typing the title
+ of a work package you will receive a list of possible candidates. Choose one using
+ the arrow up and arrow down key and select it with tab or enter. Alternatively
+ you can enter the work package number directly.
+
+'
+ description_available_columns: Available Columns
+ description_choose_project: Projects
+ description_compare_from: Compare from
+ description_compare_to: Compare to
+ description_current_position: 'You are here:'
+ description_date_from: Enter start date
+ description_date_range_interval: Choose range by selecting start and end date
+ description_date_range_list: Choose range from list
+ description_date_to: Enter end date
+ description_enter_number: Enter number
+ description_enter_text: Enter text
+ description_filter: Filter
+ description_filter_toggle: Show/Hide filter
+ description_category_reassign: Choose category
+ description_message_content: Message content
+ description_my_project: You are member
+ description_notes: द्रष्टव्यहरु
+ description_parent_work_package: Parent work package of current
+ description_project_scope: Search scope
+ description_query_sort_criteria_attribute: Sort attribute
+ description_query_sort_criteria_direction: Sort direction
+ description_search: Searchfield
+ description_select_work_package: Select work package
+ description_selected_columns: Selected Columns
+ description_sub_work_package: Sub work package of current
+ description_toc_toggle: Show/Hide table of contents
+ description_wiki_subpages_reassign: Choose new parent page
+ direction: ltr
+ ee:
+ upsale:
+ form_configuration:
+ description: 'Customize the form configuration with these additional features:'
+ add_groups: Add new attribute groups
+ rename_groups: Rename attributes groups
+ project_filters:
+ description_html: Upgrade to %{link} to filter and sort on custom fields
+ enumeration_activities: Activities (time tracking)
+ enumeration_work_package_priorities: Work package priorities
+ enumeration_system_activity: System Activity
+ enumeration_reported_project_statuses: Reported project status
+ error_auth_source_sso_failed: Single Sign-On (SSO) for user '%{value}' failed
+ error_can_not_archive_project: 'This project cannot be archived: There is at least
+ one work package assigned to a version defined in this project.'
+ error_can_not_delete_entry: Unable to delete entry
+ error_can_not_delete_custom_field: Unable to delete custom field
+ error_can_not_delete_type: This type contains work packages and cannot be deleted.
+ error_can_not_delete_standard_type: Standard types cannot be deleted.
+ error_can_not_invite_user: Failed to send invitation to user.
+ error_can_not_remove_role: This role is in use and cannot be deleted.
+ error_can_not_reopen_work_package_on_closed_version: A work package assigned to
+ a closed version cannot be reopened
+ error_check_user_and_role: Please choose a user and a role.
+ error_cookie_missing: The OpenProject cookie is missing. Please ensure that cookies
+ are enabled, as this application will not properly function without.
+ error_custom_option_not_found: Option does not exist.
+ error_dependent_work_package: 'Error in dependent work package #%{related_id} %{related_subject}:
+ %{error}'
+ error_enterprise_activation_user_limit: Your account could not be activated (user
+ limit reached). Please contact your administrator to gain access.
+ error_failed_to_delete_entry: Failed to delete this entry.
+ error_invalid_selected_value: Invalid selected value.
+ error_invalid_group_by: 'Can''t group by: %{value}'
+ error_invalid_query_column: 'Invalid query column: %{value}'
+ error_invalid_sort_criterion: 'Can''t sort by column: %{value}'
+ error_journal_attribute_not_present: Journal does not contain attribute %{attribute}.
+ error_pdf_export_too_many_columns: Too many columns selected for the PDF export.
+ Please reduce the number of columns.
+ error_pdf_failed_to_export: 'The PDF export could not be saved: %{error}'
+ error_token_authenticity: Unable to verify Cross-Site Request Forgery token. Did
+ you try to submit data on multiple browsers or tabs? Please close all tabs and
+ try again.
+ error_work_package_done_ratios_not_updated: Work package done ratios not updated.
+ error_work_package_not_found_in_project: The work package was not found or does
+ not belong to this project
+ error_must_be_project_member: must be project member
+ error_no_default_work_package_status: No default work package status is defined.
+ Please check your configuration (Go to "Administration -> Work package statuses").
+ error_no_type_in_project: No type is associated to this project. Please check the
+ Project settings.
+ error_omniauth_registration_timed_out: The registration via an external authentication
+ provider timed out. Please try again.
+ error_scm_command_failed: 'An error occurred when trying to access the repository:
+ %{value}'
+ error_scm_not_found: The entry or revision was not found in the repository.
+ error_unable_delete_status: The work package status cannot be deleted since it is
+ used by at least one work package.
+ error_unable_delete_default_status: Unable to delete the default work package status.
+ Please select another default work package status before deleting the current
+ one.
+ error_unable_to_connect: Unable to connect (%{value})
+ error_unable_delete_wiki: Unable to delete the wiki page.
+ error_unable_update_wiki: Unable to update the wiki page.
+ error_workflow_copy_source: Please select a source type or role
+ error_workflow_copy_target: Please select target type(s) and role(s)
+ error_menu_item_not_created: Menu item could not be added
+ error_menu_item_not_saved: Menu item could not be saved
+ error_wiki_root_menu_item_conflict: 'Can''t rename "%{old_name}" to "%{new_name}"
+ due to a conflict in the resulting menu item with the existing menu item "%{existing_caption}"
+ (%{existing_identifier}).
+
+'
+ error_external_authentication_failed: An error occured during external authentication.
+ Please try again.
+ error_attribute_not_highlightable: 'Attribute(s) not highlightable: %{attributes}'
+ events:
+ project: Project edited
+ changeset: Changeset edited
+ message: Message edited
+ news: News
+ reply: Replied
+ time_entry: Timelog edited
+ wiki_page: Wiki page edited
+ work_package_closed: Work Package closed
+ work_package_edit: Work Package edited
+ work_package_note: Work Package note added
+ export:
+ format:
+ atom: Atom
+ csv: CSV
+ pdf: PDF
+ pdf_with_descriptions: PDF with descriptions
+ pdf_with_descriptions_and_attachments: PDF with descriptions and attachments
+ pdf_with_attachments: PDF with attachments
+ extraction:
+ available:
+ pdftotext: Pdftotext available (optional)
+ unrtf: Unrtf available (optional)
+ catdoc: Catdoc available (optional)
+ xls2csv: Xls2csv available (optional)
+ catppt: Catppt available (optional)
+ tesseract: Tesseract available (optional)
+ general_csv_decimal_separator: "."
+ general_csv_encoding: UTF-8
+ general_csv_separator: ","
+ general_first_day_of_week: '7'
+ general_lang_name: English
+ general_pdf_encoding: ISO-8859-1
+ general_text_no: 'no'
+ general_text_yes: 'yes'
+ general_text_No: 'No'
+ general_text_Yes: 'Yes'
+ gui_validation_error: 1 error
+ gui_validation_error_plural: "%{count} errors"
+ homescreen:
+ additional:
+ projects: Newest visible projects in this instance.
+ no_visible_projects: There are no visible projects in this instance.
+ users: Newest registered users in this instance.
+ blocks:
+ community: OpenProject community
+ upsale:
+ become_hero: Become a hero!
+ title: Upgrade to Enterprise Edition
+ description: What are the benefits?
+ more_info: More information
+ additional_features: Additional powerful premium features
+ professional_support: Professional support from the OpenProject experts
+ you_contribute: Developers need to pay their bills, too. With Enterprise Edition
+ you substantially contribute to this Open-Source community effort.
+ links:
+ upgrade_enterprise_edition: Upgrade to Enterprise Edition
+ user_guides: User guides
+ faq: FAQ
+ glossary: Glossary
+ shortcuts: Shortcuts
+ forums: Forums
+ blog: OpenProject blog
+ boards: Community forum
+ newsletter: Security alerts / Newsletter
+ links:
+ configuration_guide: Configuration guide
+ instructions_after_registration: You can sign in as soon as your account has been
+ activated by clicking %{signin}.
+ instructions_after_logout: You can sign in again by clicking %{signin}.
+ instructions_after_error: You can try to sign in again by clicking %{signin}. If
+ the error persists, ask your admin for help.
+ my_account:
+ access_tokens:
+ no_results:
+ title: No access tokens to display
+ description: All of them have been disabled. They can be re-enabled in the
+ administration menu.
+ access_token: Access token
+ headers:
+ action: Action
+ expiration: Expires
+ indefinite_expiration: Never
+ label_accessibility: Accessibility
+ label_account: खाता
+ label_active: Active
+ label_activate_user: Activate user
+ label_active_in_new_projects: Active in new projects
+ label_activity: Activity
+ label_add_edit_translations: Add and edit translations
+ label_add_another_file: Add another file
+ label_add_columns: Add selected columns
+ label_add_note: Add a note
+ label_add_related_work_packages: Add related work packages
+ label_add_subtask: Add subtask
+ label_added: added
+ label_added_time_by: Added by %{author} %{age} ago
+ label_additional_workflow_transitions_for_assignee: Additional transitions allowed
+ when the user is the assignee
+ label_additional_workflow_transitions_for_author: Additional transitions allowed
+ when the user is the author
+ label_administration: Administration
+ label_advanced_settings: Advanced settings
+ label_age: Age
+ label_ago: days ago
+ label_all: all
+ label_all_time: all time
+ label_all_words: All words
+ label_all_open_wps: All open
+ label_always_visible: Always displayed
+ label_announcement: Announcement
+ label_api_access_key: API access key
+ label_api_access_key_created_on: API access key created %{value} ago
+ label_api_access_key_type: API
+ label_applied_status: Applied status
+ label_archive_project: Archive project
+ label_ascending: Ascending
+ label_assigned_to_me_work_packages: Work packages assigned to me
+ label_associated_revisions: Associated revisions
+ label_attachment_delete: Delete file
+ label_attachment_new: New file
+ label_attachment_plural: Files
+ label_attribute: Attribute
+ label_attribute_plural: Attributes
+ label_auth_source: Authentication mode
+ label_auth_source_new: New authentication mode
+ label_auth_source_plural: Authentication modes
+ label_authentication: Authentication
+ label_available_project_work_package_categories: Available work package categories
+ label_available_project_work_package_types: उपलब्ध कार्य प्याकेजको प्रकारहरू
+ label_available_project_boards: Available boards
+ label_available_project_versions: Available versions
+ label_available_project_repositories: Available repositories
+ label_api_documentation: API documentation
+ label_between: between
+ label_blocked_by: blocked by
+ label_blocks: blocks
+ label_blog: Blog
+ label_board_locked: Locked
+ label_board_new: New forum
+ label_board_plural: Forums
+ label_board_sticky: Sticky
+ label_boolean: Boolean
+ label_branch: Branch
+ label_browse: Browse
+ label_bulk_edit_selected_work_packages: Bulk edit selected work packages
+ label_calendar: Calendar
+ label_calendar_show: Show Calendar
+ label_category: Category
+ label_consent_settings: User Consent
+ label_wiki_menu_item: Wiki menu item
+ label_select_main_menu_item: Select new main menu item
+ label_select_project: Select a project
+ label_required_disk_storage: Required disk storage
+ label_send_invitation: Send invitation
+ label_change_plural: Changes
+ label_change_properties: Change properties
+ label_change_status: Change status
+ label_change_status_of_user: 'Change status of #{username}'
+ label_change_view_all: View all changes
+ label_changes_details: Details of all changes
+ label_changeset: Changeset
+ label_changeset_id: Changeset ID
+ label_changeset_plural: Changesets
+ label_checked: checked
+ label_check_uncheck_all_in_column: Check/Uncheck all in column
+ label_check_uncheck_all_in_row: Check/Uncheck all in row
+ label_child_element: Child element
+ label_chronological_order: In chronological order
+ label_close_versions: Close completed versions
+ label_closed_work_packages: closed
+ label_collapse: Collapse
+ label_collapsed_click_to_show: Collapsed. Click to show
+ label_configuration: configuration
+ label_comment_add: Add a comment
+ label_comment_added: Comment added
+ label_comment_delete: Delete comments
+ label_comment_plural: Comments
+ label_commits_per_author: Commits per author
+ label_commits_per_month: Commits per month
+ label_confirmation: Confirmation
+ label_contains: contains
+ label_content: Content
+ label_copied: copied
+ label_copy_to_clipboard: Copy to clipboard
+ label_copy_same_as_target: Same as target
+ label_copy_source: Source
+ label_copy_target: Target
+ label_copy_workflow_from: Copy workflow from
+ label_copy_project: Copy project
+ label_core_version: Core version
+ label_current_status: Current status
+ label_current_version: Current version
+ label_custom_field_add_no_type: Add this field to a work package type
+ label_custom_field_new: New custom field
+ label_custom_field_plural: Custom fields
+ label_custom_field_default_type: Empty type
+ label_custom_style: Design
+ label_date: Date
+ label_date_and_time: Date and time
+ label_date_from: From
+ label_date_from_to: From %{start} to %{end}
+ label_date_range: Date range
+ label_date_to: To
+ label_day_plural: days
+ label_default: Default
+ label_delete_user: Delete user
+ label_delete_project: Delete project
+ label_deleted: deleted
+ label_deleted_custom_field: "(deleted custom field)"
+ label_descending: Descending
+ label_details: Details
+ label_development_roadmap: Development roadmap
+ label_diff: diff
+ label_diff_inline: inline
+ label_diff_side_by_side: side by side
+ label_disabled: disabled
+ label_display: Display
+ label_display_per_page: 'Per page: %{value}'
+ label_display_used_statuses_only: Only display statuses that are used by this type
+ label_download: "%{count} Download"
+ label_download_plural: "%{count} Downloads"
+ label_downloads_abbr: D/L
+ label_duplicated_by: duplicated by
+ label_duplicate: duplicate
+ label_duplicates: duplicates
+ label_edit: Edit
+ label_enable_multi_select: Toggle multiselect
+ label_enabled_project_custom_fields: Enabled custom fields
+ label_enabled_project_modules: Enabled modules
+ label_enabled_project_activities: Enabled time tracking activities
+ label_end_to_end: end to end
+ label_end_to_start: end to start
+ label_enumeration_new: New enumeration value
+ label_enumeration_value: Enumeration value
+ label_enumerations: Enumerations
+ label_enterprise: Enterprise
+ label_enterprise_active_users: "%{current}/%{limit} booked active users"
+ label_enterprise_edition: Enterprise Edition
+ label_environment: Environment
+ label_estimates_and_time: Estimates and time
+ label_equals: is
+ label_everywhere: सबैतिर
+ label_example: Example
+ label_export_to: 'Also available in:'
+ label_expanded_click_to_collapse: Expanded. Click to collapse
+ label_f_hour: "%{value} hour"
+ label_f_hour_plural: "%{value} hours"
+ label_feed_plural: Feeds
+ label_feeds_access_key: RSS access key
+ label_feeds_access_key_created_on: RSS access key created %{value} ago
+ label_feeds_access_key_type: RSS
+ label_file_added: File added
+ label_file_plural: Files
+ label_filter_add: Add filter
+ label_filter_plural: Filters
+ label_filters_toggle: Show/hide filters
+ label_float: Float
+ label_folder: Folder
+ label_follows: follows
+ label_force_user_language_to_default: Set language of users having a non allowed
+ language to default
+ label_form_configuration: Form configuration
+ label_gantt: Gantt
+ label_gantt_chart: Gantt chart
+ label_general: General
+ label_generate_key: Generate a key
+ label_git_path: Path to .git directory
+ label_greater_or_equal: ">="
+ label_group_by: Group by
+ label_group_new: New group
+ label_group: Group
+ label_group_named: Group %{name}
+ label_group_plural: Groups
+ label_help: Help
+ label_here: here
+ label_hide: Hide
+ label_history: History
+ label_hierarchy_leaf: Hierarchy leaf
+ label_home: Home
+ label_subject_or_id: Subject or ID
+ label_impressum: Impressum
+ label_in: in
+ label_in_less_than: in less than
+ label_in_more_than: in more than
+ label_inactive: Inactive
+ label_incoming_emails: Incoming emails
+ label_includes: includes
+ label_index_by_date: Index by date
+ label_index_by_title: Index by title
+ label_information: Information
+ label_information_plural: Information
+ label_integer: Integer
+ label_internal: Internal
+ label_introduction_video: Introduction video
+ label_invite_user: Invite user
+ label_show_hide: Show/hide
+ label_show_all_registered_users: Show all registered users
+ label_journal: Journal
+ label_journal_diff: Description Comparison
+ label_language: Language
+ label_jump_to_a_project: Jump to a project...
+ label_keyword_plural: शब्दकुञ्जी
+ label_language_based: Based on user's language
+ label_last_activity: Last activity
+ label_last_change_on: Last change on
+ label_last_changes: last %{count} changes
+ label_last_login: Last login
+ label_last_month: last month
+ label_last_n_days: last %{count} days
+ label_last_week: last week
+ label_latest_revision: Latest revision
+ label_latest_revision_plural: Latest revisions
+ label_ldap_authentication: LDAP authentication
+ label_less_or_equal: "<="
+ label_less_than_ago: less than days ago
+ label_list: List
+ label_loading: Loading...
+ label_lock_user: Lock user
+ label_logged_as: Logged in as
+ label_login: Sign in
+ label_custom_logo: Custom logo
+ label_custom_favicon: Custom favicon
+ label_custom_touch_icon: Custom touch icon
+ label_logout: Sign out
+ label_main_menu: Side Menu
+ label_manage_groups: Manage groups
+ label_managed_repositories_vendor: Managed %{vendor} repositories
+ label_max_size: Maximum size
+ label_me: me
+ label_member_new: New member
+ label_member_plural: Members
+ label_view_all_members: View all members
+ label_menu_item_name: Name of menu item
+ label_message: Message
+ label_message_last: Last message
+ label_message_new: New message
+ label_message_plural: Messages
+ label_message_posted: Message added
+ label_min_max_length: Min - Max length
+ label_minute_plural: minutes
+ label_missing_api_access_key: Missing API access key
+ label_missing_feeds_access_key: Missing RSS access key
+ label_modification: "%{count} change"
+ label_modified: modified
+ label_module_plural: Modules
+ label_modules: Modules
+ label_month: Month
+ label_months_from: months from
+ label_more: More
+ label_more_than_ago: more than days ago
+ label_move_work_package: Move work package
+ label_my_account: My account
+ label_my_account_data: My account data
+ label_my_page: My page
+ label_my_projects: My projects
+ label_my_queries: My custom queries
+ label_never: Never
+ label_new: New
+ label_new_statuses_allowed: New statuses allowed
+ label_news_added: News added
+ label_news_comment_added: Comment added to a news
+ label_news_latest: Latest news
+ label_news_new: Add news
+ label_news_edit: Edit news
+ label_news_plural: News
+ label_news_view_all: View all news
+ label_next: Next
+ label_next_week: Next week
+ label_no_change_option: "(No change)"
+ label_no_data: No data to display
+ label_no_parent_page: No parent page
+ label_nothing_display: Nothing to display
+ label_nobody: nobody
+ label_none: none
+ label_none_parentheses: "(none)"
+ label_not_contains: doesn't contain
+ label_not_equals: is not
+ label_notify_member_plural: Email updates
+ label_on: 'on'
+ label_open_menu: Open menu
+ label_open_work_packages: open
+ label_open_work_packages_plural: open
+ label_openproject_website: OpenProject website
+ label_optional_description: Description
+ label_options: Options
+ label_other: Other
+ label_overall_activity: Overall activity
+ label_overall_spent_time: Overall spent time
+ label_overview: Overview
+ label_page_title: Page title
+ label_part_of: part of
+ label_password_lost: Forgot your password?
+ label_password_rule_lowercase: Lowercase
+ label_password_rule_numeric: Numeric Characters
+ label_password_rule_special: Special Characters
+ label_password_rule_uppercase: Uppercase
+ label_path_encoding: Path encoding
+ label_pdf_with_descriptions: PDF with Descriptions
+ label_per_page: Per page
+ label_people: People
+ label_permissions: Permissions
+ label_permissions_report: Permissions report
+ label_personalize_page: Personalize this page
+ label_planning: Planning
+ label_please_login: Please log in
+ label_plugins: Plugins
+ label_precedes: precedes
+ label_preferences: Preferences
+ label_preview: Preview
+ label_previous: Previous
+ label_previous_week: Previous week
+ label_principal_invite_via_email: " or invite new users via email"
+ label_principal_search: Add existing users or groups
+ label_privacy_policy: Data privacy and security policy
+ label_product_version: Product version
+ label_professional_support: Professional support
+ label_profile: Profile
+ label_project_all: All Projects
+ label_project_count: Total number of projects
+ label_project_copy_notifications: Send email notifications during the project copy
+ label_project_latest: Latest projects
+ label_project_default_type: Allow empty type
+ label_project_hierarchy: Project hierarchy
+ label_project_new: New project
+ label_project_plural: Projects
+ label_project_settings: Project settings
+ label_projects_storage_information: "%{count} projects using %{storage} disk storage"
+ label_project_view_all: View all projects
+ label_project_show_details: Show project details
+ label_project_hide_details: प्रोजेक्ट विवरण लुकाउनुहोस्
+ label_public_projects: Public projects
+ label_query_new: New query
+ label_query_plural: Custom queries
+ label_query_menu_item: Query menu item
+ label_read: Read...
+ label_register: Create a new account
+ label_register_with_developer: Register as developer
+ label_registered_on: Registered on
+ label_registration_activation_by_email: account activation by email
+ label_registration_automatic_activation: automatic account activation
+ label_registration_manual_activation: manual account activation
+ label_related_work_packages: Related work packages
+ label_relates: related to
+ label_relates_to: related to
+ label_relation_delete: Delete relation
+ label_relation_new: New relation
+ label_release_notes: Release notes
+ label_remove_columns: Remove selected columns
+ label_renamed: renamed
+ label_reply_plural: Replies
+ label_report: Report
+ label_report_bug: Report a bug
+ label_report_plural: Reports
+ label_reported_work_packages: Reported work packages
+ label_reporting: Reporting
+ label_reporting_plural: Reportings
+ label_repository: Repository
+ label_repository_root: Repository root
+ label_repository_plural: Repositories
+ label_required: required
+ label_requires: requires
+ label_result_plural: Results
+ label_reverse_chronological_order: In reverse chronological order
+ label_revision: Revision
+ label_revision_id: Revision %{value}
+ label_revision_plural: Revisions
+ label_roadmap: Roadmap
+ label_roadmap_edit: Edit roadmap %{name}
+ label_roadmap_due_in: Due in %{value}
+ label_roadmap_no_work_packages: No work packages for this version
+ label_roadmap_overdue: "%{value} late"
+ label_role_and_permissions: Roles and permissions
+ label_role_new: New role
+ label_role_plural: भूमिकाहरु
+ label_role_search: Assign role to new members
+ label_scm: SCM
+ label_search: Search
+ label_send_information: Send account information to the user
+ label_send_test_email: Send a test email
+ label_settings: Settings
+ label_system_settings: System settings
+ label_show_completed_versions: Show completed versions
+ label_sort: Sort
+ label_sort_by: Sort by %{value}
+ label_sorted_by: sorted by %{value}
+ label_sort_higher: Move up
+ label_sort_highest: Move to top
+ label_sort_lower: Move down
+ label_sort_lowest: Move to bottom
+ label_spent_time: Spent time
+ label_start_to_end: start to end
+ label_start_to_start: start to start
+ label_statistics: Statistics
+ label_status: Status
+ label_status_updated: Work package status updated
+ label_stay_logged_in: Stay logged in
+ label_storage_free_space: Remaining disk space
+ label_storage_used_space: Used disk space
+ label_storage_group: Storage filesystem %{identifier}
+ label_storage_for: Encompasses storage for
+ label_string: Text
+ label_subproject: Subproject
+ label_subproject_new: New subproject
+ label_subproject_plural: Subprojects
+ label_subtask_plural: Subtasks
+ label_summary: Summary
+ label_system: System
+ label_system_storage: Storage information
+ label_table_of_contents: Table of contents
+ label_tag: Tag
+ label_text: Long text
+ label_this_month: this month
+ label_this_week: this week
+ label_this_year: this year
+ label_time_entry_plural: Spent time
+ label_time_sheet_menu: Time sheet
+ label_time_tracking: Time tracking
+ label_today: today
+ label_top_menu: Top Menu
+ label_topic_plural: Topics
+ label_total: Total
+ label_type_new: New type
+ label_type_plural: Types
+ label_ui: User Interface
+ label_update_work_package_done_ratios: Update work package done ratios
+ label_updated_time: Updated %{value} ago
+ label_updated_time_at: "%{author} %{age}"
+ label_updated_time_by: Updated by %{author} %{age} ago
+ label_used_by: Used by
+ label_used_by_types: Used by types
+ label_used_in_projects: Used in projects
+ label_user: User
+ label_user_named: User %{name}
+ label_user_activity: "%{value}'s activity"
+ label_user_anonymous: Anonymous
+ label_user_mail_option_all: For any event on all my projects
+ label_user_mail_option_none: No events
+ label_user_mail_option_only_assigned: Only for things I am assigned to
+ label_user_mail_option_only_my_events: Only for things I watch or I'm involved in
+ label_user_mail_option_only_owner: Only for things I am the owner of
+ label_user_mail_option_selected: For any event on the selected projects only
+ label_user_new: New user
+ label_user_plural: Users
+ label_user_search: Search for user
+ label_version_new: New version
+ label_version_plural: Versions
+ label_version_sharing_descendants: With subprojects
+ label_version_sharing_hierarchy: With project hierarchy
+ label_version_sharing_none: Not shared
+ label_version_sharing_system: With all projects
+ label_version_sharing_tree: With project tree
+ label_videos: Videos
+ label_view_all_revisions: View all revisions
+ label_view_diff: View differences
+ label_view_revisions: View revisions
+ label_watched_work_packages: Watched work packages
+ label_what_is_this: यो के हो?
+ label_week: Week
+ label_wiki_content_added: Wiki page added
+ label_wiki_content_updated: Wiki page updated
+ label_wiki_toc: Table of Contents
+ label_wiki_dont_show_menu_item: Do not show this wikipage in project navigation
+ label_wiki_edit: Wiki edit
+ label_wiki_edit_plural: Wiki edits
+ label_wiki_page_attachments: Wiki page attachments
+ label_wiki_page_id: Wiki page ID
+ label_wiki_navigation: Wiki navigation
+ label_wiki_page: Wiki page
+ label_wiki_page_plural: Wiki pages
+ label_wiki_show_index_page_link: Show submenu item 'Table of Contents'
+ label_wiki_show_menu_item: Show as menu item in project navigation
+ label_wiki_show_new_page_link: Show submenu item 'Create new child page'
+ label_wiki_show_submenu_item: 'Show as submenu item of '
+ label_wiki_start: Start page
+ label_work_package: Work package
+ label_work_package_added: Work package added
+ label_work_package_attachments: Work package attachments
+ label_work_package_category_new: New category
+ label_work_package_category_plural: Work package categories
+ label_work_package_hierarchy: Work package hierarchy
+ label_work_package_new: New work package
+ label_work_package_note_added: Work package note added
+ label_work_package_edit: Edit work package %{name}
+ label_work_package_plural: Work packages
+ label_work_package_priority_updated: Work package priority updated
+ label_work_package_status: Work package status
+ label_work_package_status_new: New status
+ label_work_package_status_plural: Work package statuses
+ label_work_package_types: Work package types
+ label_work_package_updated: Work package updated
+ label_work_package_tracking: Work package tracking
+ label_work_package_view_all: View all work packages
+ label_work_package_view_all_assigned_to_me: View all work packages assigned to me
+ label_work_package_view_all_reported_by_me: View all work packages reported by me
+ label_work_package_view_all_responsible_for: View all work packages that I am accountable
+ for
+ label_work_package_view_all_watched: View all watched work packages
+ label_work_package_watchers: Watchers
+ label_workflow: Workflow
+ label_workflow_plural: Workflows
+ label_workflow_summary: Summary
+ label_x_closed_work_packages_abbr:
+ one: 1 closed
+ other: "%{count} closed"
+ zero: 0 closed
+ label_x_comments:
+ one: 1 comment
+ other: "%{count} comments"
+ zero: no comments
+ label_x_open_work_packages_abbr:
+ one: 1 open
+ other: "%{count} open"
+ zero: 0 open
+ label_x_open_work_packages_abbr_on_total:
+ one: 1 open / %{total}
+ other: "%{count} open / %{total}"
+ zero: 0 open / %{total}
+ label_x_projects:
+ one: 1 project
+ other: "%{count} projects"
+ zero: no projects
+ label_year: Year
+ label_yesterday: yesterday
+ label_keyboard_function: Function
+ label_keyboard_shortcut: Shortcut
+ label_keyboard_accesskey: Accesskey
+ label_keyboard_shortcut_help_heading: Available Keyboard Shortcuts
+ label_keyboard_shortcut_within_project: 'Project related shortcuts:'
+ label_keyboard_shortcut_global_shortcuts: 'Global shortcuts:'
+ label_keyboard_shortcut_some_pages_only: 'Special shortcuts:'
+ label_keyboard_shortcut_search_global: Global search
+ label_keyboard_shortcut_search_project: Find a project
+ label_keyboard_shortcut_go_my_page: Go to my page
+ label_keyboard_shortcut_show_help: Show this help message
+ label_keyboard_shortcut_go_overview: Go to project overview
+ label_keyboard_shortcut_go_work_package: Go to project work packages
+ label_keyboard_shortcut_go_wiki: Go to project wiki
+ label_keyboard_shortcut_go_activity: Go to project activities
+ label_keyboard_shortcut_go_calendar: Go to project calendar
+ label_keyboard_shortcut_go_news: Go to project news
+ label_keyboard_shortcut_go_timelines: Go to timelines
+ label_keyboard_shortcut_new_work_package: Create new work package
+ label_keyboard_shortcut_details_package: Show work packages details pane
+ label_keyboard_shortcut_go_edit: Go to edit the current item (on detail pages only)
+ label_keyboard_shortcut_open_more_menu: Open more-menu (on detail pages only)
+ label_keyboard_shortcut_go_preview: Go to preview the current edit (on edit pages
+ only)
+ label_keyboard_shortcut_focus_previous_item: Focus previous list element (on some
+ lists only)
+ label_keyboard_shortcut_focus_next_item: Focus next list element (on some lists
+ only)
+ auth_source:
+ using_abstract_auth_source: Can't use an abstract authentication source.
+ ldap_error: 'LDAP-Error: %{error_message}'
+ ldap_auth_failed: Could not authenticate at the LDAP-Server.
+ macro_execution_error: Error executing the macro %{macro_name}
+ macro_unavailable: Macro %{macro_name} cannot be displayed.
+ macros:
+ placeholder: "[Placeholder] Macro %{macro_name}"
+ errors:
+ missing_or_invalid_parameter: Missing or invalid macro parameter.
+ legacy_warning:
+ timeline: This legacy timeline macro has been removed and is no longer available.
+ You can replace the functionality with an embedded table macro.
+ include_wiki_page:
+ errors:
+ page_not_found: Cannot find the wiki page '%{name}'.
+ circular_inclusion: Circular inclusion of pages detected.
+ create_work_package_link:
+ errors:
+ no_project_context: Calling create_work_package_link macro from outside project
+ context.
+ invalid_type: No type found with name '%{type}' in project '%{project}'.
+ link_name: New work package
+ link_name_type: New %{type_name}
+ mail:
+ actions: Actions
+ mail_body_account_activation_request: 'A new user (%{value}) has registered. The
+ account is pending your approval:'
+ mail_body_account_information: Your account information
+ mail_body_account_information_external: You can use your %{value} account to log
+ in.
+ mail_body_lost_password: 'To change your password, click on the following link:'
+ mail_body_register: 'To activate your account, click on the following link:'
+ mail_body_reminder: "%{count} work package(s) that are assigned to you are due in
+ the next %{days} days:"
+ mail_body_wiki_content_added: The '%{id}' wiki page has been added by %{author}.
+ mail_body_wiki_content_updated: The '%{id}' wiki page has been updated by %{author}.
+ mail_subject_account_activation_request: "%{value} account activation request"
+ mail_subject_lost_password: Your %{value} password
+ mail_subject_register: Your %{value} account activation
+ mail_subject_reminder: "%{count} work package(s) due in the next %{days} days"
+ mail_subject_wiki_content_added: "'%{id}' wiki page has been added"
+ mail_subject_wiki_content_updated: "'%{id}' wiki page has been updated"
+ mail_user_activation_limit_reached:
+ subject: User activation limit reached
+ message: |
+ A new user (%{email}) tried to create an account on an OpenProject environment that you manage (%{host}).
+ The user cannot activate their account since the user limit has been reached.
+ steps:
+ label: 'To allow the user to sign in you can either: '
+ a: Upgrade your payment plan ([here](upgrade_url))
+ b: Lock or delete an existing user ([here](users_url))
+ more_actions: More functions
+ noscript_description: You need to activate JavaScript in order to use OpenProject!
+ noscript_heading: JavaScript disabled
+ noscript_learn_more: Learn more
+ notice_accessibility_mode: The accessibility mode can be enabled in your [account
+ settings](url).
+ notice_account_activated: Your account has been activated. You can now log in.
+ notice_account_already_activated: The account has already been activated.
+ notice_account_invalid_token: Invalid activation token
+ notice_account_invalid_credentials: Invalid user or password
+ notice_account_invalid_credentials_or_blocked: Invalid user or password or the account
+ is blocked due to multiple failed login attempts. If so, it will be unblocked
+ automatically in a short time.
+ notice_account_lost_email_sent: An email with instructions to choose a new password
+ has been sent to you.
+ notice_account_new_password_forced: A new password is required.
+ notice_account_password_expired: Your password expired after %{days} days. Please
+ set a new one.
+ notice_account_password_updated: Password was successfully updated.
+ notice_account_pending: Your account was created and is now pending administrator
+ approval.
+ notice_account_register_done: Account was successfully created. To activate your
+ account, click on the link that was emailed to you.
+ notice_account_unknown_email: Unknown user.
+ notice_account_update_failed: Account setting could not be saved. Please have a
+ look at your account page.
+ notice_account_updated: Account was successfully updated.
+ notice_account_other_session_expired: तपाईंको खातामा बाँधिएका बाकीं सबै सत्रहरू
+ अमान्य गरिएको छ।
+ notice_account_wrong_password: Wrong password
+ notice_account_registered_and_logged_in: Welcome, your account has been activated.
+ You are logged in now.
+ notice_activation_failed: The account could not be activated.
+ notice_auth_stage_verification_error: Could not verify stage '%{stage}'.
+ notice_auth_stage_wrong_stage: Expected to finish authentication stage '%{expected}',
+ but '%{actual}' returned.
+ notice_auth_stage_error: Authentication stage '%{stage}' failed.
+ notice_can_t_change_password: This account uses an external authentication source.
+ Impossible to change the password.
+ notice_custom_options_deleted: Option '%{option_value}' and its %{num_deleted} occurrences
+ were deleted.
+ notice_email_error: An error occurred while sending mail (%{value})
+ notice_email_sent: An email was sent to %{value}
+ notice_failed_to_save_work_packages: 'Failed to save %{count} work package(s) on
+ %{total} selected: %{ids}.'
+ notice_failed_to_save_members: 'Failed to save member(s): %{errors}.'
+ notice_file_not_found: The page you were trying to access doesn't exist or has been
+ removed.
+ notice_forced_logout: You have been automatically logged out after %{ttl_time} minutes
+ of inactivity.
+ notice_internal_server_error: An error occurred on the page you were trying to access.
+ If you continue to experience problems please contact your %{app_title} administrator
+ for assistance.
+ notice_work_package_done_ratios_updated: Work package done ratios updated.
+ notice_locking_conflict: Information has been updated by at least one other user
+ in the meantime.
+ notice_locking_conflict_additional_information: The update(s) came from %{users}.
+ notice_locking_conflict_reload_page: Please reload the page, review the changes
+ and reapply your updates.
+ notice_member_added: Added %{name} to the project.
+ notice_members_added: Added %{number} users to the project.
+ notice_member_removed: Removed %{user} from project.
+ notice_member_deleted: "%{user} has been removed from the project and deleted."
+ notice_no_principals_found: No results found.
+ notice_bad_request: Bad Request.
+ notice_not_authorized: You are not authorized to access this page.
+ notice_not_authorized_archived_project: The project you're trying to access has
+ been archived.
+ notice_password_confirmation_failed: Your password is not correct. Cannot continue.
+ notice_principals_found_multiple: "There are %{number} results found. \n Tab to
+ focus the first result."
+ notice_principals_found_single: "There is one result. \n Tab to focus it."
+ notice_project_not_deleted: The project wasn't deleted.
+ notice_successful_connection: Successful connection.
+ notice_successful_create: Successful creation.
+ notice_successful_delete: Successful deletion.
+ notice_successful_update: Successful update.
+ notice_to_many_principals_to_display: |-
+ There are too many results.
+ Narrow down the search by typing in the name of the new member (or group).
+ notice_unable_delete_time_entry: Unable to delete time log entry.
+ notice_unable_delete_version: Unable to delete version.
+ notice_user_missing_authentication_method: User has yet to choose a password or
+ another way to sign in.
+ notice_user_invitation_resent: An invitation has been sent to %{email}.
+ present_access_key_value: 'Your %{key_name} is: %{value}'
+ notice_automatic_set_of_standard_type: Set standard type automatically.
+ notice_logged_out: You have been logged out.
+ notice_wont_delete_auth_source: The authentication mode cannot be deleted as long
+ as there are still users using it.
+ notice_project_cannot_update_custom_fields: 'You cannot update the project''s available
+ custom fields. The project is invalid: %{errors}'
+ notice_attachment_migration_wiki_page: 'This page was generated automatically during
+ the update of OpenProject. It contains all attachments previously associated with
+ the %{container_type} "%{container_name}".
+
+'
+ number:
+ format:
+ delimiter: ''
+ precision: 3
+ separator: "."
+ human:
+ format:
+ delimiter: ''
+ precision: 1
+ storage_units:
+ format: "%n %u"
+ units:
+ byte:
+ one: Byte
+ other: Bytes
+ gb: GB
+ kb: kB
+ mb: MB
+ tb: TB
+ onboarding:
+ heading_getting_started: Get an overview
+ text_getting_started_description: Get a quick overview of project management and
+ team collaboration with OpenProject.
+ text_show_again: You can restart this video from the help menu
+ welcome: Welcome to OpenProject
+ select_language: Please select your language
+ permission_add_work_package_notes: Add notes
+ permission_add_work_packages: Add work packages
+ permission_add_messages: Post messages
+ permission_add_project: Create project
+ permission_add_subprojects: Create subprojects
+ permission_add_work_package_watchers: Add watchers
+ permission_browse_repository: Read-only access to repository (browse and checkout)
+ permission_change_wiki_parent_page: Change parent wiki page
+ permission_comment_news: Comment news
+ permission_commit_access: Read/write access to repository (commit)
+ permission_copy_projects: Copy projects
+ permission_delete_work_package_watchers: Delete watchers
+ permission_delete_work_packages: Delete work packages
+ permission_delete_messages: Delete messages
+ permission_delete_own_messages: Delete own messages
+ permission_delete_reportings: Delete reportings
+ permission_delete_timelines: Delete timelines
+ permission_delete_wiki_pages: Delete wiki pages
+ permission_delete_wiki_pages_attachments: Delete attachments
+ permission_edit_work_package_notes: Edit notes
+ permission_edit_work_packages: Edit work packages
+ permission_edit_messages: Edit messages
+ permission_edit_own_work_package_notes: Edit own notes
+ permission_edit_own_messages: Edit own messages
+ permission_edit_own_time_entries: Edit own time logs
+ permission_edit_project: Edit project
+ permission_edit_reportings: Edit reportings
+ permission_edit_time_entries: Edit time logs
+ permission_edit_timelines: Edit timelines
+ permission_edit_wiki_pages: Edit wiki pages
+ permission_export_work_packages: Export work packages
+ permission_export_wiki_pages: Export wiki pages
+ permission_list_attachments: List attachments
+ permission_log_time: Log spent time
+ permission_manage_boards: Manage forums
+ permission_manage_categories: Manage work package categories
+ permission_manage_work_package_relations: Manage work package relations
+ permission_manage_members: Manage members
+ permission_manage_news: Manage news
+ permission_manage_project_activities: Manage project activities
+ permission_manage_public_queries: Manage public views
+ permission_manage_repository: Manage repository
+ permission_manage_subtasks: Manage subtasks
+ permission_manage_versions: Manage versions
+ permission_manage_wiki: Manage wiki
+ permission_manage_wiki_menu: Manage wiki menu
+ permission_move_work_packages: Move work packages
+ permission_protect_wiki_pages: Protect wiki pages
+ permission_rename_wiki_pages: Rename wiki pages
+ permission_save_queries: Save views
+ permission_select_project_modules: Select project modules
+ permission_manage_types: Select types
+ permission_view_calendar: View calendar
+ permission_view_changesets: View repository revisions in OpenProject
+ permission_view_commit_author_statistics: View commit author statistics
+ permission_view_work_package_watchers: View watchers list
+ permission_view_work_packages: View work packages
+ permission_view_messages: View messages
+ permission_view_members: View members
+ permission_view_reportings: View reportings
+ permission_view_time_entries: View spent time
+ permission_view_timelines: View timelines
+ permission_view_wiki_edits: View wiki history
+ permission_view_wiki_pages: View wiki
+ placeholders:
+ default: "-"
+ project:
+ destroy:
+ confirmation: If you continue, the project %{identifier} and all related data
+ will be permanently destroyed.
+ info: Deleting the project is an irreversible action.
+ project_verification: Enter the project's name %{name} to verify the deletion.
+ subprojects_confirmation: 'Its subproject(s): %{value} will also be deleted.'
+ title: Delete the project %{name}
+ identifier:
+ warning_one: Members of the project will have to relocate the project's repositories.
+ warning_two: Existing links to the project will no longer work.
+ title: Change the project's identifier
+ archive:
+ are_you_sure: Are you sure you want to archive the project '%{name}'?
+ project_module_activity: Activity
+ project_module_boards: Forums
+ project_module_calendar: Calendar
+ project_module_work_package_tracking: Work package tracking
+ project_module_news: News
+ project_module_repository: Repository
+ project_module_time_tracking: Time tracking
+ project_module_timelines: Timelines
+ project_module_wiki: Wiki
+ query:
+ attribute_and_direction: "%{attribute} (%{direction})"
+ query_fields:
+ active_or_archived: Active or archived
+ assigned_to_role: Assignee's role
+ member_of_group: Assignee's group
+ assignee_or_group: Assignee or belonging group
+ subproject_id: Subproject
+ name_or_identifier: Name or identifier
+ repositories:
+ at_identifier: at %{identifier}
+ atom_revision_feed: Atom revision feed
+ autofetch_information: |-
+ Check this if you want repositories to be updated automatically when accessing the repository module page.
+ This encompasses the retrieval of commits from the repository and refreshing the required disk storage.
+ checkout:
+ access:
+ readwrite: Read + Write
+ read: Read-only
+ none: No checkout access, you may only view the repository through this application.
+ access_permission: Your permissions on this repository
+ url: Checkout URL
+ base_url_text: |-
+ The base URL to use for generating checkout URLs (e.g., https://myserver.example.org/repos/).
+ Note: The base URL is only used for rewriting checkout URLs in managed repositories. Other repositories are not altered.
+ default_instructions:
+ git: |-
+ The data contained in this repository can be downloaded to your computer with Git.
+ Please consult the documentation of Git if you need more information on the checkout procedure and available clients.
+ subversion: |-
+ The data contained in this repository can be downloaded to your computer with Subversion.
+ Please consult the documentation of Subversion if you need more information on the checkout procedure and available clients.
+ enable_instructions_text: Displays checkout instructions defined below on all
+ repository-related pages.
+ instructions: Checkout instructions
+ show_instructions: Display checkout instructions
+ text_instructions: This text is displayed alongside the checkout URL for guidance
+ on how to check out the repository.
+ not_available: Checkout instructions are not defined for this repository. Ask
+ your administrator to enable them for this repository in the system settings.
+ create_managed_delay: 'Please note: The repository is managed, it is created asynchronously
+ on the disk and will be available shortly.'
+ create_successful: The repository has been registered.
+ delete_sucessful: The repository has been deleted.
+ destroy:
+ confirmation: If you continue, this will permanently delete the managed repository.
+ info: Deleting the repository is an irreversible action.
+ info_not_managed: 'Note: This will NOT delete the contents of this repository,
+ as it is not managed by OpenProject.'
+ managed_path_note: 'The following directory will be erased: %{path}'
+ repository_verification: Enter the project's identifier %{identifier} to verify
+ the deletion of its repository.
+ subtitle: Do you really want to delete the %{repository_type} of the project
+ %{project_name}?
+ subtitle_not_managed: Do you really want to remove the linked %{repository_type}
+ %{url} from the project %{project_name}?
+ title: Delete the %{repository_type}
+ title_not_managed: Remove the linked %{repository_type}?
+ errors:
+ build_failed: Unable to create the repository with the selected configuration.
+ %{reason}
+ managed_delete: Unable to delete the managed repository.
+ managed_delete_local: 'Unable to delete the local repository on filesystem at
+ ''%{path}'': %{error_message}'
+ empty_repository: The repository exists, but is empty. It does not contain any
+ revisions yet.
+ exists_on_filesystem: The repository directory already exists in the filesystem.
+ filesystem_access_failed: 'An error occurred while accessing the repository
+ in the filesystem: %{message}'
+ not_manageable: This repository vendor cannot be managed by OpenProject.
+ path_permission_failed: 'An error occurred trying to create the following path:
+ %{path}. Please ensure that OpenProject may write to that folder.'
+ unauthorized: You're not authorized to access the repository or the credentials
+ are invalid.
+ unavailable: The repository is unavailable.
+ exception_title: 'Cannot access the repository: %{message}'
+ disabled_or_unknown_type: The selected type %{type} is disabled or no longer
+ available for the SCM vendor %{vendor}.
+ disabled_or_unknown_vendor: The SCM vendor %{vendor} is disabled or no longer
+ available.
+ remote_call_failed: 'Calling the managed remote failed with message ''%{message}''
+ (Code: %{code})'
+ remote_invalid_response: Received an invalid response from the managed remote.
+ remote_save_failed: Could not save the repository with the parameters retrieved
+ from the remote.
+ git:
+ instructions:
+ managed_url: This is the URL of the managed (local) Git repository.
+ path: Specify the path to your local Git repository ( e.g., %{example_path}
+ ). You can also use remote repositories which are cloned to a local copy
+ by using a value starting with http(s):// or file://.
+ path_encoding: 'Override Git path encoding (Default: UTF-8)'
+ local_title: Link existing local Git repository
+ local_url: Local URL
+ local_introduction: If you have an existing local Git repository, you can link
+ it with OpenProject to access it from within the application.
+ managed_introduction: Let OpenProject create and integrate a local Git repository
+ automatically.
+ managed_title: Git repository integrated into OpenProject
+ managed_url: Managed URL
+ path: Path to Git repository
+ path_encoding: Path encoding
+ go_to_revision: Go to revision
+ managed_remote: Managed repositories for this vendor are handled remotely.
+ managed_remote_note: Information on the URL and path of this repository is not
+ available prior to its creation.
+ managed_url: Managed URL
+ settings:
+ automatic_managed_repos_disabled: Disable automatic creation
+ automatic_managed_repos: Automatic creation of managed repositories
+ automatic_managed_repos_text: By setting a vendor here, newly created projects
+ will automatically receive a managed repository of this vendor.
+ scm_vendor: Source control management system
+ scm_type: Repository type
+ scm_types:
+ local: Link existing local repository
+ existing: Link existing repository
+ managed: Create new repository in OpenProject
+ storage:
+ not_available: Disk storage consumption is not available for this repository.
+ update_timeout: |-
+ Keep the last required disk space information for a repository for N minutes.
+ As counting the required disk space of a repository may be costly, increase this value to reduce performance impact.
+ subversion:
+ existing_title: Existing Subversion repository
+ existing_introduction: If you have an existing Subversion repository, you can
+ link it with OpenProject to access it from within the application.
+ existing_url: Existing URL
+ instructions:
+ managed_url: This is the URL of the managed (local) Subversion repository.
+ url: |-
+ Enter the repository URL. This may either target a local repository (starting with %{local_proto} ), or a remote repository.
+ The following URL schemes are supported:
+ managed_title: Subversion repository integrated into OpenProject
+ managed_introduction: Let OpenProject create and integrate a local Subversion
+ repository automatically.
+ managed_url: Managed URL
+ password: Repository Password
+ username: Repository username
+ truncated: Sorry, we had to truncate this directory to %{limit} files. %{truncated}
+ entries were omitted from the list.
+ named_repository: "%{vendor_name} repository"
+ update_settings_successful: The settings have been sucessfully saved.
+ url: URL to repository
+ warnings:
+ cannot_annotate: This file cannot be annotated.
+ search_input_placeholder: Search ...
+ setting_email_delivery_method: Email delivery method
+ setting_sendmail_location: Location of the sendmail executable
+ setting_smtp_enable_starttls_auto: Automatically use STARTTLS if available
+ setting_smtp_ssl: Use SSL connection
+ setting_smtp_address: SMTP server
+ setting_smtp_port: SMTP port
+ setting_smtp_authentication: SMTP authentication
+ setting_smtp_user_name: SMTP username
+ setting_smtp_password: SMTP password
+ setting_smtp_domain: SMTP HELLO domain
+ setting_activity_days_default: Days displayed on project activity
+ setting_app_subtitle: Application subtitle
+ setting_app_title: Application title
+ setting_attachment_max_size: Attachment max. size
+ setting_autofetch_changesets: Autofetch repository changes
+ setting_autologin: Autologin
+ setting_available_languages: Available languages
+ setting_bcc_recipients: Blind carbon copy recipients (bcc)
+ setting_brute_force_block_after_failed_logins: Block user after this number of failed
+ login attempts
+ setting_brute_force_block_minutes: Time the user is blocked for
+ setting_cache_formatted_text: Cache formatted text
+ setting_use_wysiwyg_description: Select to enable CKEditor5 WYSIWYG editor for all
+ users by default. CKEditor has limited functionality for GFM Markdown.
+ setting_column_options: Customize the appearance of the work package lists
+ setting_commit_fix_keywords: Fixing keywords
+ setting_commit_logs_encoding: Commit messages encoding
+ setting_commit_logtime_activity_id: Activity for logged time
+ setting_commit_logtime_enabled: Enable time logging
+ setting_commit_ref_keywords: Referencing keywords
+ setting_consent_time: Consent time
+ setting_consent_info: Consent information text
+ setting_consent_required: Consent required
+ setting_consent_decline_mail: Consent contact mail address
+ setting_cross_project_work_package_relations: Allow cross-project work package relations
+ setting_date_format: Date format
+ setting_default_language: Default language
+ setting_default_notification_option: Default notification option
+ setting_default_projects_modules: Default enabled modules for new projects
+ setting_default_projects_public: New projects are public by default
+ setting_diff_max_lines_displayed: Max number of diff lines displayed
+ setting_display_subprojects_work_packages: Display subprojects work packages on
+ main projects by default
+ setting_emails_footer: Emails footer
+ setting_emails_header: Emails header
+ setting_email_login: Use e-mail as login
+ setting_enabled_scm: Enabled SCM
+ setting_feeds_enabled: Enable Feeds
+ setting_feeds_limit: Feed content limit
+ setting_file_max_size_displayed: Max size of text files displayed inline
+ setting_host_name: Host name
+ setting_invitation_expiration_days: Activation E-Mail expires after
+ setting_work_package_done_ratio: Calculate the work package done ratio with
+ setting_work_package_done_ratio_field: Use the work package field
+ setting_work_package_done_ratio_status: Use the work package status
+ setting_work_package_done_ratio_disabled: Disable (hide the progress)
+ setting_work_package_list_default_columns: Display by default
+ setting_work_package_list_summable_columns: Summable
+ setting_work_package_properties: Work package properties
+ setting_work_package_startdate_is_adddate: Use current date as start date for new
+ work packages
+ setting_work_packages_export_limit: Work packages export limit
+ setting_journal_aggregation_time_minutes: Display journals as aggregated within
+ setting_log_requesting_user: Log user login, name, and mail address for all requests
+ setting_login_required: Authentication required
+ setting_mail_from: Emission email address
+ setting_mail_handler_api_key: API key
+ setting_mail_handler_body_delimiters: Truncate emails after one of these lines
+ setting_mail_handler_body_delimiter_regex: Truncate emails matching this regex
+ setting_mail_handler_ignore_filenames: इमेलमा संलग्नहरु बेवास्ता गरियो
+ setting_new_project_user_role_id: Role given to a non-admin user who creates a project
+ setting_password_active_rules: Active character classes
+ setting_password_count_former_banned: Number of most recently used passwords banned
+ for reuse
+ setting_password_days_valid: Number of days, after which to enforce a password change
+ setting_password_min_length: न्यूनतम लम्बाई
+ setting_password_min_adhered_rules: Minimum number of required classes
+ setting_per_page_options: Objects per page options
+ setting_plain_text_mail: Plain text mail (no HTML)
+ setting_protocol: Protocol
+ setting_security_badge_displayed: सुरक्षा बिल्ला प्रदर्शन गर्नुहोस्
+ setting_registration_footer: Registration footer
+ setting_repositories_automatic_managed_vendor: Automatic repository vendor type
+ setting_repositories_encodings: Repositories encodings
+ setting_repository_authentication_caching_enabled: Enable caching for authentication
+ request of version control software
+ setting_repository_storage_cache_minutes: Repository disk size cache
+ setting_repository_checkout_display: Show checkout instructions
+ setting_repository_checkout_base_url: Checkout base URL
+ setting_repository_checkout_text: Checkout instruction text
+ setting_repository_log_display_limit: Maximum number of revisions displayed on file
+ log
+ setting_repository_truncate_at: Maximum number of files displayed in the repository
+ browser
+ setting_rest_api_enabled: Enable REST web service
+ setting_self_registration: Self-registration
+ setting_sequential_project_identifiers: Generate sequential project identifiers
+ setting_session_ttl: Session expiry time after inactivity
+ setting_session_ttl_hint: Value below 5 works like disabled
+ setting_session_ttl_enabled: Session expires
+ setting_start_of_week: Week starts on
+ setting_sys_api_enabled: Enable repository management web service
+ setting_sys_api_description: The repository management web service provides integration
+ and user authorization for accessing repositories.
+ setting_time_format: Time format
+ setting_accessibility_mode_for_anonymous: Enable accessibility mode for anonymous
+ users
+ setting_user_format: Users display format
+ setting_user_default_timezone: Users default time zone
+ setting_users_deletable_by_admins: User accounts deletable by admins
+ setting_users_deletable_by_self: Users allowed to delete their accounts
+ setting_welcome_text: Welcome block text
+ setting_welcome_title: Welcome block title
+ setting_welcome_on_homescreen: Display welcome block on homescreen
+ setting_wiki_compression: Wiki history compression
+ setting_work_package_group_assignment: Allow assignment to groups
+ setting_work_package_list_default_highlighting_mode: Default highlighting mode
+ setting_work_package_list_default_highlighted_attributes: Default inline highlighted
+ attributes
+ settings:
+ general: General
+ other: Other
+ passwords: Passwords
+ session: Session
+ brute_force_prevention: Automated user blocking
+ user:
+ default_preferences: Default preferences
+ deletion: Deletion
+ highlighting:
+ mode_long:
+ inline: Highlight attribute(s) inline
+ none: No highlighting
+ status: Entire row by Status
+ type: Entire row by Type
+ priority: Entire row by Priority
+ text_formatting:
+ markdown: Markdown
+ plain: Plain text
+ status_active: active
+ status_archived: archived
+ status_invited: invited
+ status_locked: locked
+ status_registered: registered
+ support:
+ array:
+ sentence_connector: and
+ skip_last_comma: 'false'
+ text_accessibility_hint: The accessibility mode is designed for users who are blind,
+ motorically handicaped or have a bad eyesight. For the latter focused elements
+ are specially highlighted. Please notice, that the Backlogs module is not available
+ in this mode.
+ text_access_token_hint: Access tokens allow you to grant external applications access
+ to resources in OpenProject.
+ text_analyze: 'Further analyze: %{subject}'
+ text_are_you_sure: Are you sure?
+ text_are_you_sure_with_children: Delete work package and all child work packages?
+ text_assign_to_project: Assign to the project
+ text_form_configuration: 'You can customize which fields will be displayed in work
+ package forms. You can freely group the fields to reflect the needs for your domain.
+
+'
+ text_form_configuration_drag_to_activate: Drag fields from here to activate them
+ text_form_configuration_required_attribute: Attribute is marked required and thus
+ always shown
+ text_caracters_maximum: "%{count} characters maximum."
+ text_caracters_minimum: Must be at least %{count} characters long.
+ text_comma_separated: Multiple values allowed (comma separated).
+ text_comment_wiki_page: 'Comment to wiki page: %{page}'
+ text_custom_field_possible_values_info: One line for each value
+ text_custom_field_hint_activate_per_project: 'When using custom fields: Keep in
+ mind that custom fields need to be activated per project, too.
+
+'
+ text_custom_field_hint_activate_per_project_and_type: 'Custom fields need to be
+ activated per work package type and per project.
+
+'
+ text_custom_logo_instructions: 'A white logo on transparent background is recommended.
+ For best results on both, conventional and retina displays, make sure your image''s
+ dimensions are 460px by 60px.
+
+'
+ text_custom_favicon_instructions: 'This is the tiny icon that appears in your browser
+ window/tab next to the page''s title. It''s needs to be a squared 32 by 32 pixels
+ sized PNG image file with a transparent background.
+
+'
+ text_custom_touch_icon_instructions: 'This is the icon that appears in your mobile
+ or tablet when you place a bookmark on your homescreen. It''s needs to be a squared
+ 180 by 180 pixels sized PNG image file. Please make sure the image''s background
+ is not transparent otherwise it will look bad on iOS.
+
+'
+ text_database_allows_tsv: Database allows TSVector (optional)
+ text_default_administrator_account_changed: Default administrator account changed
+ text_default_encoding: 'Default: UTF-8'
+ text_destroy: Delete
+ text_destroy_with_associated: 'There are additional objects assossociated with the
+ work package(s) that are to be deleted. Those objects are of the following types:'
+ text_destroy_what_to_do: What do you want to do?
+ text_diff_truncated: "... This diff was truncated because it exceeds the maximum
+ size that can be displayed."
+ text_email_delivery_not_configured: |-
+ Email delivery is not configured, and notifications are disabled.
+ Configure your SMTP server in config/configuration.yml and restart the application to enable them.
+ text_enumeration_category_reassign_to: 'Reassign them to this value:'
+ text_enumeration_destroy_question: "%{count} objects are assigned to this value."
+ text_file_repository_writable: Attachments directory writable
+ text_git_repo_example: a bare and local repository (e.g. /gitrepo, c:\gitrepo)
+ text_hint_date_format: Enter a date in the form of YYYY-MM-DD. Other formats may
+ be changed to an unwanted date.
+ text_hint_disable_with_0: 'Note: Disable with 0'
+ text_hours_between: Between %{min} and %{max} hours.
+ text_work_package_added: Work package %{id} has been reported by %{author}.
+ text_work_package_category_destroy_assignments: Remove category assignments
+ text_work_package_category_destroy_question: Some work packages (%{count}) are assigned
+ to this category. What do you want to do?
+ text_work_package_category_reassign_to: Reassign work packages to this category
+ text_work_package_updated: Work package %{id} has been updated by %{author}.
+ text_work_package_watcher_added: You have been added as a watcher to Work package
+ %{id} by %{watcher_setter}.
+ text_work_packages_destroy_confirmation: Are you sure you want to delete the selected
+ work package(s)?
+ text_work_packages_ref_in_commit_messages: Referencing and fixing work packages
+ in commit messages
+ text_journal_added: "%{label} %{value} added"
+ text_journal_aggregation_time_explanation: Combine journals for display if their
+ age difference is less than the specified timespan. This will also delay mail
+ notifications by the same amount of time.
+ text_journal_changed: "%{label} changed from %{old}
to %{new}"
+ text_journal_changed_plain: "%{label} changed from %{old} \nto %{new}"
+ text_journal_changed_no_detail: "%{label} updated"
+ text_journal_changed_with_diff: "%{label} changed (%{link})"
+ text_journal_deleted: "%{label} deleted (%{old})"
+ text_journal_deleted_with_diff: "%{label} deleted (%{link})"
+ text_journal_set_to: "%{label} set to %{value}"
+ text_journal_set_with_diff: "%{label} set (%{link})"
+ text_latest_note: 'The latest comment is: %{note}'
+ text_length_between: Length between %{min} and %{max} characters.
+ text_line_separated: Multiple values allowed (one line for each value).
+ text_load_default_configuration: Load the default configuration
+ text_min_max_length_info: 0 means no restriction
+ text_no_roles_defined: There are no roles defined.
+ text_no_access_tokens_configurable: There are no access tokens which can be configured.
+ text_no_configuration_data: |-
+ Roles, types, work package statuses and workflow have not been configured yet.
+ It is highly recommended to load the default configuration. You will be able to modify it once loaded.
+ text_no_notes: There are no comments available for this work package.
+ text_notice_too_many_values_are_inperformant: 'Note: Displaying more than 100 items
+ per page can increase the page load time.'
+ text_notice_security_badge_displayed_html: 'Note: if enabled, this will display
+ a badge with your installation status in the %{information_panel_label}
+ administration panel, and on the home page. It is displayed to administrators
+ only.
The badge will check your current OpenProject version against the
+ official OpenProject release database to alert you of any updates or known vulnerabilities.
+ For more information on what the check provides, what data is needed to provide
+ available updates, and how to disable this check, please visit the
+ configuration documentation.
+
+'
+ text_own_membership_delete_confirmation: |-
+ You are about to remove some or all of your permissions and may no longer be able to edit this project after that.
+ Are you sure you want to continue?
+ text_plugin_assets_writable: Plugin assets directory writable
+ text_powered_by: Powered by %{link}
+ text_project_identifier_info: Only lower case letters (a-z), numbers, dashes and
+ underscores are allowed, must start with a lower case letter.
+ text_reassign: 'Reassign to work package:'
+ text_regexp_info: eg. ^[A-Z0-9]+$
+ text_regexp_multiline: The regex is applied in a multi-line mode. e.g., ^---\s+
+ text_repository_usernames_mapping: |-
+ Select or update the OpenProject user mapped to each username found in the repository log.
+ Users with the same OpenProject and repository username or email are automatically mapped.
+ text_select_mail_notifications: Select actions for which email notifications should
+ be sent.
+ text_status_changed_by_changeset: Applied in changeset %{value}.
+ text_table_difference_description: In this table the single %{entries} are shown.
+ You can view the difference between any two entries by first selecting the according
+ checkboxes in the table. When clicking on the button below the table the differences
+ are shown.
+ text_time_logged_by_changeset: Applied in changeset %{value}.
+ text_tip_work_package_begin_day: work package beginning this day
+ text_tip_work_package_begin_end_day: work package beginning and ending this day
+ text_tip_work_package_end_day: work package ending this day
+ text_type_no_workflow: No workflow defined for this type
+ text_unallowed_characters: Unallowed characters
+ text_user_invited: The user has been invited and is pending registration.
+ text_user_wrote: "%{value} wrote:"
+ text_warn_on_leaving_unsaved: The work package contains unsaved text that will be
+ lost if you leave this page.
+ text_what_did_you_change_click_to_add_comment: What did you change? Click to add
+ comment
+ text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all
+ its content?
+ text_wiki_page_destroy_children: Delete child pages and all their descendants
+ text_wiki_page_destroy_question: This page has %{descendants} child page(s) and
+ descendant(s). What do you want to do?
+ text_wiki_page_nullify_children: Keep child pages as root pages
+ text_wiki_page_reassign_children: Reassign child pages to this parent page
+ text_workflow_edit: Select a role and a type to edit the workflow
+ text_zoom_in: Zoom in
+ text_zoom_out: Zoom out
+ text_setup_mail_configuration: Configure your email provider
+ time:
+ am: am
+ formats:
+ default: "%m/%d/%Y %I:%M %p"
+ long: "%B %d, %Y %H:%M"
+ short: "%d %b %H:%M"
+ time: "%I:%M %p"
+ pm: pm
+ timeframe:
+ show: Show timeframe
+ end: to
+ start: from
+ timelines:
+ admin_menu:
+ color: Color
+ colors: Colors
+ associations: Dependencies
+ board_could_not_be_saved: Board could not be saved
+ button_delete_all: Delete all
+ change: Change in planning
+ children: Child elements
+ color_could_not_be_saved: Color could not be saved
+ current_planning: Current planning
+ dates: Dates
+ dates_are_calculated_based_on_sub_elements: Dates are calculated based on sub
+ elements.
+ delete_all: Delete all
+ delete_thing: Delete
+ duration: Duration
+ duration_days:
+ one: 1 day
+ other: "%{count} days"
+ edit_color: Edit color
+ edit_thing: Edit
+ edit_timeline: Edit timeline report %{timeline}
+ delete_timeline: Delete timeline report %{timeline}
+ empty: "(empty)"
+ enable_type_in_project: Enable type "%{type}"
+ end: End
+ errors:
+ not_implemented: The timeline could not be rendered because it uses a feature
+ that is not yet implemented.
+ report_comparison: The timeline could not render the configured comparisons.
+ Please check the appropriate section in the configuration, resetting it can
+ help solve this problem.
+ report_epicfail: The timeline could not be loaded due to an unexpected error.
+ report_timeout: The timeline could not be loaded in a reasonable amount of time.
+ filter:
+ errors:
+ timeframe_start: 'The timeframe start '
+ timeframe_end: 'The timeframe end '
+ compare_to_relative: 'The value of the relative comparison '
+ compare_to_absolute: 'The value of the absolute comparison '
+ planning_element_time_relative_one: 'The start for work packages in a certain
+ timeframe '
+ planning_element_time_relative_two: 'The end for work packages in a certain
+ timeframe '
+ planning_element_time_absolute_one: 'The start for work packages in a certain
+ timeframe '
+ planning_element_time_absolute_two: 'The end for work packages in a certain
+ timeframe '
+ sort:
+ sortation: Sort by
+ alphabet: alphabet
+ explicit_order: explicit order
+ project_sortation: Sort projects by
+ date: date
+ default: default
+ column:
+ assigned_to: Assignee
+ type: Type
+ due_date: End date
+ name: Name
+ status: Status
+ start_date: Start date
+ columns: Columns
+ comparisons: Comparisons
+ comparison:
+ absolute: Absolute
+ none: None
+ relative: Relative
+ compare_relative_prefix: Compare current planning to
+ compare_relative_suffix: ago
+ compare_absolute: Compare current planning to %{date}
+ time_relative:
+ days: days
+ weeks: weeks
+ months: months
+ exclude_own_work_packages: Hide work packages from this project
+ exclude_reporters: Hide other projects
+ exclude_empty: Hide empty projects
+ grouping: Grouping
+ grouping_hide_group: Hide group "%{group}"
+ grouping_one: First grouping criterion
+ grouping_one_phrase: Is a subproject of
+ grouping_other: Other
+ hide_chart: Hide chart
+ noneElement: "(none)"
+ noneSelection: "(none)"
+ outline: Initial outline expansion
+ parent: Show subprojects of
+ work_package_filters: Filter work packages
+ work_package_responsible: Show work packages with accountable
+ work_package_assignee: Show work packages with assignee
+ types: Show types
+ status: Show status
+ project_time_filter: Projects with a work package of a certain type in a certain
+ timeframe
+ project_time_filter_timeframe: Timeframe
+ project_time_filter_historical_from: from
+ project_time_filter_historical_to: to
+ project_time_filter_historical: "%{start_label} %{startdate} %{end_label} %{enddate}"
+ project_time_filter_relative: "%{start_label} %{startspan}%{startspanunit} ago,
+ %{end_label} %{endspan}%{endspanunit} from now"
+ project_filters: Filter projects
+ project_responsible: Show projects with accountable
+ project_status: Show project status
+ timeframe: Show timeframe
+ timeframe_end: to
+ timeframe_start: from
+ timeline: General Settings
+ zoom: Zoom factor
+ history: History
+ new_color: New color
+ new_association: New dependency
+ new_work_package: New work package
+ new_reporting: New reporting
+ new_timeline: New timeline report
+ no_projects_for_reporting_available: There are no projects to which a reporting
+ association can be created.
+ no_right_to_view_timeline: You do not have the necessary permission to view the
+ linked timeline.
+ no_timeline_for_id: There is no timeline with ID %{id}.
+ notice_successful_deleted_all_elements: Successfully deleted all elements
+ outline: Reset Outline
+ outlines:
+ aggregation: Show aggregations only
+ level1: Expand level 1
+ level2: Expand level 2
+ level3: Expand level 3
+ level4: Expand level 4
+ level5: Expand level 5
+ all: Show all
+ reporting_for_project:
+ show: 'Status reported to project: %{title}'
+ edit_delete: 'status report for project: %{title}'
+ history: 'History for status for project: %{title}'
+ reporting:
+ delete: 'Delete status: %{comment}'
+ edit: 'Edit status: %{comment}'
+ show: 'Status: %{comment}'
+ planning_element_update: 'Update: %{title}'
+ type_could_not_be_saved: Type could not be saved
+ reporting_could_not_be_saved: Reporting could not be saved
+ properties: Properties
+ really_delete_color: 'Are you sure, you want to delete the following color? Types
+ using this color will not be deleted.
+
+'
+ really_delete_reporting: 'Are you sure, you want to delete the following reporting?
+ Previous reporting statuses will be deleted, too.
+
+'
+ start: Start
+ timeline: Timeline report
+ timelines: Timeline reports
+ settings: Timelines
+ vertical_work_package: Vertical work packages
+ you_are_viewing_the_selected_timeline: You are viewing the selected timeline report
+ zoom:
+ in: Zoom in
+ out: Zoom out
+ days: Days
+ weeks: Weeks
+ months: Months
+ quarters: Quarters
+ years: Years
+ title_remove_and_delete_user: Remove the invited user from the project and delete
+ him/her.
+ title_enterprise_upgrade: Upgrade to unlock more users.
+ tooltip_user_default_timezone: 'The default time zone for new users. Can be changed
+ in a user''s settings.
+
+'
+ tooltip_resend_invitation: 'Sends another invitation email with a fresh token in
+ case the old one expired or the user did not get the original email. Can also
+ be used for active users to choose a new authentication method. When used with
+ active users their status will be changed to ''invited''.
+
+'
+ tooltip:
+ setting_email_login: 'If enabled a user will be unable to chose a login during
+ registration. Instead their given e-mail address will serve as the login. An
+ administrator may still change the login separately.
+
+'
+ queries:
+ apply_filter: Apply preconfigured filter
+ top_menu:
+ additional_resources: Additional resources
+ getting_started: Getting started
+ help_and_support: Help and support
+ total_progress: Total progress
+ user:
+ all: all
+ active: active
+ activate: Activate
+ activate_and_reset_failed_logins: Activate and reset failed logins
+ authentication_provider: Authentication Provider
+ authentication_settings_disabled_due_to_external_authentication: 'This user authenticates
+ via an external authentication provider, so there is no password in OpenProject
+ to be changed.
+
+'
+ authorization_rejected: You are not allowed to sign in.
+ assign_random_password: Assign random password (sent to user via email)
+ blocked: locked temporarily
+ blocked_num_failed_logins:
+ one: locked temporarily (one failed login attempt)
+ other: locked temporarily (%{count} failed login attempts)
+ confirm_status_change: You are about to change the status of '%{name}'. Are you
+ sure you want to continue?
+ deleted: Deleted user
+ error_status_change_failed: 'Changing the user status failed due to the following
+ errors: %{errors}'
+ invite: Invite user via email
+ invited: invited
+ lock: Lock permanently
+ locked: locked permanently
+ no_login: This user authenticates through login by password. Since it is disabled,
+ they cannot log in.
+ password_change_unsupported: Change of password is not supported.
+ registered: registered
+ reset_failed_logins: Reset failed logins
+ settings:
+ mail_notifications: Send email notifications
+ mail_project_explanaition: For unselected projects, you will only receive notifications
+ about things you watch or you're involved in (e.g. work packages you're the
+ author or assignee of).
+ mail_self_notified: I want to be notified of changes that I make myself
+ status_user_and_brute_force: "%{user} and %{brute_force}"
+ status_change: Status change
+ unlock: Unlock
+ unlock_and_reset_failed_logins: Unlock and reset failed logins
+ version_status_closed: closed
+ version_status_locked: locked
+ version_status_open: open
+ note: Note
+ note_password_login_disabled: Password login has been disabled by %{configuration}.
+ warning: Warning
+ warning_attachments_not_saved: "%{count} file(s) could not be saved."
+ warning_imminent_user_limit: 'You invited more users than are supported by your
+ current plan. Invited users may not be able to join your OpenProject environment.
+ Please upgrade your plan or block existing users
+ in order to allow invited and registered users to join.
+
+'
+ warning_registration_token_expired: |
+ The activation email has expired. We sent you a new one to %{email}.
+ Please click the link inside of it to activate your account.
+ warning_user_limit_reached: 'User limit reached. You cannot activate any more users.
+ Please upgrade your plan or block members to allow
+ for additional users.
+
+'
+ warning_user_limit_reached_instructions: 'You reached your user limit (%{current}/%{max}
+ active users). Please contact sales@openproject.com to upgrade your Enterprise
+ Edition plan and add additional users.
+
+'
+ menu_item: Menu item
+ menu_item_setting: Visibility
+ wiki_menu_item_for: Menu item for wikipage "%{title}"
+ wiki_menu_item_setting: Visibility
+ wiki_menu_item_new_main_item_explanation: 'You are deleting the only main wiki menu
+ item. You now have to choose a wiki page for which a new main item will be generated.
+ To delete the wiki the wiki module can be deactivated by project administrators.
+
+'
+ wiki_menu_item_delete_not_permitted: The wiki menu item of the only wiki page cannot
+ be deleted.
+ query_menu_item_for: Menu item for query "%{title}"
+ work_package:
+ updated_automatically_by_child_changes: '_Updated automatically by changing values
+ within child work package %{child}_
+
+'
+ destroy:
+ info: Deleting the work package is an irreversible action.
+ title: Delete the work package
+ nothing_to_preview: Nothing to preview
+ api_v3:
+ attributes:
+ lock_version: Lock Version
+ errors:
+ code_401: You need to be authenticated to access this resource.
+ code_401_wrong_credentials: You did not provide the correct credentials.
+ code_403: You are not authorized to access this resource.
+ code_404: The requested resource could not be found.
+ code_409: Could not update the resource because of conflicting modifications.
+ code_500: An internal error has occured.
+ expected:
+ date: YYYY-MM-DD (ISO 8601 date only)
+ duration: ISO 8601 duration
+ invalid_content_type: Expected CONTENT-TYPE to be '%{content_type}' but got
+ '%{actual}'.
+ invalid_format: 'Invalid format for property ''%{property}'': Expected format
+ like ''%{expected_format}'', but got ''%{actual}''.'
+ invalid_json: The request could not be parsed as JSON.
+ invalid_relation: The relation is invalid.
+ invalid_resource: For property '%{property}' a link like '%{expected}' is expected,
+ but got '%{actual}'.
+ invalid_user_status_transition: The current user account status does not allow
+ this operation.
+ missing_content_type: not specified
+ missing_request_body: There was no request body.
+ missing_or_malformed_parameter: The query parameter '%{parameter}' is missing
+ or malformed.
+ multipart_body_error: The request body did not contain the expected multipart
+ parts.
+ multiple_errors: Multiple field constraints have been violated.
+ unable_to_create_attachment: The attachment could not be created
+ render:
+ context_not_parsable: The context provided is not a link to a resource.
+ unsupported_context: The resource given is not supported as context.
+ context_object_not_found: Cannot find the resource given as the context.
+ validation:
+ done_ratio: Done ratio cannot be set on parent work packages, when it is inferred
+ by status or when it is disabled.
+ due_date: Finish date cannot be set on parent work packages.
+ estimated_hours: Estimated hours cannot be set on parent work packages.
+ invalid_user_assigned_to_work_package: The chosen user is not allowed to be
+ '%{property}' for this work package.
+ start_date: Start date cannot be set on parent work packages.
+ writing_read_only_attributes: You must not write a read-only attribute.
+ resources:
+ schema: Schema
+ doorkeeper:
+ pre_authorization:
+ status: Pre-authorization
+ errors:
+ messages:
+ invalid_request: The request is missing a required parameter, includes an
+ unsupported parameter value, or is otherwise malformed.
+ invalid_redirect_uri: The requested redirect uri is malformed or doesn't match
+ client redirect URI.
+ unauthorized_client: यस बिधि द्वारा अनुरोधगर्ने अधिकार यो clientलाई छैन।
+ access_denied: Resource owner or authorization server ले अनुरोध अस्वीकार गर्यो।
+ invalid_scope: अनुरोध गरिएको दायरा अवैध, अज्ञात वा विकृत छ।
+ invalid_code_challenge_method: कोड चुनौती विधि plain वा S256 मा हुनुपर्दछ।
+ server_error: Authorization serverले अप्रत्याशित स्थितिको सामना गर्यो, त्यो
+ कारणले, अनुरोध पूरा गर्नबाट रोक्यो।
+ temporarily_unavailable: अस्थाई अत्यधिक चाप वा मर्मतसम्भारको कारणले Authorization
+ server तत्काललाई अनुरोध बुझ्न नसक्ने अवस्थामा छ।
+ credential_flow_not_configured: Resource Owner Password Credentials flow failed
+ due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured.
+ resource_owner_authenticator_not_configured: Resource Owner find failed due
+ to Doorkeeper.configure.resource_owner_authenticator being unconfigured.
+ admin_authenticator_not_configured: प्रशासनको प्यानलमा पहुँच निस्क्रिय गरिएको
+ छ किनकि Doorke.configure.admin_authenticator कन्फिगर गरिएको छैन।
+ unsupported_response_type: Authorization सर्भरले यस प्रकारको प्रतिक्रिया समर्थन
+ गर्दैन।
+ invalid_client: Client authentication failed due to unknown client, no client
+ authentication included, or unsupported authentication method.
+ invalid_grant: The provided authorization grant is invalid, expired, revoked,
+ does not match the redirection URI used in the authorization request, or
+ was issued to another client.
+ unsupported_grant_type: The authorization grant type is not supported by the
+ authorization server.
+ invalid_token:
+ revoked: Access token रद्द गरियो
+ expired: Access token को समयावधि समाप्त भयो
+ unknown: Access token अमान्य छ
+ unsupported_browser:
+ title: तपाईंको browser पुरानो र असमर्थित छ।
+ message: तपाइँ यस पृष्ठमा त्रुटिहरू र घटाइएको अनुभवमा चल्न सक्नुहुन्छ।
+ update_message: Please update your browser.
+ close_warning: Ignore this warning.
+ oauth:
+ application:
+ singular: OAuth application
+ plural: OAuth applications
+ named: OAuth application '%{name}'
+ new: New OAuth application
+ default_scopes: "(Default scopes)"
+ instructions:
+ name: The name of your application. This will be displayed to other users
+ upon authorization.
+ redirect_uri_html: 'The allowed URLs authorized users can be redirected to.
+ One entry per line.
If you''re registering a desktop application,
+ use the following URL.
+
+'
+ confidential: Check if the application will be used where the client secret
+ can be kept confidential. Native mobile apps and Single Page Apps are assumed
+ non-confidential.
+ client_credential_user_id: Optional user ID to impersonate when clients use
+ this application. Leave empty to allow public access only
+ register_intro: If you are developing an OAuth API client application for
+ OpenProject, you can register it using this form for all users to use.
+ default_scopes: ''
+ client_id: Client ID
+ client_secret_notice: 'This is the only time we can print the client secret, please
+ note it down and keep it secure. It should be treated as a password and cannot
+ be retrieved by OpenProject at a later time.
+
+'
+ authorization_dialog:
+ authorize: Authorize
+ cancel: Cancel and deny authorization.
+ prompt_html: Authorize %{application_name} to use your account
+ %{login}?
+ title: Authorize %{application_name}
+ wants_to_access_html: 'This application requests access to your OpenProject
+ account.
It has requested the following permissions:
+
+'
+ scopes:
+ api_v3: Full API access
+ api_v3_text: Application will receive full read & write access to the OpenProject
+ API to perform actions on your behalf.
+ grants:
+ created_date: Approved on
+ scopes: Permissions
+ successful_application_revocation: Revocation of application %{application_name}
+ successful.
+ none_given: No OAuth applications have been granted access to your user account.
+ x_active_tokens:
+ one: one active token
+ other: "%{count} active token"
+ flows:
+ authorization_code: Authorization code flow
+ client_credentials: Client credentials flow
+ client_credentials: User used for Client credentials
+ client_credentials_impersonation_set_to: Client credentials user set to
+ client_credentials_impersonation_warning: 'Note: Clients using the ''Client credentials''
+ flow in this application will have the rights of this user'
+ client_credentials_impersonation_html: 'By default, OpenProject provides OAuth
+ 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable
+ %{client_credentials_flow_link}, but you must provide a user on whose behalf
+ requests will be performed.
+
+'
+ authorization_error: An authorization error has occurred.
+ revoke_my_application_confirmation: Do you really want to remove this application?
+ This will revoke %{token_count} active for it.
+ my_registered_applications: Registered OAuth applications
diff --git a/config/locales/crowdin/nl.yml b/config/locales/crowdin/nl.yml
index 7176af29a6..3c21f65607 100644
--- a/config/locales/crowdin/nl.yml
+++ b/config/locales/crowdin/nl.yml
@@ -58,19 +58,19 @@ nl:
no_results_content_title: Er zijn momenteel geen verificatie methodes.
no_results_content_text: Maak een nieuwe authenticatie methode
ldap_auth_sources:
- connection_encryption: Connection encryption
+ connection_encryption: Verbinding encryptie
tls_mode:
plain: geen
- simple_tls: simple_tls
+ simple_tls: eenvoudige_tls
start_tls: start_tls
- plain_description: Plain unencrypted connection, no TLS negotiation.
- simple_tls_description: Implicit TLS encryption, but no certificate validation.
- Use with caution and implicit trust of the LDAP connection.
- start_tls_description: Explicit TLS encryption with full validation. Use for
- LDAP over TLS/SSL.
- section_more_info_link_html: 'This section concerns the connection security
- of this LDAP authentication source. For more information, visit the
- Net::LDAP documentation.
+ plain_description: Geen TLS-onderhandelingen.
+ simple_tls_description: Impliciet TLS encryptie, maar geen certificaat validatie.
+ Gebruik voorzichtig en impliciet vertrouwen van de LDAP-verbinding.
+ start_tls_description: TLS-encryptie uitbreiden met volledige validatie. Gebruik
+ voor LDAP via TLS/SSL.
+ section_more_info_link_html: 'Deze sectie heeft betrekking op de verbindingsbeveiliging
+ van deze LDAP authenticatie bron. Voor meer informatie bezoek het
+ net::LDAP documentatie.
'
boards:
@@ -390,9 +390,9 @@ nl:
encoded_token: Enterprise ondersteuningstoken
active_user_count_restriction: Maximum aantal actieve gebruikers
grids/grid:
- page: Page
- row_count: Number of rows
- column_count: Number of columns
+ page: Pagina
+ row_count: Aantal rijen
+ column_count: Aantal kolommen
widgets: Widgets
relation:
delay: Vertraging
@@ -565,8 +565,8 @@ nl:
is?
grids/grid:
overlaps: overlap.
- outside: is outside of the grid.
- end_before_start: end value needs to be larger than the start value.
+ outside: is buiten het raster.
+ end_before_start: eindwaarde moet groter zijn dan de startwaarde.
parse_schema_filter_params_service:
attributes:
base:
@@ -1540,7 +1540,7 @@ nl:
label_previous_week: Vorige week
label_principal_invite_via_email: " of nieuwe gebruikers uitnodigen via e-mail"
label_principal_search: Bestaande gebruikers of groepen toevoegen
- label_privacy_policy: Data privacy and security policy
+ label_privacy_policy: Gegevensprivacy en veiligheidsbeleid
label_product_version: Versie van het product
label_professional_support: Professionele ondersteuning
label_profile: Profiel
@@ -1871,8 +1871,8 @@ nl:
notice_account_update_failed: Account instelling kan niet worden opgeslagen. Kijk
op uw accountpagina.
notice_account_updated: Account is bijgewerkt.
- notice_account_other_session_expired: All other sessions tied to your account have
- been invalidated.
+ notice_account_other_session_expired: Alle andere sessies die gekoppeld zijn aan
+ uw account zijn ongeldig.
notice_account_wrong_password: Verkeerde wachtwoord
notice_account_registered_and_logged_in: Welkom, uw acount is geactiveerd. U bent
nu ingelogd.
@@ -2988,7 +2988,3 @@ nl:
revoke_my_application_confirmation: Weet u zeker dat u deze applicatie wilt verwijderen?
Dit zal %{token_count} actief voor deze verwijderen.
my_registered_applications: Geregistreerde OAuth toepassingen
- setting_mail_handler_api_enabled: Binnenkomende e-mail web-service inschakelen
- setting_mail_handler_api_description: De e-mail web handler activeerd OpenProject
- voor het ontvangen van e-mails met specifieke opdrachten als een mechanisme instrumentatie
- (bijvoorbeeld maken en bijwerken van de werkpakketten).
diff --git a/config/locales/crowdin/no.yml b/config/locales/crowdin/no.yml
index 7ff2b46464..76e9de04a5 100644
--- a/config/locales/crowdin/no.yml
+++ b/config/locales/crowdin/no.yml
@@ -2920,7 +2920,3 @@
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Aktiver web-tjeneste for innkommende e-post
- setting_mail_handler_api_description: Epost web-tjenesten sørger for at OpenProject
- kan motta eposter som inneholder spesefikte kommandoer som en instruksjonsmekanisme
- (f.eks opprette og oppdatere arbeidspakker).
diff --git a/config/locales/crowdin/pl.yml b/config/locales/crowdin/pl.yml
index f312ac5215..2cde913b30 100644
--- a/config/locales/crowdin/pl.yml
+++ b/config/locales/crowdin/pl.yml
@@ -57,14 +57,14 @@ pl:
no_results_content_title: Nie ma jeszcze żadnych trybów autoryzacji.
no_results_content_text: Utwórz nowy tryb autoryzacji
ldap_auth_sources:
- connection_encryption: Connection encryption
+ connection_encryption: Szyfrowanie połączenia
tls_mode:
plain: Brak
simple_tls: simple_tls
start_tls: start_tls
- plain_description: Plain unencrypted connection, no TLS negotiation.
- simple_tls_description: Implicit TLS encryption, but no certificate validation.
- Use with caution and implicit trust of the LDAP connection.
+ plain_description: Zwykłe, nie szyfrowane połączenie bez TLS.
+ simple_tls_description: Szyfrowanie TLS bez sprawdzonej poprawności certyfikatu.
+ Używaj z rozwagą i zaufanym połączeniem LDAP.
start_tls_description: Explicit TLS encryption with full validation. Use for
LDAP over TLS/SSL.
section_more_info_link_html: 'This section concerns the connection security
@@ -3000,7 +3000,3 @@ pl:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Włącz usługę przychodzących wiadomości e-mail
- setting_mail_handler_api_description: Silnik e-mail umożliwia aplikacji OpenProject
- otrzymywać wiadomości e-mail zawierające konkretne polecenia jako mechanizm instrumentacji
- (np. do tworzenia i aktualizacji pakietów roboczych).
diff --git a/config/locales/crowdin/pt-BR.yml b/config/locales/crowdin/pt-BR.yml
index b32b34e6e9..0d1364c00a 100644
--- a/config/locales/crowdin/pt-BR.yml
+++ b/config/locales/crowdin/pt-BR.yml
@@ -61,16 +61,16 @@ pt-BR:
connection_encryption: Criptografia de Conexão
tls_mode:
plain: nenhum
- simple_tls: simple_tls
+ simple_tls: simples_tls
start_tls: start_tls
- plain_description: Plain unencrypted connection, no TLS negotiation.
- simple_tls_description: Implicit TLS encryption, but no certificate validation.
- Use with caution and implicit trust of the LDAP connection.
- start_tls_description: Explicit TLS encryption with full validation. Use for
- LDAP over TLS/SSL.
- section_more_info_link_html: 'This section concerns the connection security
- of this LDAP authentication source. For more information, visit the
- Net::LDAP documentation.
+ plain_description: Conexão não criptografada, nenhuma negociação TLS.
+ simple_tls_description: Criptografia TLS Implicita, mas sem validação de certificado.
+ Use com cautela e confiança implícita da conexão LDAP.
+ start_tls_description: Criptografia TLS explícita com validação completa. Usar
+ para LDAP sobre SSL/TLS.
+ section_more_info_link_html: 'Esta seção diz respeito à segurança de conexão
+ desta fonte de autenticação LDAP. Para mais informações, visite a
+ documentação Net::LDAP.
'
boards:
@@ -1527,7 +1527,7 @@ pt-BR:
label_previous_week: Semana anterior
label_principal_invite_via_email: " ou convidar novos usuários via e-mail"
label_principal_search: Adicionar usuários existentes ou grupos
- label_privacy_policy: Data privacy and security policy
+ label_privacy_policy: Política de privacidade e segurança de dados
label_product_version: Versão do produto
label_professional_support: Suporte profissional
label_profile: Perfil
@@ -2965,7 +2965,3 @@ pt-BR:
revoke_my_application_confirmation: Você quer realmente remover esta aplicação?
Isso irá revogar %{token_count} ativo(s) para ele.
my_registered_applications: Aplicações OAuth registradas
- setting_mail_handler_api_enabled: Habilitar serviço web de entrada de e-mails
- setting_mail_handler_api_description: 'O manipulador de e-mail permite ao OpenProject
- receber e-mails contendo comandos específicos, como um mecanismo de instrumentação
- (ex.: para criar e atualizar pacotes de trabalho).'
diff --git a/config/locales/crowdin/pt.yml b/config/locales/crowdin/pt.yml
index 1262302654..4307d0136b 100644
--- a/config/locales/crowdin/pt.yml
+++ b/config/locales/crowdin/pt.yml
@@ -2987,7 +2987,3 @@ pt:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Ativar webservice de entrada de e-mail
- setting_mail_handler_api_description: O gestor web de email permite que o OpenProject
- receba emails com comandos específicos, como um mecanismo de instrumentação (por
- exemplo, para criar e atualizar pacotes de trabalho).
diff --git a/config/locales/crowdin/ro.yml b/config/locales/crowdin/ro.yml
index 41596eae3f..fb93c3cce9 100644
--- a/config/locales/crowdin/ro.yml
+++ b/config/locales/crowdin/ro.yml
@@ -2995,7 +2995,3 @@ ro:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Activare serviciu web e-mailuri primite
- setting_mail_handler_api_description: Procesatorul web pentru e-mail permite OpenProject
- să primească e-mail-uri care conțin anumite comenzi ca un mecanism de instrumentație
- (de exemplu, pentru a crea și de a actualiza pachete de lucru).
diff --git a/config/locales/crowdin/ru.yml b/config/locales/crowdin/ru.yml
index 8ae5e4b5f9..45b1302003 100644
--- a/config/locales/crowdin/ru.yml
+++ b/config/locales/crowdin/ru.yml
@@ -1427,7 +1427,7 @@ ru:
label_hierarchy_leaf: Уровень иерархии
label_home: Главная
label_subject_or_id: Тема или ID
- label_impressum: Impressum
+ label_impressum: Импре́ссум
label_in: в
label_in_less_than: менее чем
label_in_more_than: более чем
@@ -1561,7 +1561,7 @@ ru:
label_principal_invite_via_email: " или пригласить новых пользователей по электронной
почте"
label_principal_search: Добавление существующих пользователей или групп
- label_privacy_policy: Data privacy and security policy
+ label_privacy_policy: Политика конфиденциальности данных и безопасности
label_product_version: Версия продукта
label_professional_support: Профессиональная поддержка
label_profile: Профиль
@@ -3013,7 +3013,3 @@ ru:
revoke_my_application_confirmation: Вы действительно хотите удалить это приложение?
Это действие будет отменено %{token_count}.
my_registered_applications: Зарегистрированные OAuth приложения
- setting_mail_handler_api_enabled: Разрешить входящую почту веб-сервисов
- setting_mail_handler_api_description: Веб-обработчик электронной почты позволяет
- OpenProject получать письма с командами (например, для создания и обновления пакетов
- работы).
diff --git a/config/locales/crowdin/sk.yml b/config/locales/crowdin/sk.yml
index b1ce7dff7c..5bdfed4bae 100644
--- a/config/locales/crowdin/sk.yml
+++ b/config/locales/crowdin/sk.yml
@@ -57,18 +57,18 @@ sk:
no_results_content_title: Momentálne nie sú žiadne metódy overovania identity.
no_results_content_text: Vytvoriť novú metódu overovania identity
ldap_auth_sources:
- connection_encryption: Connection encryption
+ connection_encryption: Šifrovanie pripojenia
tls_mode:
plain: žiadne
simple_tls: simple_tls
start_tls: start_tls
- plain_description: Plain unencrypted connection, no TLS negotiation.
- simple_tls_description: Implicit TLS encryption, but no certificate validation.
- Use with caution and implicit trust of the LDAP connection.
- start_tls_description: Explicit TLS encryption with full validation. Use for
- LDAP over TLS/SSL.
- section_more_info_link_html: 'This section concerns the connection security
- of this LDAP authentication source. For more information, visit the
+ plain_description: Obyčajné nešifrované pripojenie, nepožadované TLS pripojenie.
+ simple_tls_description: Implicitné šifrovanie TLS, ale žiadne overenie certifikátu.
+ Používať s opatrnosťou a implicitne dôverné LDAP pripojenie.
+ start_tls_description: Explicitné šifrovanie TLS s úplným overením. Použitie
+ LDAP cez TLS/SSL.
+ section_more_info_link_html: 'Táto časť sa týka bezpečnosti pripojenia tohto
+ zdroja autentifikácie LDAP. Ďalšie informácie nájdete na stránkethe
Net::LDAP documentation.
'
@@ -390,10 +390,10 @@ sk:
encoded_token: Enterprise support token
active_user_count_restriction: Maximálny počet aktívnych užívateľov
grids/grid:
- page: Page
- row_count: Number of rows
- column_count: Number of columns
- widgets: Widgets
+ page: Stránka
+ row_count: Počet riadkov
+ column_count: Počet stĺpcov
+ widgets: Miniaplikácie
relation:
delay: Oneskorenie
from: Pracovný balíček
@@ -562,9 +562,9 @@ sk:
unreadable: nedá sa čítať. Ste si istý, že máte správny Token podpory Enterprise
Edition?
grids/grid:
- overlaps: overlap.
- outside: is outside of the grid.
- end_before_start: end value needs to be larger than the start value.
+ overlaps: prekrývajú.
+ outside: je mimo mriežku.
+ end_before_start: koncová hodnota musí byť väčšia ako počiatočná hodnota.
parse_schema_filter_params_service:
attributes:
base:
@@ -1437,7 +1437,7 @@ sk:
label_hierarchy_leaf: Úroveň hierarchie
label_home: Úvod
label_subject_or_id: Predmet alebo ID
- label_impressum: Impressum
+ label_impressum: Impresum
label_in: v
label_in_less_than: v menej ako
label_in_more_than: vo viac ako
@@ -1571,7 +1571,7 @@ sk:
label_principal_invite_via_email: " alebo pozvať nových užívateľov prostredníctvom
e-mailu"
label_principal_search: Pridanie existujúcich užívateľov alebo skupín
- label_privacy_policy: Data privacy and security policy
+ label_privacy_policy: Ochrana osobných údajov a bezpečnostná politika
label_product_version: Verzia produktu
label_professional_support: Profesionálna podpora
label_profile: Profil
@@ -1907,8 +1907,8 @@ sk:
notice_account_update_failed: Nastavenie konta sa nepodarilo uložiť. Prosím, skontrolujte
si stránku účtu.
notice_account_updated: Účet bol úspešne aktualizovaný.
- notice_account_other_session_expired: All other sessions tied to your account have
- been invalidated.
+ notice_account_other_session_expired: Všetky ostatné relácie viazané na váš účet
+ boli zrušené.
notice_account_wrong_password: Nesprávne heslo
notice_account_registered_and_logged_in: Vitajte, váš účet bol aktivovaný. Teraz
ste prihlásení.
@@ -3012,7 +3012,3 @@ sk:
revoke_my_application_confirmation: Naozaj chcete odstrániť túto aplikáciu? Týmto
sa zrušia aktívne tokeny %{token_count}.
my_registered_applications: Registrované aplikácie OAuth
- setting_mail_handler_api_enabled: Povoliť webovú službu prichádzajúcich e-mailov
- setting_mail_handler_api_description: Webová služba elektronickej pošty umožňuje
- aplikácii OpenProject prijímať a reagovať na e-maily so špeciálnymi pokynmi (napríklad
- na vytváranie a aktualizáciu pracovných balíčkov).
diff --git a/config/locales/crowdin/sv-SE.yml b/config/locales/crowdin/sv-SE.yml
index 646d26a487..40087d1f09 100644
--- a/config/locales/crowdin/sv-SE.yml
+++ b/config/locales/crowdin/sv-SE.yml
@@ -2919,7 +2919,3 @@ sv-SE:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Aktivera web-tjänsten för inkommande e-post
- setting_mail_handler_api_description: E-mail web handler gör det möjligt för OpenProject
- att ta emot e-postmeddelanden som innehåller specifika kommandon som en instrumentation
- mekanism (e.g., skapa och uppdatera arbetspaket).
diff --git a/config/locales/crowdin/th.yml b/config/locales/crowdin/th.yml
index fa9fda7624..8c18393429 100644
--- a/config/locales/crowdin/th.yml
+++ b/config/locales/crowdin/th.yml
@@ -2865,7 +2865,3 @@ th:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/tr.yml b/config/locales/crowdin/tr.yml
index 63a80368ce..01c4d42494 100644
--- a/config/locales/crowdin/tr.yml
+++ b/config/locales/crowdin/tr.yml
@@ -3,8 +3,8 @@ tr:
no_results_title_text: Şu anda gösterilecek bir şey yok.
activities:
index:
- no_results_title_text: There has not been any activity for the project within
- this time frame.
+ no_results_title_text: Bu zaman dilimi içerisinde proje için herhangi bir faaliyet
+ olmamıştır.
admin:
plugins:
no_results_title_text: Şu anda kullanılabilir eklenti mevcut değil.
@@ -57,19 +57,19 @@ tr:
no_results_content_title: Şu anda bir doğrulama modu bulunmamakta.
no_results_content_text: Yeni bir doğrulama modu oluştur
ldap_auth_sources:
- connection_encryption: Connection encryption
+ connection_encryption: Bağlantı şifreleme
tls_mode:
plain: hiçbiri
- simple_tls: simple_tls
- start_tls: start_tls
- plain_description: Plain unencrypted connection, no TLS negotiation.
- simple_tls_description: Implicit TLS encryption, but no certificate validation.
- Use with caution and implicit trust of the LDAP connection.
- start_tls_description: Explicit TLS encryption with full validation. Use for
- LDAP over TLS/SSL.
- section_more_info_link_html: 'This section concerns the connection security
- of this LDAP authentication source. For more information, visit the
- Net::LDAP documentation.
+ simple_tls: basit_tls
+ start_tls: başlat_tls
+ plain_description: Düz şifrelenmemiş bağlantı, TLS anlaşması yok.
+ simple_tls_description: Örtülü TLS şifrelemesi, ancak sertifika doğrulaması
+ yok. LDAP bağlantısına dikkat ve örtülü güven ile kullanın.
+ start_tls_description: Tam doğrulama ile açık TLS şifrelemesi. TLS / SSL üzerinden
+ LDAP için kullanın.
+ section_more_info_link_html: 'Bu bölüm, bu LDAP kimlik doğrulama kaynağının
+ bağlantı güvenliği ile ilgilidir. Daha fazla bilgi için the
+ Net::LDAP belgelerini ziyaret edin.
'
boards:
@@ -85,7 +85,7 @@ tr:
name: Eylemler
add: Eylem ekle
assigned_to:
- executing_user_value: "(Assign to executing user)"
+ executing_user_value: "(Kullanıcıyı çalıştırma ata)"
conditions: Koşullar
plural: Özel eylemler
new: Özel eylem ekle
@@ -134,20 +134,20 @@ tr:
memberships:
no_results_title_text: Şu anda bu grubun bir parçası olan, bir proje bulunmamakta.
incoming_mails:
- ignore_filenames: 'Specify a list of names to ignore when processing attachments
- for incoming mails (e.g., signatures or icons). Enter one filename per line.
+ ignore_filenames: 'Gelen postalar için ekleri işlerken yok sayılacak adların bir
+ listesini belirtin (örneğin, imzalar veya simgeler). Her satıra bir dosya adı
+ girin.
'
projects:
delete:
- scheduled: Deletion has been scheduled and is perfomed in the background. You
- will be notified of the result.
- schedule_failed: 'Project cannot be deleted: %{errors}'
- failed: Deletion of project %{name} has failed
- failed_text: The request to delete project %{name} has failed. The project was
- left archived.
- completed: Deletion of project %{name} completed
- completed_text: The request to delete project '%{name}' has been completed.
+ scheduled: Silme zamanlanmış ve arka planda gerçekleştirilmiştir. Sonuç size
+ bildirilecektir.
+ schedule_failed: 'Proje silinemiyor: %{errors}'
+ failed: "%{name} projesinin silinmesi başarısız oldu"
+ failed_text: "%{name} projesini silme isteği başarısız oldu. Proje arşivlendi."
+ completed: " %{name} projesinin silinmesi tamamlandı"
+ completed_text: "'%{name}' projesini silme isteği tamamlandı."
index:
no_results_title_text: Şu anda hiç proje bulunmamakta
no_results_content_text: Yeni bir proje oluşturun
@@ -190,8 +190,8 @@ tr:
prioritiies:
edit:
priority_color_text: |
- Click to assign or change the color of this priority.
- It can be used for highlighting work packages in the table.
+ Bu önceliğin rengini atamak veya değiştirmek için tıklayın.
+ Tablodaki iş paketlerini vurgulamak için kullanılabilir.
reportings:
index:
no_results_title_text: Halen durum bildirimleri yok.
@@ -204,8 +204,8 @@ tr:
Uyarı: Devralınan değerler (örneğin; çocuklardan ve bağlantılardan) hala geçerli olacaktır.
status_color_text: |
- Click to assign or change the color of this status.
- It is shown in the status button and can be used for highlighting work packages in the table.
+ Bu durumun rengini atamak veya değiştirmek için tıklayın.
+ Durum düğmesinde gösterilir ve tablodaki iş paketlerini vurgulamak için kullanılabilir.
index:
no_results_title_text: Şu anda çalışma paketi durumu yok.
no_results_content_text: Yeni durum ekle
@@ -218,14 +218,14 @@ tr:
form_configuration: Formu yapılandırma
projects: Projeler
enabled_projects: Etkin projeler
- add_group: Add attribute group
+ add_group: Özellik grubu ekle
add_table: Bağlantılı iş paketlerinin tablosunu ekle
edit_query: Tabloyu düzenle
query_group_placeholder: Tabloya bir ad verin
reset: Varsayılanlara geri yükle
type_color_text: |
- Click to assign or change the color of this type. The selected color distinguishes work packages
- in Gantt charts.
+ Bu türün rengini atamak veya değiştirmek için tıklayın. Seçilen renk iş paketlerini ayırt eder
+ Gantt listelerinde.
versions:
overview:
no_results_title_text: Bu sürüme atadığım iş paketi bulunmuyor.
@@ -238,13 +238,13 @@ tr:
no_results_title_text: Sitemizde şuan iş akışı yok.
work_packages:
x_descendants:
- one: One descendant work package
- other: "%{count} work package descendants"
+ one: Bir soydan iş paketi
+ other: "%{count} Bir soydan iş paketi"
bulk:
- could_not_be_saved: 'The following work packages could not be saved:'
+ could_not_be_saved: 'Aşağıdaki iş paketleri kaydedilemedi:'
move:
- no_common_statuses_exists: There is no status available for all selected work
- packages. Their status cannot be changed.
+ no_common_statuses_exists: Seçilen tüm iş paketleri için uygun bir durum yoktur.
+ Durumları değiştirilemez.
unsupported_for_multiple_projects: Birden çok projeden iş paketi için toplu
taşıma / kopyalama desteklenmiyor
list_simple:
@@ -304,10 +304,10 @@ tr:
oturum açmanız mümkün olmaz. Eğer bu uygulamaya tekrar üye olmak isterseniz.
uygulamanın izin verdiği yollarla bunu gerçekleştirebilirsiniz.
login_verification:
- other: Enter the login %{name} to verify the deletion. Once submitted, you
- will be asked to confirm your password.
- self: Enter your login %{name} to verify the deletion. Once submitted, you
- will be asked to confirm your password.
+ other: Silme işlemini doğrulamak için %{name} girişini girin. Gönderildikten
+ sonra, şifrenizi onaylamanız istenir.
+ self: Silme işlemini doğrulamak için giriş bilgilerinizi %{name} girin. Gönderildikten
+ sonra, şifrenizi onaylamanız istenir.
error_inactive_activation_by_mail: 'Hesabınız henüz etkinleştirilmedi. Hesabınızı
etkinleştirmek için size gönderilen e-posta bağlantısını tıklatın.
@@ -475,13 +475,14 @@ tr:
type: Tür
watcher: Takipçi
doorkeeper/application:
- uid: Client ID
- secret: Client secret
- owner: Owner
- redirect_uri: Redirect URI
- client_credentials_user_id: Client Credentials User ID
- scopes: Scopes
- confidential: Confidential
+ uid: Müşteri Kimliği
+ secret: Müşteri gizliliği
+ owner: Ürün Sahibi
+ redirect_uri: Yönlendirme URI'si
+ client_credentials_user_id: Müşteri Kimlik Bilgileri ve Kullanıcı Kimliği
+ gereklidir
+ scopes: kapsamları
+ confidential: Gizli
errors:
messages:
accepted: kabul edilmelidir.
@@ -513,7 +514,7 @@ tr:
not_a_date: geçerli bir tarih değil.
not_a_datetime: geçerli bir zaman değil.
not_a_number: bir sayı değil.
- not_allowed: is invalid because of missing permissions.
+ not_allowed: Eksik izinler nedeniyle geçersiz.
not_an_integer: bir tamsayı değil.
not_an_iso_date: 'geçerli bir tarih değil. Gerekli biçim:: YYYY-AA-GG.'
not_same_project: aynı projeye ait değil.
@@ -533,8 +534,7 @@ tr:
only_one_allowed: "(%{name}) yalnızca bir değer verilir."
empty: "(%{name}) değeri boş olamaz."
inclusion: "(%{name}) değer izin verilen değerlerden birine ayarlı değil."
- not_logged_in: "(%{name}) value cannot be set because you are not logged
- in."
+ not_logged_in: "(%{name}) değeri, giriş yapmadığınız için ayarlanamıyor."
not_an_integer: "(%{name}) bir tamsayı değil."
smaller_than_or_equal_to: "(%{name}) %{count} ' e eşit veya daha küçük olmalıdır."
greater_than_or_equal_to: "(%{name}) sıfırdan büyük veya %{count} ' e eşit
@@ -542,19 +542,19 @@ tr:
doorkeeper/application:
attributes:
redirect_uri:
- fragment_present: cannot contain a fragment.
+ fragment_present: parça içeremez.
invalid_uri: geçerli bir URI olmalıdır.
- relative_uri: must be an absolute URI.
- secured_uri: must be an HTTPS/SSL URI.
- forbidden_uri: is forbidden by the server.
+ relative_uri: mutlaka bir URI olmalıdır.
+ secured_uri: HTTPS / SSL URI olması gerekir.
+ forbidden_uri: sunucu tarafından yasaklanmıştır.
scopes:
- not_match_configured: doesn't match available scopes.
+ not_match_configured: mevcut kapsamlarla eşleşmiyor.
enterprise_token:
unreadable: okunamıyor. Desteklenen bir destek anahtarı olduğuna emin misiniz?
grids/grid:
- overlaps: overlap.
- outside: is outside of the grid.
- end_before_start: end value needs to be larger than the start value.
+ overlaps: üst üste gelmek.
+ outside: Grup dışında görünmektedir.
+ end_before_start: son değerin başlangıç değerinden daha büyük olması gerekir.
parse_schema_filter_params_service:
attributes:
base:
@@ -613,8 +613,7 @@ tr:
status_id:
status_transition_invalid: geçerli kullanıcının rolleri için eski durumdan
yeni duruma geçerli bir geçiş mevcut olmadığından geçersiz.
- status_invalid_in_type: is invalid because the current status does not
- exist in this type.
+ status_invalid_in_type: Geçerli durum bu türde bulunmadığından geçersiz.
type:
cannot_be_milestone_due_to_children: kilometre taşı olmaz çünkü alt
iş paketlerine sahip.
@@ -632,7 +631,7 @@ tr:
attribute_unknown: Geçersiz iş paketi özniteliği kullanıldı.
duplicate_group: "'%{group}' grup adı, birden fazla kez kullanıldı.
Grup isimleri benzersiz olmalıdır."
- query_invalid: 'The embedded query ''%{group}'' is invalid: %{details}'
+ query_invalid: 'Gömülü sorgu ''%{group}'' geçersiz: %{details}'
group_without_name: Adsız gruplara izin verilmez.
user:
attributes:
@@ -686,7 +685,7 @@ tr:
wiki_page: Viki sayfası
workflow: İş akışı
work_package: İş paketi
- doorkeeper/application: OAuth application
+ doorkeeper/application: OAuth uygulaması
errors:
header_invalid_fields: 'Aşağıdaki alanları ile ilgili sorunlar oluştu:'
field_erroneous_label: |-
@@ -762,7 +761,7 @@ tr:
button_change_password: Parolayı değiştir
button_check_all: Tümünü işaretle
button_clear: Temizle
- button_click_to_reveal: Click to reveal
+ button_click_to_reveal: Ortaya çıkarmak için tıklayın
button_close: Kapat
button_collapse_all: Tümünü daralt
button_configure: Düzenle
@@ -792,7 +791,7 @@ tr:
button_remove: Kaldır
button_rename: Yeniden adlandır
button_replace: Değiştir
- button_revoke: Revoke
+ button_revoke: İptal etmek
button_reply: Yanıt
button_reset: Sıfırla
button_rollback: Bu sürüme geri al
@@ -822,16 +821,18 @@ tr:
decline_warning_message: Onay vermeyi reddettiniz ve çıkış yaptınız.
user_has_consented: Kullanıcı, belirtilen zamanda yapılandırılmış ifadenize izin
verdi.
- not_yet_consented: User has not consented yet, will be requested upon next login.
- contact_mail_instructions: Define the mail address that users can reach a data
- controller to perform data change or removal requests.
- contact_your_administrator: Please contact your administrator if you want to have
- your account deleted.
- contact_this_mail_address: Please contact %{mail_address} if you want to have
- your account deleted.
- text_update_consent_time: Check this box to force users to consent again. Enable
- when you have changed the legal aspect of the consent information above.
- update_consent_last_time: 'Last update of consent: %{update_time}'
+ not_yet_consented: Kullanıcı henüz onaylamadı, bir sonraki oturum açmada talep
+ edilecek.
+ contact_mail_instructions: Veri değişikliği veya kaldırma isteklerini gerçekleştirmek
+ için kullanıcıların bir veri denetleyicisine erişebilecekleri posta adresini
+ tanımlayın.
+ contact_your_administrator: Hesabınızın silinmesini istiyorsanız, lütfen yöneticinize
+ başvurun.
+ contact_this_mail_address: Hesabınızın silinmesini istiyorsanız, lütfen %{mail_address}
+ ile iletişime geçin.
+ text_update_consent_time: Kullanıcıları tekrar onaylamaya zorlamak için bu kutuyu
+ işaretleyin. Yukarıdaki izin bilgilerinin yasal yönünü değiştirdiğinizde etkinleştirin.
+ update_consent_last_time: 'Rıza son güncelleme: %{update_time}'
copy_project:
started: '"%{source_project_name}" adlı proje "%{target_project_name}" adlı yeni
bir projeye kopyalanmaya başladı. "%{target_project_name}" projesi hazır olduğunda
@@ -1044,8 +1045,8 @@ tr:
enumeration_reported_project_statuses: Bildirilen proje durumları
error_auth_source_sso_failed: Çoklu oturum açma (SSO) için kullanıcı '%{value}'
başarısız oldu
- error_can_not_archive_project: 'This project cannot be archived: There is at least
- one work package assigned to a version defined in this project.'
+ error_can_not_archive_project: 'Bu proje arşivlenemiyor: Bu projede tanımlanan bir
+ sürüme atanmış en az bir iş paketi var.'
error_can_not_delete_entry: Girdi silinemiyor
error_can_not_delete_custom_field: Özel alan silinemiyor
error_can_not_delete_type: Bu tür iş paketleri içeriyor ve silinemez.
@@ -1060,20 +1061,20 @@ tr:
error_custom_option_not_found: Seçenek yok.
error_dependent_work_package: 'Bağımlı #%{related_id} %{related_subject} iş paketinde
hata: %{error}'
- error_enterprise_activation_user_limit: Your account could not be activated (user
- limit reached). Please contact your administrator to gain access.
+ error_enterprise_activation_user_limit: Hesabınız etkinleştirilemedi (kullanıcı
+ limitine ulaşıldı). Erişim sağlamak için lütfen yöneticinize başvurun.
error_failed_to_delete_entry: Girdi silinemedi.
error_invalid_selected_value: Seçili değeri geçersiz.
error_invalid_group_by: "%{value} ya göre guplandırılamadı"
error_invalid_query_column: 'Geçersiz sorgu sütunu: %{value}'
error_invalid_sort_criterion: 'Sütuna göre sıralama yapamazsınız: %{value}'
- error_journal_attribute_not_present: Journal does not contain attribute %{attribute}.
+ error_journal_attribute_not_present: Günlük %{attribute} özniteliği içermiyor.
error_pdf_export_too_many_columns: PDF Dışa Aktarma için çok fazla sütun seçili.
Sütun sayısını azaltın.
error_pdf_failed_to_export: 'PDF çıktısı kaydedilemedi: %{error}'
- error_token_authenticity: Unable to verify Cross-Site Request Forgery token. Did
- you try to submit data on multiple browsers or tabs? Please close all tabs and
- try again.
+ error_token_authenticity: Siteler Arası İstek Sahteciliği belirteci doğrulanamadı.
+ Birden fazla tarayıcı veya sekme hakkında veri göndermeyi denediniz mi? Lütfen
+ tüm sekmeleri kapatın ve tekrar deneyin
error_work_package_done_ratios_not_updated: İş tamamlanma oranları güncellenmedi.
error_work_package_not_found_in_project: Iş paketi bulunamadı veya bu projeye ait
değil
@@ -1103,7 +1104,7 @@ tr:
'
error_external_authentication_failed: Harici doğrulama sırasında bir hata oluştu.
Lütfen tekrar deneyin.
- error_attribute_not_highlightable: 'Attribute(s) not highlightable: %{attributes}'
+ error_attribute_not_highlightable: 'Nitelikler vurgulanmıyor: %{attributes}'
events:
project: Proje düzenlendi
changeset: Değişiklikler düzenlendi
@@ -1146,7 +1147,7 @@ tr:
homescreen:
additional:
projects: Bu bölümdeki görülebilir en yeni projeler.
- no_visible_projects: There are no visible projects in this instance.
+ no_visible_projects: Bu durumda görünür bir proje yok.
users: Bu bölümdeki kaydolan en son kullanıcılar.
blocks:
community: OpenProject topluluğu
@@ -1276,7 +1277,7 @@ tr:
label_close_versions: Tamamlanmış sürümleri kapat
label_closed_work_packages: kapalı
label_collapse: Daralt
- label_collapsed_click_to_show: Collapsed. Click to show
+ label_collapsed_click_to_show: Daraltılmış. Göstermek için tıklayın
label_configuration: konfigürasyon
label_comment_add: Yorum ekle
label_comment_added: Yorum eklendi
@@ -1342,7 +1343,7 @@ tr:
label_enumeration_value: Numaralandırma değeri
label_enumerations: Sayım Listesi
label_enterprise: Kurumsal
- label_enterprise_active_users: "%{current}/%{limit} booked active users"
+ label_enterprise_active_users: "%{current}/%{limit} aktif kullanıcı rezervasyonu"
label_enterprise_edition: Kurumsal Sürüm
label_environment: Ortam
label_estimates_and_time: Tahminler & zaman
@@ -1350,7 +1351,7 @@ tr:
label_everywhere: heryer
label_example: Örnek
label_export_to: 'Ayrıca şu adreste bulunabilir:'
- label_expanded_click_to_collapse: Expanded. Click to collapse
+ label_expanded_click_to_collapse: Genişletilmiş. Daraltmak için tıklayın
label_f_hour: "%{value} saat"
label_f_hour_plural: "%{value} saat"
label_feed_plural: Akışlar
@@ -1377,7 +1378,7 @@ tr:
label_group_by: Grupla
label_group_new: Yeni grup
label_group: Grup
- label_group_named: Group %{name}
+ label_group_named: "%{name} Grubu"
label_group_plural: Gruplar
label_help: Yardım
label_here: buraya
@@ -1386,7 +1387,7 @@ tr:
label_hierarchy_leaf: Hiyerarşi ağacı
label_home: Ana sayfa
label_subject_or_id: Konu ya da ID
- label_impressum: Impressum
+ label_impressum: Künye
label_in: şurada
label_in_less_than: daha azdır
label_in_more_than: daha fazla
@@ -1445,7 +1446,7 @@ tr:
label_message_plural: Mesajlar
label_message_posted: Mesaj eklendi
label_min_max_length: En az - En çok uzunluk
- label_minute_plural: notlar
+ label_minute_plural: dakika
label_missing_api_access_key: Eksik API erişim anahtarı
label_missing_feeds_access_key: Eksik RSS erişim anahtarı
label_modification: "%{count} değişim"
@@ -1519,7 +1520,7 @@ tr:
label_previous_week: Geçen Hafta
label_principal_invite_via_email: " veya yeni kullanıcılar e-posta ile davet et"
label_principal_search: Mevcut kullanıcıları veya grupları ekle
- label_privacy_policy: Data privacy and security policy
+ label_privacy_policy: Veri gizliliği ve güvenlik politikası
label_product_version: Ürün sürümü
label_professional_support: Profesyonel destek
label_profile: Profil
@@ -1767,16 +1768,16 @@ tr:
macro_execution_error: Makroyu çalıştırırken hata oluştu %{macro_name}
macro_unavailable: Makro %{macro_name} görüntülenemiyor.
macros:
- placeholder: "[Placeholder] Macro %{macro_name}"
+ placeholder: "[Yer Tutucu] Makro %{macro_name}"
errors:
missing_or_invalid_parameter: Eksik ya da geçersiz macro parametreleri.
legacy_warning:
- timeline: This legacy timeline macro has been removed and is no longer available.
- You can replace the functionality with an embedded table macro.
+ timeline: Bu eski zaman çizelgesi makrosu kaldırıldı ve artık kullanılamıyor.
+ İşlevselliği katıştırılmış tablo makrosu ile değiştirebilirsiniz.
include_wiki_page:
errors:
page_not_found: Wiki sayfası '%{name} ' bulunamıyor.
- circular_inclusion: Circular inclusion of pages detected.
+ circular_inclusion: Sayfaların dairesel olarak dahil edilmesi algılandı.
create_work_package_link:
errors:
no_project_context: Proje içeriği dışından create_work_package_link makrosu
@@ -1805,12 +1806,12 @@ tr:
mail_user_activation_limit_reached:
subject: Kullanıcı etkinleştirme sınırına ulaşıldı
message: |
- A new user (%{email}) tried to create an account on an OpenProject environment that you manage (%{host}).
- The user cannot activate their account since the user limit has been reached.
+ Yeni bir kullanıcı (%{email}) yönettiğiniz bir OpenProject ortamında bir hesap oluşturmaya çalıştı (%{host}).
+ Kullanıcı sınırına ulaşıldığından beri kullanıcı hesaplarını etkinleştiremiyor.
steps:
- label: 'To allow the user to sign in you can either: '
- a: Upgrade your payment plan ([here](upgrade_url))
- b: Lock or delete an existing user ([here](users_url))
+ label: 'Kullanıcının oturum açmasına izin vermek için şunlardan birini yapabilirsiniz:'
+ a: Ödeme planınızı yükseltin ([here](upgrade_url))
+ b: Mevcut bir kullanıcıyı kilitle veya sil ([buradan](users_url))
more_actions: Daha fazla işlev
noscript_description: OpenProject'i kullanmak için JavaScript'i etkinleştirmeniz
gerekiyor!
@@ -1838,8 +1839,8 @@ tr:
notice_account_update_failed: Hesabı ayarları kaydedilemedi. Lütfen hesap sayfanızın
bir göz atın.
notice_account_updated: Hesap başarıyla güncellendi.
- notice_account_other_session_expired: All other sessions tied to your account have
- been invalidated.
+ notice_account_other_session_expired: Hesabınıza bağlı diğer tüm oturumlar geçersiz
+ hale getirildi.
notice_account_wrong_password: Hatalı parola
notice_account_registered_and_logged_in: Hoş geldiniz, hesabınız etkinleştirildi.
Şimdi giriş yaptınız.
@@ -2199,8 +2200,8 @@ tr:
setting_commit_ref_keywords: Anahtar kelimeleri referansla
setting_consent_time: Rıza süresi
setting_consent_info: Rıza bilgi metni
- setting_consent_required: Consent required
- setting_consent_decline_mail: Consent contact mail address
+ setting_consent_required: Onay gerekli
+ setting_consent_decline_mail: Onay iletişim posta adresi
setting_cross_project_work_package_relations: Projeler arası iş paketi ilişkilerine
izin ver
setting_date_format: Tarih formatı
@@ -2240,7 +2241,7 @@ tr:
kısaltın
setting_mail_handler_body_delimiter_regex: Bu düzenli ifade ile uyuşan e-postaları
kırp
- setting_mail_handler_ignore_filenames: Ignored mail attachments
+ setting_mail_handler_ignore_filenames: Yoksayılan posta ekleri
setting_new_project_user_role_id: Bir proje oluşturan yönetici olmayan bir kullanıcıya
verilen rolü
setting_password_active_rules: Aktif karakter sınıfları
@@ -2253,7 +2254,7 @@ tr:
setting_per_page_options: Sayfa başı nesne seçenekleri
setting_plain_text_mail: Düz metin postası (HTML yok)
setting_protocol: Protokol
- setting_security_badge_displayed: Display security badge
+ setting_security_badge_displayed: Güvenlik rozeti göster
setting_registration_footer: Kayıt alt bilgisi
setting_repositories_automatic_managed_vendor: Otomatik depo satıcısı türü
setting_repositories_encodings: Depolar kodlamaları
@@ -2289,8 +2290,8 @@ tr:
setting_wiki_compression: Wiki geçmişini sıkıştır
setting_work_package_group_assignment: Gruplara iş atanmasına izin ver
setting_work_package_list_default_highlighting_mode: Varsayılan vurgulama modu
- setting_work_package_list_default_highlighted_attributes: Default inline highlighted
- attributes
+ setting_work_package_list_default_highlighted_attributes: Varsayılan satır içi vurgulanan
+ özellikler
settings:
general: Genel
other: Diğer
@@ -2302,7 +2303,7 @@ tr:
deletion: Silme
highlighting:
mode_long:
- inline: Highlight attribute(s) inline
+ inline: 'Satır içi öznitelikleri vurgula '
none: Vurgulama
status: Duruma göre tüm satır
type: Türe göre tüm satır
@@ -2400,8 +2401,11 @@ tr:
text_journal_aggregation_time_explanation: Yaş farkı belirtilen zaman aralığından
azsa dergileri görüntü için birleştirin. Bu aynı zamanda posta bildirimlerini
aynı süreyle erteleyecektir.
- text_journal_changed: "%{label} changed from %{old}
to %{new}"
- text_journal_changed_plain: "%{label} changed from %{old} \nto %{new}"
+ text_journal_changed: "%{label} %{old} 'den ' e değiştirildi
+ %{new}"
+ text_journal_changed_plain: |-
+ %{label} %{old} den değiştirildi
+ %{new} 'e
text_journal_changed_no_detail: "%{label} güncellendi"
text_journal_changed_with_diff: "%{label} değişti ( %{link})"
text_journal_deleted: "%{label}, ( %{old}) silindi"
@@ -2421,14 +2425,14 @@ tr:
text_no_notes: Bu çalışma paketi için bir yorum bulunmuyor.
text_notice_too_many_values_are_inperformant: 'Not: Her sayfada 100''den fazla öğe
gösterildiğinde, sayfa yükleme süresi artabilir.'
- text_notice_security_badge_displayed_html: 'Note: if enabled, this will display
- a badge with your installation status in the %{information_panel_label}
- administration panel, and on the home page. It is displayed to administrators
- only.
The badge will check your current OpenProject version against the
- official OpenProject release database to alert you of any updates or known vulnerabilities.
- For more information on what the check provides, what data is needed to provide
- available updates, and how to disable this check, please visit the
- configuration documentation.
+ text_notice_security_badge_displayed_html: 'Not: Etkinleştirildiğinde, bu, %{information_panel_label}
+ yönetim panelinde ve giriş sayfasında yükleme durumunuzla birlikte bir rozet görüntüler.
+ Sadece yöneticilere gösterilir.
Rozet, mevcut OpenProject sürümünüzü resmi
+ OpenProject sürüm veritabanına karşı kontrol eder ve sizi herhangi bir güncelleme
+ veya bilinen güvenlik açığı hakkında uyarır. Çekin sağladığı, mevcut güncellemeleri
+ sağlamak için hangi verilerin gerekli olduğu ve bu kontrolün nasıl devre dışı
+ bırakılacağı hakkında daha fazla bilgi için lütfen
+ yapılandırma belgelerini ziyaret edin.
'
text_own_membership_delete_confirmation: İzinlerinizden bazılarını veya tümünü kaldırmak
@@ -2587,8 +2591,8 @@ tr:
project_time_filter_historical_from: başlangıç
project_time_filter_historical_to: bitiş
project_time_filter_historical: "%{start_label} %{startdate} %{end_label} %{enddate}"
- project_time_filter_relative: "%{start_label} %{startspan}%{startspanunit} ago,
- %{end_label} %{endspan}%{endspanunit} from now"
+ project_time_filter_relative: "%{start_label} %{startspan} %{startspanunit}
+ önce, %{end_label} %{endspan} %{endspanunit} bundan sonra"
project_filters: Projeleri filtrele
project_responsible: Sorumlularıyla birlikte projeleri göster
project_status: Proje durumunu göster
@@ -2619,7 +2623,7 @@ tr:
level5: Seviye 5 genişletin
all: Tümünü göster
reporting_for_project:
- show: 'Status reported to project: %{title}'
+ show: Projeye rapor edilen durum:%{title}
edit_delete: 'proje durum raporu: %{title}'
history: 'Proje durum geçmişi: %{title}'
reporting:
@@ -2653,7 +2657,7 @@ tr:
quarters: Üç aylık
years: Yıl
title_remove_and_delete_user: Davet edilen kullanıcıyı projeden çıkarın ve onu silin.
- title_enterprise_upgrade: Upgrade to unlock more users.
+ title_enterprise_upgrade: Daha fazla kullanıcının kilidini açmak için yükseltme.
tooltip_user_default_timezone: 'Yeni kullanıcılar için varsayılan saat dilimi. Bir
kullanıcının ayarlarında değiştirilebilir.
@@ -2684,9 +2688,9 @@ tr:
activate_and_reset_failed_logins: Başarısız oturum açma işlemlerinin kilidini
aç ve sıfırla
authentication_provider: Kimlik doğrulama sağlayıcısı
- authentication_settings_disabled_due_to_external_authentication: 'This user authenticates
- via an external authentication provider, so there is no password in OpenProject
- to be changed.
+ authentication_settings_disabled_due_to_external_authentication: 'Bu kullanıcı
+ harici bir kimlik doğrulama sağlayıcısı aracılığıyla kimlik doğrulaması yapar,
+ böylece OpenProject''de değiştirilecek şifre yoktur.
'
authorization_rejected: Oturum açma izniniz yok.
@@ -2698,8 +2702,8 @@ tr:
confirm_status_change: "'%{name}' durumunu değiştirmek üzeresiniz. Devam etmek
istediğinizden emin misiniz?"
deleted: Kullanıcı silindi
- error_status_change_failed: 'Changing the user status failed due to the following
- errors: %{errors}'
+ error_status_change_failed: Kullanıcı durumunu değiştirmek aşağıdaki hatalardan
+ dolayı başarısız oldu:%{errors}
invite: Kullanıcı e-posta ile davet
invited: davet
lock: Kalıcı olarak kilit
@@ -2728,24 +2732,24 @@ tr:
bırakıldı.
warning: Uyarı
warning_attachments_not_saved: "%{count} dosya (lar) kaydedilemedi."
- warning_imminent_user_limit: 'You invited more users than are supported by your
- current plan. Invited users may not be able to join your OpenProject environment.
- Please upgrade your plan or block existing users
- in order to allow invited and registered users to join.
+ warning_imminent_user_limit: 'Mevcut planınız tarafından desteklenenden daha fazla
+ kullanıcı davet ettiniz. Davet edilen kullanıcılar OpenProject ortamınıza katılamayabilir.
+ Lütfen davet edilen ve kayıtlı kullanıcıların katılmasına izin vermek için planınızı yükseltin veya mevcut kullanıcıları engelleyin.
'
warning_registration_token_expired: 'Etkinleştirme e-postası süresi doldu. Sana
yeni bir %{email} gönderdik. Hesabınızı etkinleştirmek için linki tıklayınız.
'
- warning_user_limit_reached: 'User limit reached. You cannot activate any more users.
- Please upgrade your plan or block members to allow
- for additional users.
+ warning_user_limit_reached: 'Kullanıcı limitine ulaşıldı. Daha fazla kullanıcıyı
+ etkinleştiremezsiniz. Lütfen planınızı yükseltin
+ veya ek kullanıcılara izin vermek için üyeleri engelleyin.
'
- warning_user_limit_reached_instructions: 'You reached your user limit (%{current}/%{max}
- active users). Please contact sales@openproject.com to upgrade your Enterprise
- Edition plan and add additional users.
+ warning_user_limit_reached_instructions: 'Kullanıcı sınırınıza ulaştınız (%{current}/%{max}
+ aktif kullanıcılar). Enterprise Edition planınızı yükseltmek ve ek kullanıcılar
+ eklemek için lütfen sales@openproject.com adresine başvurun.
'
menu_item: Menü seçeneği
@@ -2816,117 +2820,115 @@ tr:
schema: Şema
doorkeeper:
pre_authorization:
- status: Pre-authorization
+ status: Ön yetkilendirme
errors:
messages:
- invalid_request: The request is missing a required parameter, includes an
- unsupported parameter value, or is otherwise malformed.
- invalid_redirect_uri: The requested redirect uri is malformed or doesn't match
- client redirect URI.
- unauthorized_client: The client is not authorized to perform this request
- using this method.
- access_denied: The resource owner or authorization server denied the request.
- invalid_scope: The requested scope is invalid, unknown, or malformed.
- invalid_code_challenge_method: The code challenge method must be plain or
- S256.
- server_error: The authorization server encountered an unexpected condition
- which prevented it from fulfilling the request.
- temporarily_unavailable: The authorization server is currently unable to handle
- the request due to a temporary overloading or maintenance of the server.
- credential_flow_not_configured: Resource Owner Password Credentials flow failed
- due to Doorkeeper.configure.resource_owner_from_credentials being unconfigured.
- resource_owner_authenticator_not_configured: Resource Owner find failed due
- to Doorkeeper.configure.resource_owner_authenticator being unconfigured.
- admin_authenticator_not_configured: Access to admin panel is forbidden due
- to Doorkeeper.configure.admin_authenticator being unconfigured.
- unsupported_response_type: The authorization server does not support this
- response type.
- invalid_client: Client authentication failed due to unknown client, no client
- authentication included, or unsupported authentication method.
- invalid_grant: The provided authorization grant is invalid, expired, revoked,
- does not match the redirection URI used in the authorization request, or
- was issued to another client.
- unsupported_grant_type: The authorization grant type is not supported by the
- authorization server.
+ invalid_request: İstekte gerekli bir parametre eksik, desteklenmeyen bir parametre
+ değeri içeriyor veya başka türlü hatalı biçimlendirilmiş.
+ invalid_redirect_uri: İstenen yönlendirme uri hatalı biçimlendirilmiş veya
+ müşteri yönlendirme URI'siyle eşleşmiyor.
+ unauthorized_client: Müşterinin bu yöntemi kullanarak bu talebi gerçekleştirme
+ yetkisi yok.
+ access_denied: Kaynak sahibi veya yetkilendirme sunucusu isteği reddetti.
+ invalid_scope: İstenen kapsam geçersiz, bilinmeyen veya hatalı biçimlendirilmiş.
+ invalid_code_challenge_method: Kod yükleme yöntemi düz veya S256 olmalıdır.
+ server_error: Yetkilendirme sunucusu, isteği yerine getirmesini engelleyen
+ beklenmeyen bir koşulla karşılaştı.
+ temporarily_unavailable: Yetkilendirme sunucusu şu anda sunucunun geçici bir
+ aşırı yüklenmesi veya bakımı nedeniyle isteği yerine getiremiyor.
+ credential_flow_not_configured: Kaynak Sahibi Şifresi Kimlik Bilgileri akışı,
+ Doorkeeper.configure.resource_owner_from_credentials'ın yapılandırılmamış
+ olması nedeniyle başarısız oldu.
+ resource_owner_authenticator_not_configured: Kaynak Sahibi, Doorkeeper.configure.resource_owner_authenticator'ın
+ yapılandırılmamış olması nedeniyle başarısız oldu.
+ admin_authenticator_not_configured: Doorkeeper.configure.admin_authenticator'ın
+ yapılandırılmamış olması nedeniyle yönetici paneline erişim yasaktır.
+ unsupported_response_type: Yetkilendirme sunucusu bu yanıt türünü desteklemiyor.
+ invalid_client: Müşteri kimlik doğrulaması, bilinmeyen müşteri, müşteri kimlik
+ doğrulaması eklenmemiş veya desteklenmeyen kimlik doğrulama yöntemi nedeniyle
+ başarısız oldu.
+ invalid_grant: Sağlanan yetkilendirme izni geçersiz, süresi dolmuş, iptal
+ edilmiş, yetkilendirme isteğinde kullanılan yönlendirme URI'siyle eşleşmiyor
+ veya başka bir müşteriye verilmiş.
+ unsupported_grant_type: Yetkilendirme izni türü, yetkilendirme sunucusu tarafından
+ desteklenmiyor.
invalid_token:
- revoked: The access token was revoked
- expired: The access token expired
- unknown: The access token is invalid
+ revoked: Erişim belirteci iptal edildi
+ expired: Erişim kartının süresi doldu
+ unknown: Erişim belirteci geçersiz
unsupported_browser:
title: Tarayıcınız güncel değil ya da desteklenmiyor.
- message: You may run into errors and degraded experience on this page.
+ message: Bu sayfada hatalara ve bozulmuş deneyime maruz kalabilirsiniz.
update_message: Lütfen tarayıcınızı güncelleyin.
close_warning: Bu uyarıyı yoksay.
oauth:
application:
- singular: OAuth application
- plural: OAuth applications
- named: OAuth application '%{name}'
- new: New OAuth application
- default_scopes: "(Default scopes)"
+ singular: OAuth uygulaması
+ plural: OAuth uygulamaları
+ named: Oauth uygulaması %{name}
+ new: Yeni OAuth uygulaması
+ default_scopes: "(Varsayılan kapsamlar)"
instructions:
- name: The name of your application. This will be displayed to other users
- upon authorization.
- redirect_uri_html: 'The allowed URLs authorized users can be redirected to.
- One entry per line.
If you''re registering a desktop application,
- use the following URL.
+ name: Uygulamanızın adı. Bu, yetkilendirildikten sonra diğer kullanıcılara
+ gösterilecektir.
+ redirect_uri_html: 'İzin verilen URL''ler yetkili kullanıcılar adresine yönlendirilebilir.
+ Her satıra bir giriş.
Bir masaüstü uygulamasına kaydoluyorsanız, aşağıdaki
+ URL''yi kullanın.
'
- confidential: Check if the application will be used where the client secret
- can be kept confidential. Native mobile apps and Single Page Apps are assumed
- non-confidential.
- client_credential_user_id: Optional user ID to impersonate when clients use
- this application. Leave empty to allow public access only
- register_intro: If you are developing an OAuth API client application for
- OpenProject, you can register it using this form for all users to use.
+ confidential: Uygulamanın, müşteri sırrının gizli tutulabileceği yerlerde
+ kullanılıp kullanılmayacağını kontrol edin. Yerel mobil uygulamalar ve Tek
+ Sayfa Uygulamaları gizli değildir.
+ client_credential_user_id: İstemciler bu uygulamayı kullandıklarında kimliğe
+ bürünmek için isteğe bağlı kullanıcı kimliği. Yalnızca genel erişime izin
+ vermek için boş bırakın
+ register_intro: OpenProject için bir OAuth API istemci uygulaması geliştiriyorsanız,
+ tüm kullanıcıların kullanması için bu formu kullanarak kayıt olabilirsiniz.
default_scopes: ''
- client_id: Client ID
- client_secret_notice: 'This is the only time we can print the client secret, please
- note it down and keep it secure. It should be treated as a password and cannot
- be retrieved by OpenProject at a later time.
+ client_id: Müşteri Kimliği
+ client_secret_notice: 'Müşterinin sırrını basabileceğimiz tek zaman bu, lütfen
+ not edin ve güvende tutun. Parola olarak değerlendirilmeli ve daha sonra OpenProject
+ tarafından alınamaz.
'
authorization_dialog:
authorize: Yetkilendir
- cancel: Cancel and deny authorization.
- prompt_html: Authorize %{application_name} to use your account
- %{login}?
- title: Authorize %{application_name}
- wants_to_access_html: 'This application requests access to your OpenProject
- account.
It has requested the following permissions:
+ cancel: İptal et ve izni reddet.
+ prompt_html: Hesabınızı %{application_name} kullanmak için
+ %{login}?yetkilendirilsin mi?
+ title: "%{application_name} adlı kişiyi yetkilendir"
+ wants_to_access_html: 'Bu uygulama OpenProject hesabınıza erişim istiyor.
+ Aşağıdaki izinleri istedi:
'
scopes:
- api_v3: Full API access
- api_v3_text: Application will receive full read & write access to the OpenProject
- API to perform actions on your behalf.
+ api_v3: Tam API erişimi
+ api_v3_text: Uygulama, sizin adınıza işlem yapmak için OpenProject API'sine
+ tam okuma ve yazma erişimi alır.
grants:
- created_date: Approved on
+ created_date: Tarihinde onaylandı
scopes: İzinler
- successful_application_revocation: Revocation of application %{application_name}
- successful.
- none_given: No OAuth applications have been granted access to your user account.
+ successful_application_revocation: "%{application_name} uygulamasının iptali
+ başarılı oldu."
+ none_given: Hiçbir OAuth uygulamasına kullanıcı hesabınıza erişim izni verilmedi.
x_active_tokens:
- one: one active token
+ one: "%{count} bir aktif belirteç"
other: "%{count} active token"
flows:
- authorization_code: Authorization code flow
- client_credentials: Client credentials flow
- client_credentials: User used for Client credentials
- client_credentials_impersonation_set_to: Client credentials user set to
- client_credentials_impersonation_warning: 'Note: Clients using the ''Client credentials''
- flow in this application will have the rights of this user'
- client_credentials_impersonation_html: 'By default, OpenProject provides OAuth
- 2.0 authorization via %{authorization_code_flow_link}. You can optionally enable
- %{client_credentials_flow_link}, but you must provide a user on whose behalf
- requests will be performed.
+ authorization_code: Yetki kodu akışı
+ client_credentials: Müşteri kimlik bilgisi akışı
+ client_credentials: Müşteri kimlik bilgileri için kullanılan kullanıcı
+ client_credentials_impersonation_set_to: İstemci kimlik bilgileri kullanıcısı
+ olarak ayarlandı
+ client_credentials_impersonation_warning: 'Not: Bu uygulamadaki ''Müşteri kimlik
+ bilgileri'' akışını kullanan müşteriler bu kullanıcının haklarına sahip olacak'
+ client_credentials_impersonation_html: 'Varsayılan olarak, OpenProject,%{authorization_code_flow_link}.
+ yoluyla OAuth 2.0 yetkilendirmesi sağlar. İsteğe bağlı olarak%{client_credentials_flow_link}
+ özelliğini etkinleştirebilirsiniz, ancak kendi adına istekleri gerçekleştirilecek
+ bir kullanıcı sağlamanız gerekir.
'
- authorization_error: An authorization error has occurred.
- revoke_my_application_confirmation: Do you really want to remove this application?
- This will revoke %{token_count} active for it.
- my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Gelen e-posta web hizmetini etkinleştir
- setting_mail_handler_api_description: E-posta web işleyici, OpenProject'in belirli
- komutları enstrümantasyon mekanizması olarak (örneğin iş paketleri oluşturmak
- ve güncellemek için) içeren e-postaları almasını sağlar.
+ authorization_error: Bir yetkilendirme hatası oluştu.
+ revoke_my_application_confirmation: Bu uygulamayı gerçekten kaldırmak istiyor
+ musunuz? Bu, %{token_count} aktif olanını iptal edecektir.
+ my_registered_applications: OAuth uygulamalarını kayıtedin
diff --git a/config/locales/crowdin/uk.yml b/config/locales/crowdin/uk.yml
index 5f62498d05..1b0f80a42b 100644
--- a/config/locales/crowdin/uk.yml
+++ b/config/locales/crowdin/uk.yml
@@ -2975,7 +2975,3 @@ uk:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/vi.yml b/config/locales/crowdin/vi.yml
index 5d3a282eab..00e29626ec 100644
--- a/config/locales/crowdin/vi.yml
+++ b/config/locales/crowdin/vi.yml
@@ -2928,7 +2928,3 @@ vi:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: Enable incoming email web service
- setting_mail_handler_api_description: The email web handler enables OpenProject
- to receive emails containing specific commands as an instrumentation mechanism
- (e.g., to create and update work packages).
diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml
index 6b3b8de0cd..db4619f467 100644
--- a/config/locales/crowdin/zh-TW.yml
+++ b/config/locales/crowdin/zh-TW.yml
@@ -2665,5 +2665,3 @@ zh-TW:
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: 啟用寄入電子郵件網路服務
- setting_mail_handler_api_description: 電子郵件網路接收使 OpenProject 可以接收包含特殊命令作為編輯機制的電子郵件(例如:建立或更新工作項目)。
diff --git a/config/locales/crowdin/zh.yml b/config/locales/crowdin/zh.yml
index da4e0eb863..2c08595336 100644
--- a/config/locales/crowdin/zh.yml
+++ b/config/locales/crowdin/zh.yml
@@ -46,19 +46,18 @@ zh:
no_results_content_title: 目前是非身份验证模式。
no_results_content_text: 创建一个新的身份验证模式
ldap_auth_sources:
- connection_encryption: Connection encryption
+ connection_encryption: 连接加密
tls_mode:
plain: 无
simple_tls: simple_tls
start_tls: start_tls
- plain_description: Plain unencrypted connection, no TLS negotiation.
+ plain_description: 明文不加密的连接,无TLS协商。
simple_tls_description: Implicit TLS encryption, but no certificate validation.
Use with caution and implicit trust of the LDAP connection.
start_tls_description: Explicit TLS encryption with full validation. Use for
LDAP over TLS/SSL.
- section_more_info_link_html: 'This section concerns the connection security
- of this LDAP authentication source. For more information, visit the
- Net::LDAP documentation.
+ section_more_info_link_html: '此部分涉及此LDAP认证源的连接安全。更多信息,访问 网络::LDAP
+ 文档。
'
boards:
@@ -126,11 +125,11 @@ zh:
delete:
scheduled: Deletion has been scheduled and is perfomed in the background. You
will be notified of the result.
- schedule_failed: 'Project cannot be deleted: %{errors}'
- failed: Deletion of project %{name} has failed
+ schedule_failed: '项目不能删除: %{errors}'
+ failed: 项目 %{name} 删除失败
failed_text: The request to delete project %{name} has failed. The project was
left archived.
- completed: Deletion of project %{name} completed
+ completed: 项目 %{name} 删除完成
completed_text: The request to delete project '%{name}' has been completed.
index:
no_results_title_text: 目前没有项目。
@@ -224,7 +223,7 @@ zh:
one: One descendant work package
other: "%{count} 个子工作包"
bulk:
- could_not_be_saved: 'The following work packages could not be saved:'
+ could_not_be_saved: 无法保存以下工作包:
move:
no_common_statuses_exists: 所有选中的工作包都没有可用的状态,因此无法更改其状态。
unsupported_for_multiple_projects: 不支持多个项目工作包的大批量移动/复制
@@ -338,10 +337,10 @@ zh:
encoded_token: 企业版支持令牌
active_user_count_restriction: 最大活动用户数
grids/grid:
- page: Page
- row_count: Number of rows
- column_count: Number of columns
- widgets: Widgets
+ page: 页
+ row_count: 行数
+ column_count: 列数
+ widgets: 小部件
relation:
delay: 延迟
from: 工作包
@@ -431,13 +430,13 @@ zh:
type: 类型
watcher: 关注者
doorkeeper/application:
- uid: Client ID
- secret: Client secret
- owner: Owner
- redirect_uri: Redirect URI
- client_credentials_user_id: Client Credentials User ID
- scopes: Scopes
- confidential: Confidential
+ uid: 客户端 ID
+ secret: 客户端密钥
+ owner: 所有者
+ redirect_uri: 重定向 URI
+ client_credentials_user_id: 客户端证书用户 ID
+ scopes: 范围
+ confidential: 保密
errors:
messages:
accepted: 必须接受。
@@ -493,18 +492,18 @@ zh:
doorkeeper/application:
attributes:
redirect_uri:
- fragment_present: cannot contain a fragment.
- invalid_uri: must be a valid URI.
- relative_uri: must be an absolute URI.
- secured_uri: must be an HTTPS/SSL URI.
- forbidden_uri: is forbidden by the server.
+ fragment_present: 不能包含片段。
+ invalid_uri: 必须是有效的 URI。
+ relative_uri: 必须是绝对URI。
+ secured_uri: 必须是 HTTPS/SSL URI。
+ forbidden_uri: 被服务器禁止。
scopes:
- not_match_configured: doesn't match available scopes.
+ not_match_configured: 与可用范围不匹配。
enterprise_token:
unreadable: 无法读取。是否确定为支持令牌?
grids/grid:
- overlaps: overlap.
- outside: is outside of the grid.
+ overlaps: 重叠.
+ outside: 不在网格内。
end_before_start: end value needs to be larger than the start value.
parse_schema_filter_params_service:
attributes:
@@ -624,7 +623,7 @@ zh:
wiki_page: 维基页面
workflow: 工作流
work_package: 工作包
- doorkeeper/application: OAuth application
+ doorkeeper/application: OAuth应用程序
errors:
header_invalid_fields: 以下字段有问题:
field_erroneous_label: |-
@@ -700,7 +699,7 @@ zh:
button_change_password: 更改密码
button_check_all: 全选
button_clear: 清除
- button_click_to_reveal: Click to reveal
+ button_click_to_reveal: 单击以显示
button_close: 关闭
button_collapse_all: 全部折叠
button_configure: 配置
@@ -730,7 +729,7 @@ zh:
button_remove: 移除
button_rename: 重命名
button_replace: 替换
- button_revoke: Revoke
+ button_revoke: 撤消
button_reply: 答复
button_reset: 重置
button_rollback: 回滚到此版本
@@ -1249,7 +1248,7 @@ zh:
label_environment: 环境
label_estimates_and_time: 预估成本和时间
label_equals: 是
- label_everywhere: everywhere
+ label_everywhere: 任何位置
label_example: 示例
label_export_to: 在其中也可用:
label_expanded_click_to_collapse: 展开。点击折叠
@@ -1286,7 +1285,7 @@ zh:
label_history: 历史
label_hierarchy_leaf: 层次结构叶
label_home: 首页
- label_subject_or_id: Subject or ID
+ label_subject_or_id: 主题或ID
label_impressum: Impressum
label_in: 在
label_in_less_than: 在小于
@@ -1420,7 +1419,7 @@ zh:
label_previous_week: 前一周
label_principal_invite_via_email: " 或通过电子邮件邀请新用户"
label_principal_search: 添加现有用户或组
- label_privacy_policy: Data privacy and security policy
+ label_privacy_policy: 数据隐私和安全政策
label_product_version: 产品版本
label_professional_support: 专业支持
label_profile: 配置文件
@@ -1563,7 +1562,7 @@ zh:
label_view_diff: 查看差异
label_view_revisions: 查看修订版本
label_watched_work_packages: 受关注的工作包
- label_what_is_this: What is this?
+ label_what_is_this: 这是什么?
label_week: 周
label_wiki_content_added: 添加 Wiki 页面
label_wiki_content_updated: 更新 Wiki 页面
@@ -2064,7 +2063,7 @@ zh:
setting_mail_handler_api_key: API 密钥
setting_mail_handler_body_delimiters: 在这些行之后截断电子邮件
setting_mail_handler_body_delimiter_regex: 清空符合此正则表达式的电子邮件
- setting_mail_handler_ignore_filenames: Ignored mail attachments
+ setting_mail_handler_ignore_filenames: 忽略的邮件附件
setting_new_project_user_role_id: 给创建项目的非管理员用户的角色
setting_password_active_rules: 激活支付类型
setting_password_count_former_banned: 禁止重复使用最近使用密码的数量
@@ -2074,7 +2073,7 @@ zh:
setting_per_page_options: 每页对象选项
setting_plain_text_mail: 纯文本邮件 (没有 HTML)
setting_protocol: 协议
- setting_security_badge_displayed: Display security badge
+ setting_security_badge_displayed: 显示安全徽章
setting_registration_footer: 注册页脚
setting_repositories_automatic_managed_vendor: 自动存储库供应商类型
setting_repositories_encodings: 代码库的编码
@@ -2546,7 +2545,7 @@ zh:
schema: 方案
doorkeeper:
pre_authorization:
- status: Pre-authorization
+ status: 预授权
errors:
messages:
invalid_request: The request is missing a required parameter, includes an
@@ -2556,7 +2555,7 @@ zh:
unauthorized_client: The client is not authorized to perform this request
using this method.
access_denied: The resource owner or authorization server denied the request.
- invalid_scope: The requested scope is invalid, unknown, or malformed.
+ invalid_scope: 申请范围无效、未知或形式错误
invalid_code_challenge_method: The code challenge method must be plain or
S256.
server_error: The authorization server encountered an unexpected condition
@@ -2579,20 +2578,20 @@ zh:
unsupported_grant_type: The authorization grant type is not supported by the
authorization server.
invalid_token:
- revoked: The access token was revoked
- expired: The access token expired
- unknown: The access token is invalid
+ revoked: 访问令牌已被撤销
+ expired: 访问令牌已过期
+ unknown: 访问令牌无效
unsupported_browser:
- title: Your browser is outdated and unsupported.
- message: You may run into errors and degraded experience on this page.
+ title: 您的浏览器已经过时,或不被支持。
+ message: 此页面可能会发生运行错误和不良用户体验。
update_message: 请升级您的浏览器。
close_warning: 请忽略这个警告。
oauth:
application:
- singular: OAuth application
- plural: OAuth applications
+ singular: OAuth应用程序
+ plural: OAuth应用程序
named: OAuth application '%{name}'
- new: New OAuth application
+ new: 新的 OAuth 应用程序
default_scopes: "(Default scopes)"
instructions:
name: The name of your application. This will be displayed to other users
@@ -2610,15 +2609,15 @@ zh:
register_intro: If you are developing an OAuth API client application for
OpenProject, you can register it using this form for all users to use.
default_scopes: ''
- client_id: Client ID
+ client_id: 客户端 ID
client_secret_notice: 'This is the only time we can print the client secret, please
note it down and keep it secure. It should be treated as a password and cannot
be retrieved by OpenProject at a later time.
'
authorization_dialog:
- authorize: Authorize
- cancel: Cancel and deny authorization.
+ authorize: 授权
+ cancel: 取消并拒绝授权。
prompt_html: Authorize %{application_name} to use your account
%{login}?
title: Authorize %{application_name}
@@ -2627,7 +2626,7 @@ zh:
'
scopes:
- api_v3: Full API access
+ api_v3: 完全 API 访问
api_v3_text: Application will receive full read & write access to the OpenProject
API to perform actions on your behalf.
grants:
@@ -2641,7 +2640,7 @@ zh:
other: "%{count} active token"
flows:
authorization_code: Authorization code flow
- client_credentials: Client credentials flow
+ client_credentials: 客户端凭据流
client_credentials: User used for Client credentials
client_credentials_impersonation_set_to: Client credentials user set to
client_credentials_impersonation_warning: 'Note: Clients using the ''Client credentials''
@@ -2652,10 +2651,7 @@ zh:
requests will be performed.
'
- authorization_error: An authorization error has occurred.
+ authorization_error: 发生了验证错误。
revoke_my_application_confirmation: Do you really want to remove this application?
This will revoke %{token_count} active for it.
- my_registered_applications: Registered OAuth applications
- setting_mail_handler_api_enabled: 启用接收电子邮件 web 服务
- setting_mail_handler_api_description: 电子邮件 web 处理程序启用 OpenProject来接收包含特定命令的电子邮件作为一种工作机制
- (例如,可以创建和更新工作包)。
+ my_registered_applications: 已注册的 OAuth 应用程序
diff --git a/config/routes.rb b/config/routes.rb
index c0b9155d54..44159acdf4 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -31,6 +31,12 @@
root to: 'homescreen#index', as: 'home'
rails_relative_url_root = OpenProject::Configuration['rails_relative_url_root'] || ''
+ # Route for health_checks
+ get '/health_check' => 'ok_computer/ok_computer#show', check: 'web'
+ # Override the default `all` checks route to return the full check
+ get '/health_checks/all' => 'ok_computer/ok_computer#show', check: 'full'
+ mount OkComputer::Engine, at: "/health_checks"
+
# Redirect deprecated issue links to new work packages uris
get '/issues(/)' => redirect("#{rails_relative_url_root}/work_packages")
# The URI.escape doesn't escape / unless you ask it to.
diff --git a/docker/Procfile b/docker/Procfile
deleted file mode 100644
index 98bd8e1fa7..0000000000
--- a/docker/Procfile
+++ /dev/null
@@ -1,3 +0,0 @@
-web: ./docker/web
-worker: ./docker/worker
-cron: ./docker/cron
diff --git a/docker/console b/docker/console
new file mode 100755
index 0000000000..6cc60ce357
--- /dev/null
+++ b/docker/console
@@ -0,0 +1,3 @@
+#!/bin/bash
+set -e
+exec bundle exec rails c
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
index 8175f0e986..20578e052b 100755
--- a/docker/entrypoint.sh
+++ b/docker/entrypoint.sh
@@ -1,12 +1,52 @@
#!/bin/bash
+
set -e
+set -o pipefail
+
+# handle legacy configs
+if [ -d "$PGDATA_LEGACY" ]; then
+ echo "WARN: You are using a legacy volume path for your postgres data. You should mount your postgres volumes at $PGDATA instead of $PGDATA_LEGACY."
+ if [ "$(find "$PGDATA" -type f | wc -l)" = "0" ]; then
+ echo "INFO: $PGDATA is empty, so $PGDATA will be symlinked to $PGDATA_LEGACY as a temporary measure."
+ sed -i "s|$PGDATA|$PGDATA_LEGACY|" /etc/postgresql/9.6/main/postgresql.conf
+ export PGDATA="$PGDATA_LEGACY"
+ else
+ echo "ERROR: $PGDATA contains files, so we will not attempt to symlink $PGDATA to $PGDATA_LEGACY. Please fix your docker configuration."
+ exit 2
+ fi
+fi
+
+if [ -d "$APP_DATA_PATH_LEGACY" ]; then
+ echo "WARN: You are using a legacy volume path for your openproject data. You should mount your openproject volume at $APP_DATA_PATH instead of $APP_DATA_PATH_LEGACY."
+ if [ "$(find "$APP_DATA_PATH" -type f | wc -l)" = "0" ]; then
+ echo "INFO: $APP_DATA_PATH is empty, so $APP_DATA_PATH will be symlinked to $APP_DATA_PATH_LEGACY as a temporary measure."
+ # also set ATTACHMENTS_STORAGE_PATH back to its legacy value in case it hasn't been changed
+ if [ "$ATTACHMENTS_STORAGE_PATH" = "$APP_DATA_PATH/files" ]; then
+ export ATTACHMENTS_STORAGE_PATH="$APP_DATA_PATH_LEGACY/files"
+ fi
+ export APP_DATA_PATH="$APP_DATA_PATH_LEGACY"
+ else
+ echo "ERROR: $APP_DATA_PATH contains files, so we will not attempt to symlink $APP_DATA_PATH to $APP_DATA_PATH_LEGACY. Please fix your docker configuration."
+ exit 2
+ fi
+fi
if [ "$(id -u)" = '0' ]; then
- chown -R $APP_USER:$APP_USER $APP_PATH $APP_DATA /usr/local
- sync
- exec $APP_PATH/docker/gosu $APP_USER "$BASH_SOURCE" "$@"
+ mkdir -p $APP_DATA_PATH/{files,git,svn}
+ chown -R $APP_USER:$APP_USER $APP_DATA_PATH
+
+ if [ ! -z "$ATTACHMENTS_STORAGE_PATH" ]; then
+ mkdir -p "$ATTACHMENTS_STORAGE_PATH"
+ chown -R "$APP_USER:$APP_USER" "$ATTACHMENTS_STORAGE_PATH"
+ fi
+ mkdir -p "$APP_PATH/log" "$APP_PATH/tmp/pids" "$APP_PATH/files"
+ chown "$APP_USER:$APP_USER" "$APP_PATH"
+ chown -R "$APP_USER:$APP_USER" "$APP_PATH/log" "$APP_PATH/tmp" "$APP_PATH/files" "$APP_PATH/public"
+ if [ "$1" = "./docker/supervisord" ]; then
+ exec "$@"
+ else
+ exec $APP_PATH/docker/gosu $APP_USER "$BASH_SOURCE" "$@"
+ fi
fi
-mkdir -p "$ATTACHMENTS_STORAGE_PATH"
-chown -R "$(id -u)" "$ATTACHMENTS_STORAGE_PATH" 2>/dev/null || :
exec "$@"
diff --git a/docker/nginx.conf.erb b/docker/nginx.conf.erb
deleted file mode 100644
index 82df5b8417..0000000000
--- a/docker/nginx.conf.erb
+++ /dev/null
@@ -1,212 +0,0 @@
-##############################################################
-# Phusion Passenger Standalone uses a template file to
-# generate an Nginx configuration file. The original template
-# file can be found by running the following command:
-#
-# ls $(passenger-config about resourcesdir)/templates/standalone/config.erb
-#
-# You can create a copy of this template file and customize it
-# to your liking. Just make sure you tell Phusion Passenger Standalone
-# to use your template file by passing the --nginx-config-template
-# parameter.
-#
-# *** NOTE ***
-# If you customize the template file, make sure you keep an eye
-# on the original template file and merge any changes.
-# New Phusion Passenger features may require changes to the template
-# file.
-##############################################################
-
-
-master_process on;
-worker_processes 1;
-daemon on;
-error_log '<%= @options[:log_file] %>' <% if @options[:log_level] >= LVL_DEBUG %>info<% end %>;
-pid '<%= @options[:pid_file] %>';
-
-<% if Process.euid == 0 %>
- <% if @options[:user] %>
- <%# Run workers as the given user. The master process will always run as root and will be able to bind to any port. %>
- user <%= @options[:user] %> <%= default_group_for(@options[:user]) %>;
- <% else %>
- <%# Prevent running Nginx workers as nobody. %>
- user <%= current_user %> <%= default_group_for(current_user) %>;
- <% end %>
-<% end %>
-
-events {
- worker_connections 1024;
-}
-
-http {
- log_format debug '[$time_local] $msec "$request" $status conn=$connection sent=$bytes_sent body_sent=$body_bytes_sent';
- include '<%= PhusionPassenger.resources_dir %>/mime.types';
-
- <% if @options[:ruby] %>
- passenger_ruby <%= @options[:ruby] %>;
- <% else %>
- passenger_ruby <%= PlatformInfo.ruby_command %>;
- <% end %>
- <% if @options[:nodejs] %>
- passenger_nodejs <%= @options[:nodejs] %>;
- <% end %>
- <% if @options[:python] %>
- passenger_python <%= @options[:python] %>;
- <% end %>
-
- passenger_root '<%= PhusionPassenger.install_spec %>';
- passenger_abort_on_startup_error on;
- passenger_ctl cleanup_pidfiles <%= serialize_strset("#{@working_dir}/temp_dir_toucher.pid") %>;
- passenger_ctl integration_mode standalone;
- passenger_ctl standalone_engine nginx;
- passenger_user_switching off;
- <%= nginx_option :passenger_log_level, :log_level %>
- <%= nginx_option :passenger_max_pool_size, :max_pool_size %>
- <%= nginx_option :passenger_min_instances, :min_instances %>
- <%= nginx_option :passenger_pool_idle_time, :pool_idle_time %>
- <%= nginx_option :passenger_max_preloader_idle_time, :max_preloader_idle_time %>
- <%= nginx_option :passenger_turbocaching, :turbocaching %>
- <% if @options[:user] %>
- passenger_user <%= @options[:user] %>;
- passenger_default_user <%= @options[:user] %>;
- passenger_analytics_log_user <%= @options[:user] %>;
- <% else %>
- passenger_user <%= current_user %>;
- passenger_default_user <%= current_user %>;
- passenger_analytics_log_user <%= current_user %>;
- <% end %>
- <% if @options[:instance_registry_dir] %>passenger_instance_registry_dir '<%= @options[:instance_registry_dir] %>';<% end %>
- <% if @options[:data_buffer_dir] %>passenger_data_buffer_dir '<%= @options[:data_buffer_dir] %>';<% end %>
- <% if @options[:rolling_restarts] %>passenger_rolling_restarts on;<% end %>
- <% if @options[:resist_deployment_errors] %>passenger_resist_deployment_errors on;<% end %>
- <% if !@options[:load_shell_envvars] %>passenger_load_shell_envvars off;<% end %>
-
- <% if !@options[:friendly_error_pages].nil? -%>
- passenger_friendly_error_pages <%= boolean_config_value(@options[:friendly_error_pages]) %>;
- <% end %>
-
- <% if @options[:union_station_gateway_address] %>
- union_station_gateway_address <%= @options[:union_station_gateway_address] %>;
- <% end %>
- <% if @options[:union_station_gateway_port] %>
- union_station_gateway_port <%= @options[:union_station_gateway_port] %>;
- <% end %>
- <% if @options[:union_station_gateway_cert] %>
- union_station_gateway_cert -;
- <% end %>
-
- <% @options[:ctls].each do |ctl| %>
- passenger_ctl '<%= ctl.split("=", 2)[0] %>' '<%= ctl.split("=", 2)[1] %>';
- <% end %>
-
- default_type application/octet-stream;
- types_hash_max_size 2048;
- server_names_hash_bucket_size 64;
- client_max_body_size 20m;
- access_log off;
- keepalive_timeout 60;
- underscores_in_headers on;
- gzip on;
- gzip_comp_level 3;
- gzip_min_length 150;
- gzip_proxied any;
- gzip_types text/plain text/css text/json text/javascript
- application/javascript application/x-javascript application/json
- application/rss+xml application/vnd.ms-fontobject application/x-font-ttf
- application/xml font/opentype image/svg+xml text/xml;
-
- <% if @app_finder.multi_mode? %>
- # Default server entry for mass deployment mode.
- server {
- <% if @options[:ssl] %>
- <% if @options[:ssl_port] %>
- listen <%= nginx_listen_address %>;
- listen <%= nginx_listen_address_with_ssl_port %> ssl;
- <% else %>
- listen <%= nginx_listen_address %> ssl;
- <% end %>
- <% else %>
- listen <%= nginx_listen_address %>;
- <% end %>
- root '<%= PhusionPassenger.resources_dir %>/standalone_default_root';
- }
- <% end %>
-
- <% for app in @apps %>
- server {
- <% if app[:ssl] %>
- <% if app[:ssl_port] %>
- listen <%= nginx_listen_address(app) %>;
- listen <%= nginx_listen_address_with_ssl_port(app) %> ssl;
- <% else %>
- listen <%= nginx_listen_address(app) %> ssl;
- <% end %>
- <% else %>
- listen <%= nginx_listen_address(app) %>;
- <% end %>
- server_name <%= app[:server_names].join(' ') %>;
- <% if app[:static_files_dir] %>
- root '<%= app[:static_files_dir] %>';
- <% else %>
- root '<%= app[:root] %>/public';
- <% end %>
- passenger_app_root '<%= app[:root] %>';
- passenger_enabled on;
- passenger_app_env <%= app[:environment] %>;
- passenger_spawn_method <%= app[:spawn_method] %>;
- <% if app[:app_type] %>passenger_app_type <%= app[:app_type] %>;<% end %>
- <% if app[:startup_file] %>passenger_startup_file <%= app[:startup_file] %>;<% end %>
- <% if app[:concurrency_model] && app[:concurrency_model] != DEFAULT_CONCURRENCY_MODEL %>passenger_concurrency_model <%= app[:concurrency_model] %>;<% end %>
- <% if app[:thread_count] && app[:thread_count] != DEFAULT_APP_THREAD_COUNT %>passenger_thread_count <%= app[:thread_count] %>;<% end %>
- <% if app[:min_instances] %>passenger_min_instances <%= app[:min_instances] %>;<% end %>
- <% if app[:restart_dir] %>passenger_restart_dir '<%= app[:restart_dir] %>';<% end %>
- <% if app[:sticky_sessions] %>passenger_sticky_sessions on;<% end %>
- <% if app[:sticky_sessions_cookie_name] %>passenger_sticky_sessions_cookie_name '<%= app[:sticky_sessions_cookie_name] %>';<% end %>
- <% if app[:vary_turbocache_by_cookie] %>passenger_vary_turbocache_by_cookie '<%= app[:vary_turbocache_by_cookie] %>';<% end %>
- <% if app[:union_station_key] %>
- union_station_support on;
- union_station_key <%= app[:union_station_key] %>;
- <% end %>
- <% if app[:ssl] %>
- ssl_certificate <%= app[:ssl_certificate] %>;
- ssl_certificate_key <%= app[:ssl_certificate_key] %>;
- <% end %>
- <% if @options[:meteor_app_settings] %>
- passenger_meteor_app_settings <%= @options[:meteor_app_settings] %>;
- <% end %>
-
- <% app[:envvars].each_pair do |name, value| %>
- passenger_env_var '<%= name %>' '<%= value %>';
- <% end %>
-
- # Rails asset pipeline support.
- location ~ "^/assets/.+-([0-9a-f]{32}|[0-9a-f]{64})\..+" {
- error_page 490 = @static_asset;
- error_page 491 = @dynamic_request;
- recursive_error_pages on;
-
- if (-f $request_filename) {
- return 490;
- }
- if (!-f $request_filename) {
- return 491;
- }
- }
- location @static_asset {
- gzip_static on;
- expires max;
- add_header Cache-Control public;
- add_header Access-Control-Allow-Origin "*";
- add_header ETag "";
- }
- location @dynamic_request {
- passenger_enabled on;
- }
-
- <% (ENV['NGINX_ADDITIONAL_SERVER_RULES'] || "").split(";").each do |rule| %>
- <%= rule.chomp(";") %>;
- <% end %>
- }
- passenger_pre_start <%= listen_url(app) %>;
- <% end %>
-}
diff --git a/docker/precompile-assets.sh b/docker/precompile-assets.sh
new file mode 100644
index 0000000000..334fb23a18
--- /dev/null
+++ b/docker/precompile-assets.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+set -e
+
+pushd "${APP_PATH}/frontend"
+
+# Installing frontend dependencies
+RAILS_ENV=production npm install
+
+popd
+
+# Bundle assets
+DATABASE_URL='nulldb://nohost' RAILS_ENV=production bundle exec rake assets:precompile
+
+# Remove node_modules and entire frontend
+rm -rf "$APP_PATH/node_modules/" "$APP_PATH/frontend/node_modules/"
+
+# Clean cache in root
+rm -rf /root/.npm
diff --git a/docker/proxy b/docker/proxy
index 370d6caeb6..a4f0725770 100755
--- a/docker/proxy
+++ b/docker/proxy
@@ -1,5 +1,5 @@
#!/bin/bash
set -e
-[ -f /etc/apache2/sites-enabled/openproject.conf ] || erb -r time /usr/src/app/docker/proxy.conf.erb > /etc/apache2/sites-enabled/openproject.conf
+[ -f /etc/apache2/sites-enabled/openproject.conf ] || erb -r time $APP_PATH/docker/proxy.conf.erb > /etc/apache2/sites-enabled/openproject.conf
exec /usr/sbin/apache2ctl -DFOREGROUND
diff --git a/docker/proxy.conf.erb b/docker/proxy.conf.erb
index 360c70bd5d..1376257b67 100644
--- a/docker/proxy.conf.erb
+++ b/docker/proxy.conf.erb
@@ -1,6 +1,6 @@
ServerName <%= ENV.fetch('SERVER_NAME') { "_default_" } %>
- DocumentRoot /usr/src/app/public
+ DocumentRoot <%= ENV.fetch('APP_PATH') %>/public
ProxyRequests off
diff --git a/docker/entrypoint-all-in-one.sh b/docker/supervisord
similarity index 78%
rename from docker/entrypoint-all-in-one.sh
rename to docker/supervisord
index 0daec58c24..59e0fbad80 100755
--- a/docker/entrypoint-all-in-one.sh
+++ b/docker/supervisord
@@ -3,32 +3,30 @@
set -e
set -o pipefail
-PGDATA=${PGDATA:=/var/lib/postgresql/9.6/main}
+indent() {
+ sed -u 's/^/ /'
+}
+
+echo "-----> Starting the all-in-one OpenProject setup at $BASH_SOURCE..."
+
+if [ "$PGDATA" == "" ]; then
+ echo "No PGDATA environment variable defined. Aborting." | indent
+ exit 2
+fi
+
PGUSER=${PGUSER:=postgres}
PGPASSWORD=${PGPASSWORD:=postgres}
PG_STARTUP_WAIT_TIME=${PG_STARTUP_WAIT_TIME:=10}
SUPERVISORD_LOG_LEVEL=${SUPERVISORD_LOG_LEVEL:=info}
PGBIN="/usr/lib/postgresql/9.6/bin"
-if [ ! -z "$ATTACHMENTS_STORAGE_PATH" ]; then
- mkdir -p "$ATTACHMENTS_STORAGE_PATH"
- chown -R app:app "$ATTACHMENTS_STORAGE_PATH"
-fi
-
-if [ "$(id -u)" = '0' ]; then
- echo "-----> Ensure $APP_PATH is owned by $APP_USER"
- mkdir -p "$APP_PATH/log" "$APP_PATH/tmp" "$APP_PATH/files"
- chown $APP_USER:$APP_USER "$APP_PATH"
- chown -R $APP_USER:$APP_USER "$APP_PATH/log" "$APP_PATH/tmp" "$APP_PATH/files" "$APP_PATH/public"
-fi
-
dbhost=$(ruby -ruri -e 'puts URI(ENV.fetch("DATABASE_URL")).host')
pwfile=$(mktemp)
echo "$PGPASSWORD" > $pwfile
chown postgres $pwfile
PLUGIN_GEMFILE_TMP=$(mktemp)
-PLUGIN_GEMFILE=/usr/src/app/Gemfile.local
+PLUGIN_GEMFILE=$APP_PATH/Gemfile.local
if [ "$PLUGIN_GEMFILE_URL" != "" ]; then
echo "Fetching custom gemfile from ${PLUGIN_GEMFILE_URL}..."
@@ -37,37 +35,43 @@ if [ "$PLUGIN_GEMFILE_URL" != "" ]; then
# set custom plugin gemfile if file is readable and non-empty
if [ -s "$PLUGIN_GEMFILE_TMP" ]; then
mv "$PLUGIN_GEMFILE_TMP" "$PLUGIN_GEMFILE"
- chown app.app "$PLUGIN_GEMFILE"
+ chown $APP_USER:$APP_USER "$PLUGIN_GEMFILE"
fi
fi
-indent() {
- sed -u 's/^/ /'
-}
-
install_plugins() {
- pushd /usr/src/app
+ pushd $APP_PATH >/dev/null
if [ -s "$PLUGIN_GEMFILE" ]; then
echo "Installing plugins..."
bundle install
+
+ echo "Installing frontend dependencies..."
+ pushd $APP_PATH/frontend >/dev/null
+ if [ "$(id -u)" = '0' ]; then
+ su - $APP_USER -c "cd $APP_PATH/frontend && npm install"
+ else
+ npm install
+ fi
+ popd >/dev/null
+
echo "Precompiling new assets..."
bundle exec rake assets:precompile
echo "Plugins installed"
fi
- popd
+ popd >/dev/null
}
migrate() {
wait_for_postgres
- pushd /usr/src/app
+ pushd $APP_PATH >/dev/null
/etc/init.d/memcached start
bundle exec rake db:migrate db:seed db:structure:dump
/etc/init.d/memcached stop
- chown app:app db/structure.sql
- popd
+ chown "$APP_USER.$APP_USER" db/structure.sql
+ popd >/dev/null
}
wait_for_postgres() {
@@ -108,5 +112,4 @@ echo "-----> Database setup finished."
echo " On first installation, the default admin credentials are login: admin, password: admin"
echo "-----> Launching supervisord..."
-exec /usr/bin/supervisord -e ${SUPERVISORD_LOG_LEVEL}
-
+exec /usr/bin/supervisord -c $APP_PATH/docker/supervisord.conf -e ${SUPERVISORD_LOG_LEVEL}
diff --git a/docker/supervisord.conf b/docker/supervisord.conf
index bc6608e555..7a5b74f53e 100644
--- a/docker/supervisord.conf
+++ b/docker/supervisord.conf
@@ -4,44 +4,60 @@ nodaemon=true
[program:web]
priority=4
user=app
-directory=/usr/src/app
+environment=HOME="/home/%(ENV_APP_USER)s",USER="%(ENV_APP_USER)s"
+directory=%(ENV_APP_PATH)s
command=./docker/web
autorestart=true
-stderr_logfile = /var/log/supervisor/%(program_name)s-stderr.log
-stdout_logfile = /var/log/supervisor/%(program_name)s-stdout.log
+stderr_logfile = /dev/stderr
+stdout_logfile = /dev/stdout
+stdout_logfile_maxbytes = 0
+stderr_logfile_maxbytes = 0
[program:worker]
priority=5
user=app
-directory=/usr/src/app
+environment=HOME="/home/%(ENV_APP_USER)s",USER="%(ENV_APP_USER)s"
+directory=%(ENV_APP_PATH)s
command=./docker/worker
+startretries=10
autorestart=true
-stderr_logfile = /var/log/supervisor/%(program_name)s-stderr.log
-stdout_logfile = /var/log/supervisor/%(program_name)s-stdout.log
+stderr_logfile = /dev/stderr
+stdout_logfile = /dev/stdout
+stdout_logfile_maxbytes = 0
+stderr_logfile_maxbytes = 0
[program:memcached]
priority=100
user=app
+environment=HOME="/home/%(ENV_APP_USER)s",USER="%(ENV_APP_USER)s"
command=/usr/bin/memcached
autorestart=true
-stderr_logfile = /var/log/supervisor/%(program_name)s-stderr.log
-stdout_logfile = /var/log/supervisor/%(program_name)s-stdout.log
+stderr_logfile = /dev/stderr
+stdout_logfile = /dev/stdout
+stdout_logfile_maxbytes = 0
+stderr_logfile_maxbytes = 0
[program:cron]
priority=100
user=app
-directory=/usr/src/app
+environment=HOME="/home/%(ENV_APP_USER)s",USER="%(ENV_APP_USER)s"
+directory=%(ENV_APP_PATH)s
command=./docker/cron
+autostart=false
autorestart=true
-stderr_logfile = /var/log/supervisor/%(program_name)s-stderr.log
-stdout_logfile = /var/log/supervisor/%(program_name)s-stdout.log
+stderr_logfile = /dev/stderr
+stdout_logfile = /dev/stdout
+stdout_logfile_maxbytes = 0
+stderr_logfile_maxbytes = 0
[program:apache2]
priority=2
-directory=/usr/src/app
+directory=%(ENV_APP_PATH)s
command=./docker/proxy
-stderr_logfile = /var/log/supervisor/%(program_name)s-stderr.log
-stdout_logfile = /var/log/supervisor/%(program_name)s-stdout.log
+stderr_logfile = /dev/stderr
+stdout_logfile = /dev/stdout
+stdout_logfile_maxbytes = 0
+stderr_logfile_maxbytes = 0
[program:postfix]
priority=100
@@ -49,13 +65,18 @@ directory=/etc/postfix
command=/usr/sbin/postfix -c /etc/postfix start
startsecs=0
autorestart=false
-stderr_logfile = /var/log/supervisor/%(program_name)s-stderr.log
-stdout_logfile = /var/log/supervisor/%(program_name)s-stdout.log
+stderr_logfile = /dev/stderr
+stdout_logfile = /dev/stdout
+stdout_logfile_maxbytes = 0
+stderr_logfile_maxbytes = 0
[program:postgres]
user=postgres
priority=1
-command=/usr/lib/postgresql/9.6/bin/postgres -D /var/lib/postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/postgresql.conf
+command=/usr/lib/postgresql/9.6/bin/postgres -D %(ENV_PGDATA)s -c config_file=/etc/postgresql/9.6/main/postgresql.conf
autorestart=true
-stderr_logfile = /var/log/supervisor/%(program_name)s-stderr.log
-stdout_logfile = /var/log/supervisor/%(program_name)s-stdout.log
+stderr_logfile = /dev/stderr
+stdout_logfile = /dev/stdout
+stdout_logfile_maxbytes = 0
+stderr_logfile_maxbytes = 0
+
diff --git a/docker/wait-for-it.sh b/docker/wait-for-it.sh
deleted file mode 100755
index eca6c3b9c8..0000000000
--- a/docker/wait-for-it.sh
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/usr/bin/env bash
-# Use this script to test if a given TCP host/port are available
-
-cmdname=$(basename $0)
-
-echoerr() { if [[ $QUIET -ne 1 ]]; then echo "$@" 1>&2; fi }
-
-usage()
-{
- cat << USAGE >&2
-Usage:
- $cmdname host:port [-s] [-t timeout] [-- command args]
- -h HOST | --host=HOST Host or IP under test
- -p PORT | --port=PORT TCP port under test
- Alternatively, you specify the host and port as host:port
- -s | --strict Only execute subcommand if the test succeeds
- -q | --quiet Don't output any status messages
- -t TIMEOUT | --timeout=TIMEOUT
- Timeout in seconds, zero for no timeout
- -- COMMAND ARGS Execute command with args after the test finishes
-USAGE
- exit 1
-}
-
-wait_for()
-{
- if [[ $TIMEOUT -gt 0 ]]; then
- echoerr "$cmdname: waiting $TIMEOUT seconds for $HOST:$PORT"
- else
- echoerr "$cmdname: waiting for $HOST:$PORT without a timeout"
- fi
- start_ts=$(date +%s)
- while :
- do
- (echo > /dev/tcp/$HOST/$PORT) >/dev/null 2>&1
- result=$?
- if [[ $result -eq 0 ]]; then
- end_ts=$(date +%s)
- echoerr "$cmdname: $HOST:$PORT is available after $((end_ts - start_ts)) seconds"
- break
- fi
- sleep 1
- done
- return $result
-}
-
-wait_for_wrapper()
-{
- # In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692
- if [[ $QUIET -eq 1 ]]; then
- timeout $TIMEOUT $0 --quiet --child --host=$HOST --port=$PORT --timeout=$TIMEOUT &
- else
- timeout $TIMEOUT $0 --child --host=$HOST --port=$PORT --timeout=$TIMEOUT &
- fi
- PID=$!
- trap "kill -INT -$PID" INT
- wait $PID
- RESULT=$?
- if [[ $RESULT -ne 0 ]]; then
- echoerr "$cmdname: timeout occurred after waiting $TIMEOUT seconds for $HOST:$PORT"
- fi
- return $RESULT
-}
-
-# process arguments
-while [[ $# -gt 0 ]]
-do
- case "$1" in
- *:* )
- hostport=(${1//:/ })
- HOST=${hostport[0]}
- PORT=${hostport[1]}
- shift 1
- ;;
- --child)
- CHILD=1
- shift 1
- ;;
- -q | --quiet)
- QUIET=1
- shift 1
- ;;
- -s | --strict)
- STRICT=1
- shift 1
- ;;
- -h)
- HOST="$2"
- if [[ $HOST == "" ]]; then break; fi
- shift 2
- ;;
- --host=*)
- HOST="${1#*=}"
- shift 1
- ;;
- -p)
- PORT="$2"
- if [[ $PORT == "" ]]; then break; fi
- shift 2
- ;;
- --port=*)
- PORT="${1#*=}"
- shift 1
- ;;
- -t)
- TIMEOUT="$2"
- if [[ $TIMEOUT == "" ]]; then break; fi
- shift 2
- ;;
- --timeout=*)
- TIMEOUT="${1#*=}"
- shift 1
- ;;
- --)
- shift
- CLI="$@"
- break
- ;;
- --help)
- usage
- ;;
- *)
- echoerr "Unknown argument: $1"
- usage
- ;;
- esac
-done
-
-if [[ "$HOST" == "" || "$PORT" == "" ]]; then
- echoerr "Error: you need to provide a host and port to test."
- usage
-fi
-
-TIMEOUT=${TIMEOUT:-15}
-STRICT=${STRICT:-0}
-CHILD=${CHILD:-0}
-QUIET=${QUIET:-0}
-
-if [[ $CHILD -gt 0 ]]; then
- wait_for
- RESULT=$?
- exit $RESULT
-else
- if [[ $TIMEOUT -gt 0 ]]; then
- wait_for_wrapper
- RESULT=$?
- else
- wait_for
- RESULT=$?
- fi
-fi
-
-if [[ $CLI != "" ]]; then
- if [[ $RESULT -ne 0 && $STRICT -eq 1 ]]; then
- echoerr "$cmdname: strict mode, refusing to execute subprocess"
- exit $RESULT
- fi
- exec $CLI
-else
- exit $RESULT
-fi
diff --git a/docker/web b/docker/web
index 538fd524f5..28f0a92bbd 100755
--- a/docker/web
+++ b/docker/web
@@ -19,5 +19,4 @@ exec bundle exec passenger start \
--min-instances "$MIN_INSTANCES" \
--max-pool-size "$MAX_INSTANCES" \
--spawn-method "$SPAWN_METHOD" \
- --nginx-config-template "docker/nginx.conf.erb" \
--max-preloader-idle-time 0
diff --git a/frontend/src/app/components/op-context-menu/handlers/op-types-context-menu.directive.ts b/frontend/src/app/components/op-context-menu/handlers/op-types-context-menu.directive.ts
index b799269256..4846291875 100644
--- a/frontend/src/app/components/op-context-menu/handlers/op-types-context-menu.directive.ts
+++ b/frontend/src/app/components/op-context-menu/handlers/op-types-context-menu.directive.ts
@@ -29,13 +29,14 @@
import {OpContextMenuItem} from 'core-components/op-context-menu/op-context-menu.types';
import {StateService} from '@uirouter/core';
import {OPContextMenuService} from "core-components/op-context-menu/op-context-menu.service";
-import {Directive, ElementRef, Input} from "@angular/core";
+import {Directive, ElementRef, Input, Inject} from "@angular/core";
import {LinkHandling} from "core-app/modules/common/link-handling/link-handling";
import {OpContextMenuTrigger} from "core-components/op-context-menu/handlers/op-context-menu-trigger.directive";
import {TypeResource} from 'core-app/modules/hal/resources/type-resource';
-import {TypeDmService} from "core-app/modules/hal/dm-services/type-dm.service";
import {Highlighting} from 'core-app/components/wp-fast-table/builders/highlighting/highlighting.functions';
import {BrowserDetector} from "core-app/modules/common/browser/browser-detector.service";
+import {WorkPackageCreateService} from 'core-components/wp-new/wp-create.service';
+import {IWorkPackageCreateServiceToken} from 'core-components/wp-new/wp-create.service.interface';
@Directive({
selector: '[opTypesCreateDropdown]'
@@ -51,7 +52,7 @@ export class OpTypesContextMenuDirective extends OpContextMenuTrigger {
readonly opContextMenu:OPContextMenuService,
readonly browserDetector:BrowserDetector,
readonly $state:StateService,
- readonly typeDmService:TypeDmService) {
+ @Inject(IWorkPackageCreateServiceToken) protected wpCreate:WorkPackageCreateService) {
super(elementRef, opContextMenu);
}
@@ -67,9 +68,12 @@ export class OpTypesContextMenuDirective extends OpContextMenuTrigger {
this.stateName = 'work-packages.new';
}
- this.loadingPromise = this.typeDmService
- .loadAll(this.projectIdentifier)
- .then(types => this.buildItems(types));
+ this.loadingPromise = this
+ .wpCreate
+ .getEmptyForm(this.projectIdentifier)
+ .then(form => {
+ return this.buildItems(form.schema.type.allowedValues);
+ })
}
protected open(evt:JQueryEventObject) {
diff --git a/frontend/src/app/components/wp-table/context-menu-helper/wp-context-menu-helper.service.ts b/frontend/src/app/components/wp-table/context-menu-helper/wp-context-menu-helper.service.ts
index 99a0ba5e54..6cbc47b646 100644
--- a/frontend/src/app/components/wp-table/context-menu-helper/wp-context-menu-helper.service.ts
+++ b/frontend/src/app/components/wp-table/context-menu-helper/wp-context-menu-helper.service.ts
@@ -78,9 +78,11 @@ export class WorkPackageContextMenuHelperService {
}
public getPermittedActionLinks(workPackage:WorkPackageResource, permittedActionConstants:any):WorkPackageAction[] {
- var singularPermittedActions:any[] = [];
+ let singularPermittedActions: any[] = [];
- var allowedActions = this.getAllowedActions(workPackage, permittedActionConstants);
+ let allowedActions = this.getAllowedActions(workPackage, permittedActionConstants);
+
+ allowedActions = allowedActions.concat(this.getAllowedRelationActions(workPackage));
_.each(allowedActions, (allowedAction) => {
singularPermittedActions.push({
@@ -95,10 +97,10 @@ export class WorkPackageContextMenuHelperService {
}
public getIntersectOfPermittedActions(workPackages:any) {
- var bulkPermittedActions:any = [];
+ let bulkPermittedActions: any = [];
- var permittedActions = _.filter(this.BULK_ACTIONS, (action:any) => {
- return _.every(workPackages, (workPackage:WorkPackageResource) => {
+ let permittedActions = _.filter(this.BULK_ACTIONS, (action: any) => {
+ return _.every(workPackages, (workPackage: WorkPackageResource) => {
return this.getAllowedActions(workPackage, [action]).length >= 1;
});
});
@@ -115,22 +117,22 @@ export class WorkPackageContextMenuHelperService {
}
public getBulkActionLink(action:any, workPackages:any) {
- var workPackageIdParams = {
- 'ids[]': workPackages.map(function(wp:any){
+ let workPackageIdParams = {
+ 'ids[]': workPackages.map(function (wp: any) {
return wp.id;
})
};
- var serializedIdParams = this.UrlParamsHelper.buildQueryString(workPackageIdParams);
+ let serializedIdParams = this.UrlParamsHelper.buildQueryString(workPackageIdParams);
- var linkAndQueryString = action.href.split('?');
- var link = linkAndQueryString.shift();
- var queryParts = linkAndQueryString.concat(new Array(serializedIdParams));
+ let linkAndQueryString = action.href.split('?');
+ let link = linkAndQueryString.shift();
+ let queryParts = linkAndQueryString.concat(new Array(serializedIdParams));
return link + '?' + queryParts.join('&');
}
- public getAllowedActions(workPackage:WorkPackageResource, actions:WorkPackageAction[]):WorkPackageAction[] {
- var allowedActions:WorkPackageAction[] = [];
+ private getAllowedActions(workPackage:WorkPackageResource, actions:WorkPackageAction[]):WorkPackageAction[] {
+ let allowedActions: WorkPackageAction[] = [];
_.each(actions, (action) => {
if (workPackage.hasOwnProperty(action.link)) {
@@ -141,11 +143,17 @@ export class WorkPackageContextMenuHelperService {
_.each(this.HookService.call('workPackageTableContextMenu'), (action) => {
if (workPackage.hasOwnProperty(action.link)) {
- var index = action.indexBy ? action.indexBy(allowedActions) : allowedActions.length;
+ let index = action.indexBy ? action.indexBy(allowedActions) : allowedActions.length;
allowedActions.splice(index, 0, action)
}
});
+ return allowedActions;
+ }
+
+ private getAllowedRelationActions(workPackage:WorkPackageResource) {
+ let allowedActions: WorkPackageAction[] = [];
+
if (workPackage.addRelation && this.wpTableTimeline.isVisible) {
allowedActions.push({
key: "relation-precedes",
@@ -170,6 +178,7 @@ export class WorkPackageContextMenuHelperService {
return allowedActions;
}
+
public getPermittedActions(workPackages:WorkPackageResource[], permittedActionConstants:any):WorkPackageAction[] {
if (workPackages.length === 1) {
return this.getPermittedActionLinks(workPackages[0], permittedActionConstants);
diff --git a/lib/open_project.rb b/lib/open_project.rb
index 9c06d2d17b..489e4dc6c6 100644
--- a/lib/open_project.rb
+++ b/lib/open_project.rb
@@ -44,7 +44,6 @@
require 'csv'
module OpenProject
-
##
# Shortcut to the OpenProject log delegator, which extends
# default Rails error handling with other error handlers such as sentry.
diff --git a/lib/open_project/null_db_fallback.rb b/lib/open_project/null_db_fallback.rb
new file mode 100644
index 0000000000..f03edbbb61
--- /dev/null
+++ b/lib/open_project/null_db_fallback.rb
@@ -0,0 +1,68 @@
+#-- encoding: UTF-8
+
+#-- copyright
+# OpenProject is a project management system.
+# Copyright (C) 2012-2018 the OpenProject Foundation (OPF)
+#
+# 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-2017 Jean-Philippe Lang
+# Copyright (C) 2010-2013 the ChiliProject Team
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# See docs/COPYRIGHT.rdoc for more details.
+#++
+
+module OpenProject
+ module NullDbFallback
+ class << self
+ def fallback
+ ActiveRecord::Base.connection
+ rescue ActiveRecord::NoDatabaseError
+ applied!
+ ActiveRecord::Base.establish_connection adapter: :nulldb
+ end
+
+ def reset
+ return unless applied?
+
+ ActiveRecord::Base.establish_connection(database_config)
+ end
+
+ private
+
+ attr_accessor :applied
+
+ def applied!
+ self.applied = true
+ end
+
+ def unapplied!
+ self.applied = false
+ end
+
+ def applied?
+ !!applied
+ end
+
+ def database_config
+ YAML.load_file(File.join(Rails.root, "config", "database.yml"))[Rails.env]
+ end
+ end
+ end
+end
diff --git a/lib/open_project/version.rb b/lib/open_project/version.rb
index 98b09d1d50..475cdc85cf 100644
--- a/lib/open_project/version.rb
+++ b/lib/open_project/version.rb
@@ -34,7 +34,7 @@ module OpenProject
module VERSION #:nodoc:
MAJOR = 8
MINOR = 3
- PATCH = 1
+ PATCH = 2
TINY = PATCH # Redmine compat
# Used by semver to define the special version (if any).
diff --git a/spec/controllers/concerns/omniauth_login_spec.rb b/spec/controllers/concerns/omniauth_login_spec.rb
index 6dbdf3d2a6..bfaaf54b61 100644
--- a/spec/controllers/concerns/omniauth_login_spec.rb
+++ b/spec/controllers/concerns/omniauth_login_spec.rb
@@ -34,12 +34,7 @@
User.current = nil
end
- context 'GET #omniauth_login' do
- before do
- allow(Setting).to receive(:self_registration?).and_return(true)
- allow(Setting).to receive(:self_registration).and_return('3')
- end
-
+ context 'GET #omniauth_login', with_settings: { self_registration: '3' } do
describe 'with on-the-fly registration' do
context 'providing all required fields' do
let(:omniauth_hash) do
@@ -306,7 +301,7 @@
if auth.info.name == config.google_name
dec.approve
else
- dec.reject "#{auth.info.name} can fuck right off"
+ dec.reject "Go away #{auth.info.name}!"
end
end
@@ -382,7 +377,7 @@
post :omniauth_login, params: { provider: :google }
expect(response).to redirect_to signin_path
- expect(flash[:error]).to eq 'foo can fuck right off'
+ expect(flash[:error]).to eq 'Go away foo!'
end
it 'is approved against any other provider' do
@@ -397,9 +392,9 @@
post :omniauth_login, params: { provider: :google }
expect(response).to redirect_to home_url(first_time_user: true)
- # authorization is successful which results in the registration
+ # The authorization is successful which results in the registration
# of a new user in this case because we changed the provider
- # and there isn't a user with that identity URL yet ...
+ # and there isn't a user with that identity URL yet.
end
# ... and to confirm that, here's what happens when the authorization fails
@@ -419,7 +414,7 @@
end
context 'with a registered and not activated accout',
- with_settings: { self_registration: 1 } do
+ with_settings: { self_registration: '1' } do
before do
user.register
user.save!
@@ -428,7 +423,7 @@
end
it 'should show an error about a not activated account' do
- expect(flash[:error]).to eql(I18n.t('account.error_inactive_manual_activation'))
+ expect(flash[:error]).to eql(I18n.t('account.error_inactive_activation_by_mail'))
end
it 'should redirect to signin_path' do
@@ -436,6 +431,24 @@
end
end
+ context 'with an invited user and self registration disabled',
+ with_settings: { self_registration: '0' } do
+ before do
+ user.invite
+ user.save!
+
+ post :omniauth_login, params: { provider: :google }
+ end
+
+ it 'should show a notice about the activated account' do
+ expect(flash[:notice]).to eq(I18n.t('notice_account_registered_and_logged_in'))
+ end
+
+ it 'should activate the user' do
+ expect(user.reload).to be_active
+ end
+ end
+
context 'with a locked account',
with_settings: { brute_force_block_after_failed_logins?: false } do
before do
diff --git a/spec/features/users/brute_force_spec.rb b/spec/features/users/brute_force_spec.rb
index a285089ab0..a575c02b73 100644
--- a/spec/features/users/brute_force_spec.rb
+++ b/spec/features/users/brute_force_spec.rb
@@ -104,12 +104,12 @@ def pretend_to_have_waited(time)
login_with login, invalid_password
expect(page)
- .to have_content(I18n.t(:notice_account_invalid_credentials_or_blocked))
+ .to have_content(I18n.t(:notice_account_invalid_credentials))
new_login_attempt(login, invalid_password)
expect(page)
- .to have_content(I18n.t(:notice_account_invalid_credentials_or_blocked))
+ .to have_content(I18n.t(:notice_account_invalid_credentials))
new_login_attempt(login, password)
diff --git a/spec/helpers/security_badge_helper_spec.rb b/spec/helpers/security_badge_helper_spec.rb
index b885a80359..e6ca139c05 100644
--- a/spec/helpers/security_badge_helper_spec.rb
+++ b/spec/helpers/security_badge_helper_spec.rb
@@ -29,7 +29,12 @@
require 'spec_helper'
describe SecurityBadgeHelper, type: :helper do
- describe '#security_badge_url', with_settings: { installation_uuid: 'abcd1234' } do
+ describe '#security_badge_url' do
+ before do
+ # can't use with_settings since Setting.installation_uuid has a custom implementation
+ allow(Setting).to receive(:installation_uuid).and_return 'abcd1234'
+ end
+
it "generates a URL with the release API path and the details of the installation" do
uri = URI.parse(helper.security_badge_url)
query = Rack::Utils.parse_nested_query(uri.query)
diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb
index 75a0bf28ae..e933cfca12 100644
--- a/spec/models/setting_spec.rb
+++ b/spec/models/setting_spec.rb
@@ -101,7 +101,10 @@
expect(Setting.installation_uuid).not_to be_blank
end
- it "returns the existing value if any", with_settings: { installation_uuid: "abcd1234" } do
+ it "returns the existing value if any" do
+ # can't use with_settings since Setting.installation_uuid has a custom implementation
+ allow(Setting).to receive(:installation_uuid).and_return "abcd1234"
+
expect(Setting.installation_uuid).to eq("abcd1234")
end
diff --git a/spec/support/shared/with_settings.rb b/spec/support/shared/with_settings.rb
index 5c12c937fc..311e578dc8 100644
--- a/spec/support/shared/with_settings.rb
+++ b/spec/support/shared/with_settings.rb
@@ -46,21 +46,21 @@ def aggregate_mocked_settings(example, settings)
if settings.present?
settings = aggregate_mocked_settings(example, settings)
+ allow(Setting).to receive(:[]).and_call_original
+
settings.each do |k, v|
- bare, questionmarked = if k.to_s.ends_with?('?')
- [k.to_s[0..-2].to_sym, k]
- else
- [k, "#{k}?".to_sym]
- end
+ name = k.to_s.sub(/\?\Z/, '') # remove trailing question mark if present to get setting name
+
+ raise "#{k} is not a valid setting" unless Setting.respond_to?(name)
- raise "#{k} is not a valid setting" unless Setting.respond_to?(bare)
+ expect(name).not_to start_with("localized_"), ->() do
+ base = name[10..-1]
- if Setting.available_settings[bare.to_s] && Setting.available_settings[bare.to_s]['format'] == 'boolean'
- allow(Setting).to receive(bare).and_return(v)
- allow(Setting).to receive(questionmarked).and_return(v)
- else
- allow(Setting).to receive(k).and_return(v)
+ "Don't use `#{name}` in `with_settings`. Do this: `with_settings: { #{base}: { \"en\" => \"#{v}\" } }`"
end
+
+ allow(Setting).to receive(:[]).with(name).and_return v
+ allow(Setting).to receive(:[]).with(name.to_sym).and_return v
end
end
end
diff --git a/spec_legacy/functional/user_mailer_spec.rb b/spec_legacy/functional/user_mailer_spec.rb
index 24586e4220..cd25c1c625 100644
--- a/spec_legacy/functional/user_mailer_spec.rb
+++ b/spec_legacy/functional/user_mailer_spec.rb
@@ -396,7 +396,9 @@
context 'layout',
with_settings: {
available_languages: [:en, :de],
- localized_emails_header: 'deutscher header'
+ emails_header: {
+ "de" => 'deutscher header'
+ }
} do
it 'should include the emails_header depeding on the locale' do
user = FactoryBot.create(:user, language: :de)