Compare commits

..

3 Commits

Author SHA1 Message Date
Christophe Bliard d21b54c41e
Set ActiveSupport.to_time_preserves_timezone = true 2 years ago
Christophe Bliard 3b7f6242a9
Set config.active_record.belongs_to_required_by_default = true 2 years ago
Christophe Bliard 6240663c74
Make ActiveRecord models inherit from ApplicationRecord 2 years ago
  1. 2
      .rubocop.yml
  2. 10
      Gemfile
  3. 210
      Gemfile.lock
  4. 2
      Gemfile.modules
  5. 8
      app/contracts/work_packages/create_contract.rb
  6. 4
      app/models/custom_field.rb
  7. 2
      app/models/projects/status.rb
  8. 4
      app/models/setting.rb
  9. 38
      app/models/setting/callbacks_helper.rb
  10. 2
      app/models/user_preference.rb
  11. 11
      app/models/work_package.rb
  12. 53
      app/models/work_packages/scopes/covering_days_of_week.rb
  13. 29
      app/services/settings/update_service.rb
  14. 14
      app/services/settings/working_days_update_service.rb
  15. 24
      app/services/work_packages/create_service.rb
  16. 6
      app/services/work_packages/set_attributes_service.rb
  17. 2
      app/views/customizable/_form.html.erb
  18. 5
      app/views/roles/report.html.erb
  19. 43
      app/workers/work_packages/apply_working_days_change_job.rb
  20. 33
      config/constants/settings/definition.rb
  21. 154
      config/constants/settings/definitions.rb
  22. 4
      config/initializers/new_framework_defaults_5_0.rb
  23. 2
      config/initializers/omniauth.rb
  24. 4
      config/locales/crowdin/af.yml
  25. 4
      config/locales/crowdin/ar.yml
  26. 4
      config/locales/crowdin/az.yml
  27. 4
      config/locales/crowdin/be.yml
  28. 4
      config/locales/crowdin/bg.yml
  29. 64
      config/locales/crowdin/ca.yml
  30. 4
      config/locales/crowdin/ckb-IR.yml
  31. 4
      config/locales/crowdin/cs.yml
  32. 4
      config/locales/crowdin/da.yml
  33. 4
      config/locales/crowdin/de.yml
  34. 4
      config/locales/crowdin/el.yml
  35. 4
      config/locales/crowdin/eo.yml
  36. 40
      config/locales/crowdin/es.yml
  37. 4
      config/locales/crowdin/et.yml
  38. 4
      config/locales/crowdin/eu.yml
  39. 4
      config/locales/crowdin/fa.yml
  40. 4
      config/locales/crowdin/fi.yml
  41. 4
      config/locales/crowdin/fil.yml
  42. 72
      config/locales/crowdin/fr.yml
  43. 4
      config/locales/crowdin/he.yml
  44. 4
      config/locales/crowdin/hi.yml
  45. 4
      config/locales/crowdin/hr.yml
  46. 4
      config/locales/crowdin/hu.yml
  47. 4
      config/locales/crowdin/id.yml
  48. 4
      config/locales/crowdin/it.yml
  49. 4
      config/locales/crowdin/ja.yml
  50. 1
      config/locales/crowdin/js-af.yml
  51. 1
      config/locales/crowdin/js-ar.yml
  52. 1
      config/locales/crowdin/js-az.yml
  53. 1
      config/locales/crowdin/js-be.yml
  54. 1
      config/locales/crowdin/js-bg.yml
  55. 39
      config/locales/crowdin/js-ca.yml
  56. 1
      config/locales/crowdin/js-ckb-IR.yml
  57. 1
      config/locales/crowdin/js-cs.yml
  58. 1
      config/locales/crowdin/js-da.yml
  59. 1
      config/locales/crowdin/js-de.yml
  60. 1
      config/locales/crowdin/js-el.yml
  61. 1
      config/locales/crowdin/js-eo.yml
  62. 23
      config/locales/crowdin/js-es.yml
  63. 1
      config/locales/crowdin/js-et.yml
  64. 1
      config/locales/crowdin/js-eu.yml
  65. 1
      config/locales/crowdin/js-fa.yml
  66. 1
      config/locales/crowdin/js-fi.yml
  67. 1
      config/locales/crowdin/js-fil.yml
  68. 41
      config/locales/crowdin/js-fr.yml
  69. 1
      config/locales/crowdin/js-he.yml
  70. 1
      config/locales/crowdin/js-hi.yml
  71. 1
      config/locales/crowdin/js-hr.yml
  72. 1
      config/locales/crowdin/js-hu.yml
  73. 1
      config/locales/crowdin/js-id.yml
  74. 1
      config/locales/crowdin/js-it.yml
  75. 1
      config/locales/crowdin/js-ja.yml
  76. 1
      config/locales/crowdin/js-ko.yml
  77. 1
      config/locales/crowdin/js-lol.yml
  78. 1
      config/locales/crowdin/js-lt.yml
  79. 1
      config/locales/crowdin/js-lv.yml
  80. 1
      config/locales/crowdin/js-ne.yml
  81. 1
      config/locales/crowdin/js-nl.yml
  82. 1
      config/locales/crowdin/js-no.yml
  83. 1
      config/locales/crowdin/js-pl.yml
  84. 1
      config/locales/crowdin/js-pt.yml
  85. 1
      config/locales/crowdin/js-ro.yml
  86. 7
      config/locales/crowdin/js-ru.yml
  87. 1
      config/locales/crowdin/js-rw.yml
  88. 1
      config/locales/crowdin/js-si.yml
  89. 1
      config/locales/crowdin/js-sk.yml
  90. 1
      config/locales/crowdin/js-sl.yml
  91. 1
      config/locales/crowdin/js-sv.yml
  92. 1
      config/locales/crowdin/js-th.yml
  93. 97
      config/locales/crowdin/js-tr.yml
  94. 1
      config/locales/crowdin/js-uk.yml
  95. 1
      config/locales/crowdin/js-vi.yml
  96. 1
      config/locales/crowdin/js-zh-TW.yml
  97. 4
      config/locales/crowdin/ko.yml
  98. 4
      config/locales/crowdin/lol.yml
  99. 4
      config/locales/crowdin/lt.yml
  100. 4
      config/locales/crowdin/lv.yml
  101. Some files were not shown because too many files have changed in this diff Show More

@ -10,7 +10,7 @@ inherit_mode:
- Exclude
AllCops:
TargetRubyVersion: 3.2
TargetRubyVersion: 3.1
# Enable any new cops in new versions by default
NewCops: enable
Exclude:

@ -56,7 +56,7 @@ gem 'will_paginate', '~> 3.3.0'
gem 'friendly_id', '~> 5.5.0'
gem 'acts_as_list', '~> 1.1.0'
gem 'acts_as_list', '~> 1.0.1'
gem 'acts_as_tree', '~> 2.9.0'
gem 'awesome_nested_set', '~> 3.5.0'
gem 'closure_tree', '~> 7.4.0'
@ -80,7 +80,7 @@ gem 'htmldiff'
gem 'stringex', '~> 2.8.5'
# CommonMark markdown parser with GFM extension
gem 'commonmarker', '~> 0.23.7'
gem 'commonmarker', '~> 0.23.6'
# HTML pipeline for transformations on text formatter output
# such as sanitization or additional features
@ -92,7 +92,7 @@ gem 'escape_utils', '~> 1.3'
# Syntax highlighting used in html-pipeline with rouge
gem 'rouge', '~> 4.0.0'
# HTML sanitization used for html-pipeline
gem 'sanitize', '~> 6.0.1'
gem 'sanitize', '~> 6.0.0'
# HTML autolinking for mails and urls (replaces autolink)
gem 'rinku', '~> 2.0.4'
# Version parsing with semver
@ -116,7 +116,7 @@ gem 'posix-spawn', '~> 0.3.13', require: false
gem 'bcrypt', '~> 3.1.6'
gem 'multi_json', '~> 1.15.0'
gem 'oj', '~> 3.14.0'
gem 'oj', '~> 3.13.0'
gem 'daemons'
gem 'delayed_cron_job', '~> 0.9.0'
@ -300,7 +300,7 @@ group :development, :test do
gem 'danger-brakeman'
end
gem 'bootsnap', '~> 1.16.0', require: false
gem 'bootsnap', '~> 1.15.0', require: false
# API gems
gem 'grape', '~> 1.7.0'

@ -9,8 +9,8 @@ GIT
GIT
remote: https://github.com/opf/omniauth-openid-connect.git
revision: 0d2cd719e87021a14dd2b5cf8a6bf1831d4a497e
ref: 0d2cd71
revision: 5dfc1758ab010eca4aae8d0e0287ec4d9ec7a1ce
ref: 5dfc1758ab010eca4aae8d0e0287ec4d9ec7a1ce
specs:
omniauth-openid-connect (0.4.0)
addressable (~> 2.5)
@ -48,7 +48,7 @@ PATH
remote: modules/backlogs
specs:
openproject-backlogs (1.0.0)
acts_as_list (~> 1.1.0)
acts_as_list (~> 1.0.1)
openproject-pdf_export
PATH
@ -188,34 +188,34 @@ GEM
remote: https://rubygems.org/
specs:
Ascii85 (1.1.0)
actioncable (7.0.4.2)
actionpack (= 7.0.4.2)
activesupport (= 7.0.4.2)
actioncable (7.0.4.1)
actionpack (= 7.0.4.1)
activesupport (= 7.0.4.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
actionmailbox (7.0.4.2)
actionpack (= 7.0.4.2)
activejob (= 7.0.4.2)
activerecord (= 7.0.4.2)
activestorage (= 7.0.4.2)
activesupport (= 7.0.4.2)
actionmailbox (7.0.4.1)
actionpack (= 7.0.4.1)
activejob (= 7.0.4.1)
activerecord (= 7.0.4.1)
activestorage (= 7.0.4.1)
activesupport (= 7.0.4.1)
mail (>= 2.7.1)
net-imap
net-pop
net-smtp
actionmailer (7.0.4.2)
actionpack (= 7.0.4.2)
actionview (= 7.0.4.2)
activejob (= 7.0.4.2)
activesupport (= 7.0.4.2)
actionmailer (7.0.4.1)
actionpack (= 7.0.4.1)
actionview (= 7.0.4.1)
activejob (= 7.0.4.1)
activesupport (= 7.0.4.1)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
rails-dom-testing (~> 2.0)
actionpack (7.0.4.2)
actionview (= 7.0.4.2)
activesupport (= 7.0.4.2)
actionpack (7.0.4.1)
actionview (= 7.0.4.1)
activesupport (= 7.0.4.1)
rack (~> 2.0, >= 2.2.0)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
@ -223,31 +223,31 @@ GEM
actionpack-xml_parser (2.0.1)
actionpack (>= 5.0)
railties (>= 5.0)
actiontext (7.0.4.2)
actionpack (= 7.0.4.2)
activerecord (= 7.0.4.2)
activestorage (= 7.0.4.2)
activesupport (= 7.0.4.2)
actiontext (7.0.4.1)
actionpack (= 7.0.4.1)
activerecord (= 7.0.4.1)
activestorage (= 7.0.4.1)
activesupport (= 7.0.4.1)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.0.4.2)
activesupport (= 7.0.4.2)
actionview (7.0.4.1)
activesupport (= 7.0.4.1)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
activejob (7.0.4.2)
activesupport (= 7.0.4.2)
activejob (7.0.4.1)
activesupport (= 7.0.4.1)
globalid (>= 0.3.6)
activemodel (7.0.4.2)
activesupport (= 7.0.4.2)
activemodel (7.0.4.1)
activesupport (= 7.0.4.1)
activemodel-serializers-xml (1.0.2)
activemodel (> 5.x)
activesupport (> 5.x)
builder (~> 3.1)
activerecord (7.0.4.2)
activemodel (= 7.0.4.2)
activesupport (= 7.0.4.2)
activerecord (7.0.4.1)
activemodel (= 7.0.4.1)
activesupport (= 7.0.4.1)
activerecord-import (1.4.1)
activerecord (>= 4.2)
activerecord-nulldb-adapter (0.8.0)
@ -258,19 +258,19 @@ GEM
multi_json (~> 1.11, >= 1.11.2)
rack (>= 2.0.8, < 3)
railties (>= 5.2.4.1)
activestorage (7.0.4.2)
actionpack (= 7.0.4.2)
activejob (= 7.0.4.2)
activerecord (= 7.0.4.2)
activesupport (= 7.0.4.2)
activestorage (7.0.4.1)
actionpack (= 7.0.4.1)
activejob (= 7.0.4.1)
activerecord (= 7.0.4.1)
activesupport (= 7.0.4.1)
marcel (~> 1.0)
mini_mime (>= 1.1.0)
activesupport (7.0.4.2)
activesupport (7.0.4.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
acts_as_list (1.1.0)
acts_as_list (1.0.4)
activerecord (>= 4.2)
acts_as_tree (2.9.1)
activerecord (>= 3.0.0)
@ -282,7 +282,7 @@ GEM
airbrake-ruby (~> 6.0)
airbrake-ruby (6.2.0)
rbtree3 (~> 0.5)
appsignal (3.3.3)
appsignal (3.3.2)
rack
ast (2.4.2)
attr_required (1.0.1)
@ -291,8 +291,8 @@ GEM
awesome_nested_set (3.5.0)
activerecord (>= 4.0.0, < 7.1)
aws-eventstream (1.2.0)
aws-partitions (1.702.0)
aws-sdk-core (3.170.0)
aws-partitions (1.697.0)
aws-sdk-core (3.169.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
@ -300,7 +300,7 @@ GEM
aws-sdk-kms (1.62.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.119.0)
aws-sdk-s3 (1.118.0)
aws-sdk-core (~> 3, >= 3.165.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
@ -311,7 +311,7 @@ GEM
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.18)
bindata (2.4.14)
bootsnap (1.16.0)
bootsnap (1.15.0)
msgpack (~> 1.2)
brakeman (5.4.0)
browser (5.3.1)
@ -358,10 +358,10 @@ GEM
with_advisory_lock (>= 4.0.0)
coderay (1.1.3)
colored2 (3.1.2)
commonmarker (0.23.8)
commonmarker (0.23.6)
compare-xml (0.66)
nokogiri (~> 1.8)
concurrent-ruby (1.2.0)
concurrent-ruby (1.1.10)
cookiejar (0.3.3)
cork (0.3.0)
colored2 (~> 3.1)
@ -370,12 +370,12 @@ GEM
crass (1.0.6)
daemons (1.4.1)
dalli (3.2.3)
danger (9.2.0)
danger (9.1.0)
claide (~> 1.0)
claide-plugins (>= 0.9.2)
colored2 (~> 3.1)
cork (~> 0.1)
faraday (>= 0.9.0, < 3.0)
faraday (>= 0.9.0, < 2.0)
faraday-http-cache (~> 2.0)
git (~> 1.7)
kramdown (~> 2.3)
@ -458,24 +458,43 @@ GEM
tzinfo
eventmachine (1.2.7)
eventmachine_httpserver (0.2.1)
excon (0.98.0)
excon (0.97.2)
factory_bot (6.2.1)
activesupport (>= 5.0.0)
factory_bot_rails (6.2.0)
factory_bot (~> 6.2.0)
railties (>= 5.0.0)
faraday (2.7.4)
faraday-net_http (>= 2.0, < 3.1)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0)
faraday-multipart (~> 1.0)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.0)
faraday-patron (~> 1.0)
faraday-rack (~> 1.0)
faraday-retry (~> 1.0)
ruby2_keywords (>= 0.0.4)
faraday-follow_redirects (0.3.0)
faraday (>= 1, < 3)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0)
faraday-http-cache (2.4.1)
faraday (>= 0.8)
faraday-net_http (3.0.2)
faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.2.6)
ffi (1.15.5)
flamegraph (0.9.5)
fog-aws (3.16.0)
fog-aws (3.15.0)
fog-core (~> 2.1)
fog-json (~> 1.1)
fog-xml (~> 0.1)
@ -502,7 +521,7 @@ GEM
git (1.13.1)
addressable (~> 2.8)
rchardet (~> 1.8)
globalid (1.1.0)
globalid (1.0.1)
activesupport (>= 5.0)
gon (6.4.0)
actionpack (>= 3.0.20)
@ -547,12 +566,11 @@ GEM
iso8601 (0.13.0)
jmespath (1.6.2)
json (2.6.3)
json-jwt (1.16.3)
json-jwt (1.15.3)
activesupport (>= 4.2)
aes_key_wrap
bindata
faraday (~> 2.0)
faraday-follow_redirects
httpclient
json_schemer (0.2.24)
ecma-re-validator (~> 0.3)
hana (~> 1.3)
@ -614,6 +632,7 @@ GEM
minitest (5.17.0)
msgpack (1.6.0)
multi_json (1.15.0)
multipart-post (2.2.3)
mustermann (3.0.0)
ruby2_keywords (~> 0.0.1)
mustermann-grape (1.0.2)
@ -632,13 +651,13 @@ GEM
netrc (0.11.0)
nio4r (2.5.8)
no_proxy_fix (0.1.2)
nokogiri (1.14.1)
nokogiri (1.14.0)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
octokit (5.6.1)
faraday (>= 1, < 3)
sawyer (~> 0.9)
oj (3.14.0)
oj (3.13.23)
okcomputer (1.18.4)
omniauth-saml (1.10.3)
omniauth (~> 1.3, >= 1.3.2)
@ -739,20 +758,20 @@ GEM
rack_session_access (0.2.0)
builder (>= 2.0.0)
rack (>= 1.0.0)
rails (7.0.4.2)
actioncable (= 7.0.4.2)
actionmailbox (= 7.0.4.2)
actionmailer (= 7.0.4.2)
actionpack (= 7.0.4.2)
actiontext (= 7.0.4.2)
actionview (= 7.0.4.2)
activejob (= 7.0.4.2)
activemodel (= 7.0.4.2)
activerecord (= 7.0.4.2)
activestorage (= 7.0.4.2)
activesupport (= 7.0.4.2)
rails (7.0.4.1)
actioncable (= 7.0.4.1)
actionmailbox (= 7.0.4.1)
actionmailer (= 7.0.4.1)
actionpack (= 7.0.4.1)
actiontext (= 7.0.4.1)
actionview (= 7.0.4.1)
activejob (= 7.0.4.1)
activemodel (= 7.0.4.1)
activerecord (= 7.0.4.1)
activestorage (= 7.0.4.1)
activesupport (= 7.0.4.1)
bundler (>= 1.15.0)
railties (= 7.0.4.2)
railties (= 7.0.4.1)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
@ -765,9 +784,9 @@ GEM
rails-i18n (7.0.6)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
railties (7.0.4.2)
actionpack (= 7.0.4.2)
activesupport (= 7.0.4.2)
railties (7.0.4.1)
actionpack (= 7.0.4.1)
activesupport (= 7.0.4.1)
method_source
rake (>= 12.2)
thor (~> 1.0)
@ -783,7 +802,7 @@ GEM
psych (>= 4.0.0)
recaptcha (5.12.3)
json
redcarpet (3.6.0)
redcarpet (3.5.1)
regexp_parser (2.6.2)
reline (0.3.2)
io-console (~> 0.5)
@ -831,7 +850,7 @@ GEM
rspec-retry (0.6.2)
rspec-core (> 3.3)
rspec-support (3.12.0)
rubocop (1.44.1)
rubocop (1.43.0)
json (~> 2.3)
parallel (~> 1.10)
parser (>= 3.2.0.0)
@ -867,7 +886,7 @@ GEM
rubytree (2.0.0)
json (~> 2.0, > 2.3.1)
rubyzip (2.3.2)
sanitize (6.0.1)
sanitize (6.0.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
sassc (2.4.0)
@ -882,7 +901,7 @@ GEM
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
secure_headers (6.5.0)
selenium-webdriver (4.8.0)
selenium-webdriver (4.7.1)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
@ -908,15 +927,14 @@ GEM
stringio (3.0.4)
structured_warnings (0.4.0)
svg-graph (2.2.1)
swd (2.0.2)
swd (1.3.0)
activesupport (>= 3)
attr_required (>= 0.0.5)
faraday (~> 2.0)
faraday-follow_redirects
httpclient (>= 2.4)
sys-filesystem (1.4.3)
ffi (~> 1.1)
table_print (1.5.7)
temple (0.10.0)
temple (0.9.1)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
test-prof (1.1.0)
@ -928,7 +946,7 @@ GEM
ttfunk (1.7.0)
typed_dag (2.0.2)
rails (>= 5.0.4)
tzinfo (2.0.6)
tzinfo (2.0.5)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2022.7)
tzinfo (>= 1.0.0)
@ -952,10 +970,10 @@ GEM
nokogiri (~> 1.6)
rubyzip (>= 1.3.0)
selenium-webdriver (~> 4.0)
webfinger (2.1.2)
webfinger (2.0.0)
activesupport
faraday (~> 2.0)
faraday-follow_redirects
faraday (~> 1.7)
faraday_middleware (~> 1.1)
webmock (3.18.1)
addressable (>= 2.8.0)
crack (>= 0.3.2)
@ -980,7 +998,7 @@ DEPENDENCIES
activerecord-import (~> 1.4.0)
activerecord-nulldb-adapter (~> 0.8.0)
activerecord-session_store (~> 2.0.0)
acts_as_list (~> 1.1.0)
acts_as_list (~> 1.0.1)
acts_as_tree (~> 2.9.0)
addressable (~> 2.8.0)
airbrake (~> 13.0.0)
@ -990,7 +1008,7 @@ DEPENDENCIES
aws-sdk-core (~> 3.107)
aws-sdk-s3 (~> 1.91)
bcrypt (~> 3.1.6)
bootsnap (~> 1.16.0)
bootsnap (~> 1.15.0)
brakeman (~> 5.4.0)
browser (~> 5.3.0)
budgets!
@ -1001,7 +1019,7 @@ DEPENDENCIES
cells-erb (~> 0.1.0)
cells-rails (~> 0.1.4)
closure_tree (~> 7.4.0)
commonmarker (~> 0.23.7)
commonmarker (~> 0.23.6)
compare-xml (~> 0.66)
costs!
daemons
@ -1050,7 +1068,7 @@ DEPENDENCIES
my_page!
net-ldap (~> 0.17.0)
nokogiri (~> 1.14.0)
oj (~> 3.14.0)
oj (~> 3.13.0)
okcomputer (~> 1.18.1)
omniauth!
omniauth-openid-connect!
@ -1120,7 +1138,7 @@ DEPENDENCIES
ruby-prof
ruby-progressbar (~> 1.11.0)
rubytree (~> 2.0.0)
sanitize (~> 6.0.1)
sanitize (~> 6.0.0)
sassc-rails
secure_headers (~> 6.5.0)
selenium-webdriver (~> 4.0)

@ -14,7 +14,7 @@ gem 'omniauth-openid_connect-providers',
gem 'omniauth-openid-connect',
git: 'https://github.com/opf/omniauth-openid-connect.git',
ref: '0d2cd71'
ref: '5dfc1758ab010eca4aae8d0e0287ec4d9ec7a1ce'
group :opf_plugins do
# included so that engines can reference OpenProject::Version

@ -38,20 +38,14 @@ module WorkPackages
default_attribute_permission :add_work_packages
validate :user_allowed_to_add
validate :user_allowed_to_manage_file_links
private
def user_allowed_to_add
if (model.project && !@user.allowed_to?(:add_work_packages, model.project)) ||
!@user.allowed_to_globally?(:add_work_packages)
errors.add(:base, :error_unauthorized)
end
end
def user_allowed_to_manage_file_links
if model.file_links.present? && model.project.present? && !user.allowed_to?(:manage_file_links, model.project)
errors.add(:base, :error_unauthorized)
errors.add :base, :error_unauthorized
end
end

@ -232,9 +232,7 @@ class CustomField < ApplicationRecord
where(is_filter: true)
end
def attribute_name(format = nil)
return "customField#{id}" if format == :camel_case
def attribute_name
"custom_field_#{id}"
end

@ -26,7 +26,7 @@
# See COPYRIGHT and LICENSE files for more details.
#++
class Projects::Status < ActiveRecord::Base
class Projects::Status < ApplicationRecord
belongs_to :project
self.table_name = 'project_statuses'

@ -27,6 +27,7 @@
#++
class Setting < ApplicationRecord
extend CallbacksHelper
extend Aliases
extend MailSettings
@ -212,6 +213,9 @@ class Setting < ApplicationRecord
# Delete the cache
clear_cache(old_cache_key)
# fire callbacks for name and pass as much information as possible
fire_callbacks(name, new_value, old_value)
new_value
else
old_value

@ -26,24 +26,34 @@
# See COPYRIGHT and LICENSE files for more details.
#++
module API::V3::StorageFiles
class StorageFilesRepresenter < ::API::Decorators::Single
link :self do
{ href: "#{::API::V3::URN_PREFIX}storages:storage_files:no_link_provided" }
class Setting
module CallbacksHelper
# register a callback for a setting named #name
def register_callback(name, &)
# register the block with the underlying notifications system
notifier.subscribe(notification_event_for(name), &)
end
# register_callback is not used anymore in our code
# it can be removed along with fire_callbacks in next major version
OpenProject::Deprecation.deprecate_method(self, :register_callback)
collection :files,
getter: ->(*) do
represented.files.map { |file| API::V3::StorageFiles::StorageFileRepresenter.new(file, current_user:) }
end,
exec_context: :decorator
# instructs the underlying notifications system to publish all setting events for setting #name
# based on the new and old setting objects different events can be triggered
# currently, that's whenever a setting is set regardless whether the value changed
def fire_callbacks(name, new_value, old_value)
notifier.send(notification_event_for(name), value: new_value, old_value:)
end
private
property :parent,
getter: ->(*) { API::V3::StorageFiles::StorageFileRepresenter.new(represented.parent, current_user:) },
exec_context: :decorator
# encapsulates the event name broadcast to all subscribers
def notification_event_for(name)
"setting.#{name}.changed"
end
def _type
'StorageFiles'
# the notifier to delegate to
def notifier
OpenProject::Notifications
end
end
end

@ -132,7 +132,7 @@ class UserPreference < ApplicationRecord
end
def immediate_reminders
super.presence || { mentioned: true }.with_indifferent_access
super.presence || { mentioned: false }.with_indifferent_access
end
def pause_reminders

@ -57,8 +57,8 @@ class WorkPackage < ApplicationRecord
has_many :time_entries, dependent: :delete_all
has_many :file_links, dependent: :delete_all, class_name: 'Storages::FileLink', as: :container
has_many :file_links,
dependent: :delete_all, class_name: 'Storages::FileLink', foreign_key: 'container_id', inverse_of: :container
has_many :storages, through: :project
has_and_belongs_to_many :changesets, -> { # rubocop:disable Rails/HasAndBelongsToMany
@ -120,7 +120,7 @@ class WorkPackage < ApplicationRecord
where(author_id: author.id)
}
scopes :covering_dates_and_days_of_week,
scopes :covering_days_of_week,
:for_scheduling,
:include_derived_dates,
:include_spent_time,
@ -310,7 +310,8 @@ class WorkPackage < ApplicationRecord
def type_id=(tid)
self.type = nil
write_attribute(:type_id, tid)
result = write_attribute(:type_id, tid)
result
end
# Overrides attributes= so that type_id gets assigned first
@ -477,7 +478,7 @@ class WorkPackage < ApplicationRecord
key = 'activity_id'
id = attributes[key]
default_id = if id&.present?
Enumeration.exists? id:, is_default: true, type: 'TimeEntryActivity'
Enumeration.exists? id: id, is_default: true, type: 'TimeEntryActivity'
else
true
end

@ -26,29 +26,27 @@
# See COPYRIGHT and LICENSE files for more details.
#++
module WorkPackages::Scopes::CoveringDatesAndDaysOfWeek
module WorkPackages::Scopes::CoveringDaysOfWeek
extend ActiveSupport::Concern
using CoreExtensions::SquishSql
class_methods do
# Fetches all work packages that cover specific days of the week, and/or specific dates.
# Fetches all work packages that cover specific days of the week.
#
# The period considered is from the work package start date to the due date.
#
# @param dates Date[] An array of the Date objects.
# @param days_of_week number[] An array of the ISO days of the week to
# consider. 1 is Monday, 7 is Sunday.
def covering_dates_and_days_of_week(days_of_week: [], dates: [])
def covering_days_of_week(days_of_week)
days_of_week = Array(days_of_week)
dates = Array(dates)
return none if days_of_week.empty? && dates.empty?
return none if days_of_week.empty?
where("id IN (#{query(days_of_week, dates)})")
where("id IN (#{query(days_of_week)})")
end
private
def query(days_of_week, dates)
def query(days_of_week)
sql = <<~SQL.squish
-- select work packages dates with their followers dates
WITH work_packages_with_dates AS (
@ -61,6 +59,7 @@ module WorkPackages::Scopes::CoveringDatesAndDaysOfWeek
work_packages.start_date IS NOT NULL
OR work_packages.due_date IS NOT NULL
)
ORDER BY work_packages.id
),
-- coalesce non-existing dates of work package to get period start/end
work_packages_periods AS (
@ -69,29 +68,29 @@ module WorkPackages::Scopes::CoveringDatesAndDaysOfWeek
GREATEST(work_package_start_date, work_package_due_date) AS end_date
FROM work_packages_with_dates
),
-- All days between the start date of a work package and its due date
covered_dates AS (
SELECT
id,
generate_series(work_packages_periods.start_date,
work_packages_periods.end_date,
'1 day') AS date
FROM work_packages_periods
),
-- All days between the start date of a work package and its due date including the day of the week for each date
covered_dates_and_wday AS (
SELECT
id,
date,
EXTRACT(isodow FROM date) dow
FROM covered_dates
-- expand period into days of the week. Limit to 7 days (more would be useless).
work_packages_days_of_week AS (
SELECT id,
extract(
isodow
from generate_series(
work_packages_periods.start_date,
LEAST(
work_packages_periods.start_date + 6,
work_packages_periods.end_date
),
'1 day'
)
) AS dow
FROM work_packages_periods
)
-- select id of work packages covering the given days
SELECT id FROM covered_dates_and_wday
WHERE dow IN (:days_of_week) OR date IN (:dates)
SELECT DISTINCT id
FROM work_packages_days_of_week
WHERE dow IN (:days_of_week)
SQL
sanitize_sql([sql, { days_of_week:, dates: }])
sanitize_sql([sql, { days_of_week: }])
end
end
end

@ -32,6 +32,13 @@ class Settings::UpdateService < BaseServices::BaseContracted
contract_class: Settings::UpdateContract
end
def after_validate(params, call)
params.keys.each(&method(:remember_previous_value))
call
end
# We will have a problem with error handling on the form.
# How can we still display the user changed values in case the form is not successfully saved?
def persist(call)
params.each do |name, value|
set_setting_value(name, value)
@ -39,12 +46,34 @@ class Settings::UpdateService < BaseServices::BaseContracted
call
end
def after_perform(call)
super.tap do
params.each_key do |name|
run_on_change_callback(name)
end
end
end
private
def remember_previous_value(name)
previous_values[name] = Setting[name]
end
def set_setting_value(name, value)
Setting[name] = derive_value(value)
end
def previous_values
@previous_values ||= {}
end
def run_on_change_callback(name)
if (definition = Settings::Definition[name]) && definition.on_change
definition.on_change.call(previous_values[name])
end
end
def derive_value(value)
case value
when Array, Hash

@ -30,8 +30,6 @@ class Settings::WorkingDaysUpdateService < Settings::UpdateService
def call(params)
params = params.to_h.deep_symbolize_keys
self.non_working_days_params = params.delete(:non_working_days) || []
self.previous_working_days = Setting[:working_days]
self.previous_non_working_days = NonWorkingDay.pluck(:date)
super
end
@ -56,19 +54,9 @@ class Settings::WorkingDaysUpdateService < Settings::UpdateService
results
end
def after_perform(call)
super.tap do
WorkPackages::ApplyWorkingDaysChangeJob.perform_later(
user_id: User.current.id,
previous_working_days:,
previous_non_working_days:
)
end
end
private
attr_accessor :non_working_days_params, :previous_working_days, :previous_non_working_days
attr_accessor :non_working_days_params
def persist_non_working_days
# We don't support update for now

@ -26,7 +26,7 @@
# See COPYRIGHT and LICENSE files for more details.
#++
class WorkPackages::CreateService < BaseServices::BaseCallable
class WorkPackages::CreateService < ::BaseServices::BaseCallable
include ::WorkPackages::Shared::UpdateAncestors
include ::Shared::ServiceContext
@ -51,13 +51,11 @@ class WorkPackages::CreateService < BaseServices::BaseCallable
def create(attributes, work_package)
result = set_attributes(attributes, work_package)
result.success =
if result.success
work_package.attachments = work_package.attachments_replacements if work_package.attachments_replacements
work_package.save
else
false
end
result.success = if result.success
replace_attachments(work_package)
else
false
end
if result.success?
result.merge!(reschedule_related(work_package))
@ -82,10 +80,16 @@ class WorkPackages::CreateService < BaseServices::BaseCallable
.call(attributes)
end
def replace_attachments(work_package)
work_package.attachments = work_package.attachments_replacements if work_package.attachments_replacements
work_package.save
end
def reschedule_related(work_package)
result = WorkPackages::SetScheduleService
.new(user:, work_package:)
.call
.new(user:,
work_package:)
.call
result.self_and_dependent.each do |r|
unless r.result.save

@ -26,15 +26,12 @@
# See COPYRIGHT and LICENSE files for more details.
#++
class WorkPackages::SetAttributesService < BaseServices::SetAttributes
class WorkPackages::SetAttributesService < ::BaseServices::SetAttributes
include Attachments::SetReplacements
private
def set_attributes(attributes)
file_links_ids = attributes.delete(:file_links_ids)
model.file_links = Storages::FileLink.where(id: file_links_ids) if file_links_ids
set_attachments_attributes(attributes)
set_static_attributes(attributes)
@ -385,7 +382,6 @@ class WorkPackages::SetAttributesService < BaseServices::SetAttributes
max = max_child_date
return unless max
days.duration(min_child_date, max_child_date)
end

@ -53,7 +53,7 @@ See COPYRIGHT and LICENSE files for more details.
}
if help_text
options[:help_text] = help_text.merge(attribute: custom_field.attribute_name(:camel_case))
options[:help_text] = help_text.merge(attribute: "customField#{custom_field.id}")
end
cf_form.cf_form_field(options)

@ -39,14 +39,13 @@ See COPYRIGHT and LICENSE files for more details.
<% group_permissions_by_module(@permissions).each do |mod, mod_permissions| %>
<% module_name = mod.blank? ? "form--" + I18n.t('attributes.project') : "form--" + l_or_humanize(mod, prefix: 'project_module_').gsub(' ','_') %>
<% escaped_name = module_name.parameterize %>
<fieldset class="form--fieldset -collapsible" id= "<%= escaped_name %>">
<fieldset class="form--fieldset -collapsible" id= "<%= module_name %>">
<legend class="form--fieldset-legend" >
<%= mod.blank? ? I18n.t('attributes.project') : l_or_humanize(mod, prefix: 'project_module_') %>
</legend>
<div class="form--toolbar">
<span class="form--toolbar-item">
(<%= check_all_links escaped_name %>)
(<%= check_all_links module_name %>)
</span>
</div>

@ -30,19 +30,18 @@ class WorkPackages::ApplyWorkingDaysChangeJob < ApplicationJob
queue_with_priority :above_normal
include ::ScheduledJob
def perform(user_id:, previous_working_days:, previous_non_working_days:)
def perform(user_id:, previous_working_days:)
user = User.find(user_id)
User.execute_as user do
updated_work_package_ids = collect_id_for_each(applicable_work_package(previous_working_days,
previous_non_working_days)) do |work_package|
updated_work_package_ids = collect_id_for_each(applicable_work_package(previous_working_days)) do |work_package|
apply_change_to_work_package(user, work_package)
end
updated_work_package_ids += collect_id_for_each(applicable_predecessor(updated_work_package_ids)) do |predecessor|
apply_change_to_predecessor(user, predecessor)
end
set_journal_notice(updated_work_package_ids, previous_working_days, previous_non_working_days)
set_journal_notice(updated_work_package_ids, previous_working_days)
end
end
@ -69,11 +68,11 @@ class WorkPackages::ApplyWorkingDaysChangeJob < ApplicationJob
end
end
def applicable_work_package(previous_working_days, previous_non_working_days)
days_of_week = changed_days(previous_working_days).keys
dates = changed_non_working_dates(previous_non_working_days).keys
def applicable_work_package(previous_working_days)
changed_days = changed_days(previous_working_days)
WorkPackage
.covering_dates_and_days_of_week(days_of_week:, dates:)
.covering_days_of_week(changed_days)
.order(WorkPackage.arel_table[:start_date].asc.nulls_first,
WorkPackage.arel_table[:due_date].asc)
end
@ -84,16 +83,7 @@ class WorkPackages::ApplyWorkingDaysChangeJob < ApplicationJob
# `^` is a Set method returning a new set containing elements exclusive to
# each other
(previous ^ current).index_with { |day| current.include?(day) }
end
def changed_non_working_dates(previous_non_working_days)
previous = Set.new(previous_non_working_days)
current = Set.new(NonWorkingDay.pluck(:date))
# `^` is a Set method returning a new set containing elements exclusive to
# each other
(previous ^ current).index_with { |day| current.exclude?(day) }
(previous ^ current).to_a
end
def applicable_predecessor(excluded)
@ -102,10 +92,9 @@ class WorkPackages::ApplyWorkingDaysChangeJob < ApplicationJob
.where.not(id: excluded)
end
def set_journal_notice(updated_work_package_ids, previous_working_days, previous_non_working_days)
day_changes = changed_days(previous_working_days)
date_changes = changed_non_working_dates(previous_non_working_days)
journal_note = journal_notice_text(day_changes, date_changes)
def set_journal_notice(updated_work_package_ids, previous_working_days)
day_changes = changed_days(previous_working_days).index_with { |day| Setting.working_days.include?(day) }
journal_note = journal_notice_text(day_changes)
WorkPackage
.where(id: updated_work_package_ids.uniq)
@ -116,12 +105,10 @@ class WorkPackages::ApplyWorkingDaysChangeJob < ApplicationJob
end
end
def journal_notice_text(day_changes, date_changes)
def journal_notice_text(day_changes)
I18n.with_locale(Setting.default_language) do
day_changes_messages = day_changes.collect { |day, working| working_day_change_message(day, working) }
date_changes_messages = date_changes.collect { |date, working| working_date_change_message(date, working) }
I18n.t(:'working_days.journal_note.changed',
changes: (day_changes_messages + date_changes_messages).join(', '))
changes: day_changes.collect { |day, working| working_day_change_message(day, working) }.join(', '))
end
end
@ -130,10 +117,6 @@ class WorkPackages::ApplyWorkingDaysChangeJob < ApplicationJob
day: WeekDay.find_by!(day:).name)
end
def working_date_change_message(date, working)
I18n.t(:"working_days.journal_note.dates.#{working ? :working : :non_working}", date:)
end
def collect_id_for_each(scope)
scope.pluck(:id).map do |id|
yield(WorkPackage.find(id)).pluck(:id)

@ -33,19 +33,19 @@ module Settings
attr_accessor :name,
:format,
:env_alias
:env_alias,
:on_change
attr_writer :value,
:description,
:allowed
def initialize(name,
default:,
description: nil,
format: nil,
writable: true,
allowed: nil,
env_alias: nil)
env_alias: nil,
on_change: nil)
self.name = name.to_s
@default = default.is_a?(Hash) ? default.deep_stringify_keys : default
@default.freeze
@ -54,7 +54,7 @@ module Settings
self.writable = writable
self.allowed = allowed
self.env_alias = env_alias
self.description = description.presence || :"setting_#{name}"
self.on_change = on_change
end
def default
@ -65,14 +65,6 @@ module Settings
cast(@value)
end
def description
if @description.is_a?(Symbol)
I18n.t(@description, default: nil)
else
@description
end
end
def serialized?
%i[array hash].include?(format)
end
@ -135,7 +127,6 @@ module Settings
# @param [Object] default The default value the setting has if not overridden.
# @param [nil] format The format the value is in e.g. symbol, array, hash, string. If a value is present,
# the format is deferred.
# @param [nil] description A human-readable description of this setting.
# @param [TrueClass] writable Whether the value can be set in the UI. In case the value is set via file or ENV var,
# this will be set to false later on and UI elements that refer to the definition will be disabled.
# @param [nil] allowed The array of allowed values that can be assigned to the definition.
@ -145,24 +136,25 @@ module Settings
# @param [nil] env_alias Alternative for the default env name to also look up. E.g. with the alias set to
# `OPENPROJECT_2FA` for a definition with the name `two_factor_authentication`, the value is fetched
# from the ENV OPENPROJECT_2FA as well.
# @param [nil] on_change A callback lambda to be triggered whenever the setting is stored to the database.
def add(name,
default:,
format: nil,
description: nil,
writable: true,
allowed: nil,
env_alias: nil)
env_alias: nil,
on_change: nil)
return if @by_name.present? && @by_name[name.to_s].present?
@by_name = nil
definition = new(name,
format:,
description:,
default:,
writable:,
allowed:,
env_alias:)
env_alias:,
on_change:)
override_value(definition)
@ -288,8 +280,8 @@ module Settings
env_var_hash_part
.scan(/(?:[a-zA-Z0-9]|__)+/)
.map do |seg|
unescape_underscores(seg.downcase)
end
unescape_underscores(seg.downcase)
end
end
# takes the path provided and transforms it into a deeply nested hash
@ -343,7 +335,6 @@ module Settings
env_name_alias(definition)
].compact
end
public :possible_env_names
def env_name_nested(definition)

@ -39,29 +39,24 @@ Settings::Definition.define do
add :after_first_login_redirect_url,
format: :string,
description: 'URL users logging in for the first time will be redirected to (e.g., a help screen)',
default: nil,
writable: false
add :after_login_default_redirect_url,
description: 'Override URL to which logged in users are redirected instead of the My page',
format: :string,
default: nil,
writable: false
add :apiv3_cors_enabled,
description: 'Enable CORS headers for APIv3 server responses',
default: false
add :apiv3_cors_origins,
default: []
add :apiv3_docs_enabled,
description: 'Enable interactive APIv3 documentation as part of the application',
default: true
add :apiv3_enable_basic_auth,
description: 'Enable API token or global basic authentication for APIv3 requests',
default: true,
writable: false
@ -82,25 +77,21 @@ Settings::Definition.define do
# Carrierwave storage type. Possible values are, among others, :file and :fog.
# The latter requires further configuration.
add :attachments_storage,
description: 'File storage configuration',
default: :file,
format: :symbol,
allowed: %i[file fog],
writable: false
add :attachments_storage_path,
description: 'File storage disk location (only applicable for local file storage)',
format: :string,
default: nil,
writable: false
add :attachments_grace_period,
description: 'Time to wait before uploaded files not attached to any container are removed',
default: 180,
writable: false
add :auth_source_sso,
description: 'Configuration for Header-based Single Sign-On',
format: :hash,
default: nil,
writable: false
@ -113,7 +104,6 @@ Settings::Definition.define do
# user: admin
# password: 123456
add :authentication,
description: 'Configuration options for global basic auth',
format: :hash,
default: nil,
writable: false
@ -127,17 +117,14 @@ Settings::Definition.define do
default: 0
add :autologin_cookie_name,
description: 'Cookie name for autologin cookie',
default: 'autologin',
writable: false
add :autologin_cookie_path,
description: 'Cookie path for autologin cookie',
default: '/',
writable: false
add :autologin_cookie_secure,
description: 'Cookie secure mode for autologin cookie',
default: false,
writable: false
@ -147,39 +134,32 @@ Settings::Definition.define do
allowed: -> { Redmine::I18n.all_languages }
add :avatar_link_expiry_seconds,
description: 'Cache duration for avatar image API responses',
default: 24.hours.to_i,
writable: false
# Allow users with the required permissions to create backups via the web interface or API.
add :backup_enabled,
description: 'Enable application backups through the UI',
default: true,
writable: false
add :backup_daily_limit,
description: 'Maximum number of application backups allowed per day',
default: 3,
writable: false
add :backup_initial_waiting_period,
description: 'Wait time before newly created backup tokens are usable',
default: 24.hours,
format: :integer,
writable: false
add :backup_include_attachments,
description: 'Allow inclusion of attachments in application backups',
default: true,
writable: false
add :backup_attachment_size_max_sum_mb,
description: 'Maximum limit of attachment size to include into application backups',
default: 1024,
writable: false
add :blacklisted_routes,
description: 'Blocked routes to prevent access to certain modules or pages',
default: [],
writable: false
@ -187,19 +167,15 @@ Settings::Definition.define do
default: true
add :boards_demo_data_available,
description: 'Internal setting determining availability of demo seed data',
default: false
add :brute_force_block_minutes,
description: 'Number of minutes to block users after presumed brute force attack',
default: 30
add :brute_force_block_after_failed_logins,
description: 'Number of login attempts per user before assuming brute force attack',
default: 20
add :cache_expires_in_seconds,
description: 'Expiration time for memcache entries, empty for no expiry be default',
format: :integer,
default: nil,
writable: false
@ -209,47 +185,39 @@ Settings::Definition.define do
# use dalli defaults for memcache
add :cache_memcache_server,
description: 'The memcache server host and IP',
format: :string,
default: nil,
writable: false
add :cache_namespace,
format: :string,
description: 'Namespace for cache keys, useful when multiple applications use a single memcache server',
default: nil,
writable: false
add :commit_fix_done_ratio,
description: 'Progress to apply when commit fixes work package',
default: 100
add :commit_fix_keywords,
description: 'Keywords to look for in commit for fixing work packages',
default: 'fixes,closes'
add :commit_fix_status_id,
description: 'Assigned status when fixing keyword is found',
format: :integer,
default: nil,
allowed: -> { Status.pluck(:id) + [nil] }
# encoding used to convert commit logs to UTF-8
add :commit_logs_encoding,
description: "Encoding used to convert commit logs to UTF-8",
default: 'UTF-8'
add :commit_logtime_activity_id,
description: :setting_commit_logtime_activity_id,
format: :integer,
default: nil,
allowed: -> { TimeEntryActivity.pluck(:id) + [nil] }
add :commit_logtime_enabled,
description: "Allow logging time through commit message",
default: false
add :commit_ref_keywords,
description: "Keywords used in commits for referencing work packages",
default: 'refs,references,IssueID'
add :consent_decline_mail,
@ -266,7 +234,7 @@ Settings::Definition.define do
add :consent_info,
default: {
en: "## Consent\n\nYou need to agree to the [privacy and security policy]" +
"(https://www.openproject.org/data-privacy-and-security/) of this OpenProject instance."
"(https://www.openproject.org/data-privacy-and-security/) of this OpenProject instance."
}
# Indicates whether or not users need to consent to something such as privacy policy.
@ -278,12 +246,10 @@ Settings::Definition.define do
# Allow in-context translations to be loaded with CSP
add :crowdin_in_context_translations,
description: 'Add crowdin in-context translations helper',
default: true,
writable: false
add :database_cipher_key,
description: 'Encryption key for repository credentials',
format: :string,
default: nil,
writable: false
@ -304,12 +270,10 @@ Settings::Definition.define do
].freeze
add :default_auto_hide_popups,
description: 'Whether to automatically hide success notifications by default',
default: true
# user configuration
add :default_comment_sort_order,
description: 'Default sort order for activities',
default: 'asc',
writable: false
@ -335,59 +299,55 @@ Settings::Definition.define do
add :diff_max_lines_displayed,
default: 1500
# only applicable in conjunction with fog (effectively S3) attachments
# which will be uploaded directly to the cloud storage rather than via OpenProject's
# server process.
add :direct_uploads,
description: 'Enable direct uploads to AWS S3. Only applicable with enabled Fog / AWS S3 configuration',
default: true,
writable: false
add :disable_browser_cache,
description: 'Prevent browser from caching any logged-in responses for security reasons',
default: true,
writable: false
# allow to disable default modules
add :disabled_modules,
description: 'A list of module names to prevent access to in the application',
default: [],
writable: false
add :disable_password_choice,
description: "If enabled a user's password cannot be set to an arbitrary value, but can only be randomized.",
default: false,
writable: false
add :disable_password_login,
description: 'Disable internal logins and instead only allow SSO through OmniAuth.',
default: false,
writable: false
add :display_subprojects_work_packages,
default: true
# Destroy all sessions for current_user on logout
add :drop_old_sessions_on_logout,
description: 'Destroy all sessions for current_user on logout',
default: true,
writable: false
# Destroy all sessions for current_user on login
add :drop_old_sessions_on_login,
description: 'Destroy all sessions for current_user on login',
default: false,
writable: false
add :edition,
format: :string,
default: 'standard',
description: 'OpenProject edition mode',
writable: false,
allowed: %w[standard bim]
add :ee_manager_visible,
description: 'Show or hide the Enterprise configuration page and enterprise banners',
default: true,
writable: false
# Enable internal asset server
add :enable_internal_assets_server,
description: 'Serve assets through the Rails internal asset server',
default: false,
writable: false
@ -426,17 +386,14 @@ Settings::Definition.define do
# Allow connections for trial creation and booking
add :enterprise_trial_creation_host,
description: 'Host for EE trial service',
default: 'https://augur.openproject.com',
writable: false
add :enterprise_chargebee_site,
description: 'Site name for EE trial service',
default: 'openproject-enterprise',
writable: false
add :enterprise_plan,
description: 'Default EE selected plan',
default: 'enterprise-on-premises---euro---1-year',
writable: false
@ -456,30 +413,26 @@ Settings::Definition.define do
format: :integer,
allowed: [1, 4]
# Configure fog, e.g. when using an S3 uploader
add :fog,
description: 'Configure fog, e.g. when using an S3 uploader',
default: {}
add :fog_download_url_expires_in,
description: 'Expiration time in seconds of created shared presigned URLs',
default: 21600, # 6h by default as 6 hours is max in S3 when using IAM roles
writable: false
# Additional / overridden help links
add :force_help_link,
description: 'You can set a custom URL for the help button in application header menu.',
format: :string,
default: nil,
writable: false
add :force_formatting_help_link,
description: 'You can set a custom URL for the help button in the WYSIWYG editor.',
format: :string,
default: nil,
writable: false
add :forced_single_page_size,
description: 'Forced page size for manually sorted work package views',
default: 250
add :host_name,
@ -487,7 +440,6 @@ Settings::Definition.define do
# Health check configuration
add :health_checks_authentication_password,
description: 'Add an authentication challenge for the /health_check endpoint',
format: :string,
default: nil,
writable: false
@ -495,21 +447,18 @@ Settings::Definition.define do
# Maximum number of backed up jobs (that are not yet executed)
# before health check fails
add :health_checks_jobs_queue_count_threshold,
description: 'Set threshold of backed up background jobs to fail health check',
format: :integer,
default: 50,
writable: false
## Maximum number of minutes that jobs have not yet run after their designated 'run_at' time
add :health_checks_jobs_never_ran_minutes_ago,
description: 'Set threshold of outstanding background jobs to fail health check',
format: :integer,
default: 5,
writable: false
## Maximum number of unprocessed requests in puma's backlog.
add :health_checks_backlog_threshold,
description: 'Set threshold of outstanding HTTP requests to fail health check',
format: :integer,
default: 20,
writable: false
@ -517,17 +466,15 @@ Settings::Definition.define do
# Default gravatar image, set to something other than 404
# to ensure a default is returned
add :gravatar_fallback_image,
description: 'Set default gravatar image fallback',
default: '404',
writable: false
add :hidden_menu_items,
description: 'Hide menu items in the menu sidebar for each main menu (such as Administration and Projects).',
default: {},
writable: false
# Impressum link to be set, nil by default (= hidden)
add :impressum_link,
description: 'Impressum link to be set, hidden by default',
format: :string,
default: nil,
writable: false
@ -541,7 +488,6 @@ Settings::Definition.define do
default: nil
add :internal_password_confirmation,
description: 'Require password confirmations for certain administrative actions',
default: true,
writable: false
@ -551,24 +497,24 @@ Settings::Definition.define do
add :journal_aggregation_time_minutes,
default: 5
# Allow override of LDAP options
add :ldap_force_no_page,
description: 'Force LDAP to respond as a single page, in case paged responses do not work with your server.',
format: :string,
default: nil,
writable: false
# Allow users to manually sync groups in a different way
# than the provided job using their own cron
add :ldap_groups_disable_sync_job,
description: 'Deactivate regular synchronization job for groups in case scheduled as a separate cronjob',
default: false,
writable: false
add :ldap_users_disable_sync_job,
description: 'Deactive user attributes synchronization from LDAP',
default: false,
writable: false
# Update users' status through the synchronization job
add :ldap_users_sync_status,
description: 'Enable user status (locked/unlocked) synchronization from LDAP',
format: :boolean,
default: false,
writable: false
@ -579,9 +525,7 @@ Settings::Definition.define do
writable: true
add :log_level,
description: 'Set the OpenProject logger level',
default: Rails.env.development? ? 'debug' : 'info',
allowed: %w[debug info warn error fatal],
default: 'info',
writable: false
add :log_requesting_user,
@ -589,7 +533,6 @@ Settings::Definition.define do
# Use lograge to format logs, off by default
add :lograge_formatter,
description: 'Use lograge formatter for outputting logs',
default: nil,
format: :string,
writable: false
@ -598,7 +541,6 @@ Settings::Definition.define do
default: false
add :lost_password,
description: 'Activate or deactivate lost password form',
default: true
add :mail_from,
@ -622,13 +564,10 @@ Settings::Definition.define do
add :main_content_language,
default: 'english',
description: 'Main content language for PostgreSQL full text features',
writable: false,
allowed: %w[danish dutch english finnish french german hungarian
italian norwegian portuguese romanian russian simple spanish swedish turkish]
writable: false
# Check for missing migrations in internal errors
add :migration_check_on_exceptions,
description: 'Check for missing migrations in internal errors',
default: true,
writable: false
@ -639,29 +578,29 @@ Settings::Definition.define do
allowed: -> { Role.pluck(:id) }
add :oauth_allow_remapping_of_existing_users,
description: 'When set to false, prevent users from other identity providers to take over accounts connected ' \
'to another identity provider.',
default: true
add :omniauth_direct_login_provider,
description: 'Clicking on login sends a login request to the specified OmniAuth provider.',
format: :string,
default: nil,
writable: false
add :override_bcrypt_cost_factor,
description: "Set a custom BCrypt cost factor for deriving a user's bcrypt hash.",
format: :string,
default: nil,
writable: false
add :notification_email_delay_minutes,
default: 15
add :notification_email_digest_time,
default: '08:00'
add :onboarding_video_url,
description: 'Onboarding guide instructional video URL',
default: 'https://player.vimeo.com/video/163426858?autoplay=1',
writable: false
add :onboarding_enabled,
description: 'Enable or disable onboarding guided tour for new users',
default: true,
writable: false
@ -695,31 +634,30 @@ Settings::Definition.define do
format: :string
add :rails_asset_host,
description: 'Custom asset hostname for serving assets (e.g., Cloudfront)',
format: :string,
default: nil,
writable: false
add :rails_cache_store,
description: 'Set cache store implemenation to use with OpenProject',
format: :symbol,
default: :file_store,
writable: false,
allowed: %i[file_store memcache]
# url-path prefix
add :rails_relative_url_root,
description: 'Set a URL prefix / base path to run OpenProject under, e.g., host.tld/openproject',
default: '',
writable: false
# Assume we're running in an TLS terminated connection.
add :https,
description: 'Set assumed connection security for the Rails processes',
format: :boolean,
default: -> { Rails.env.production? },
writable: false
# Allow disabling of HSTS headers and http -> https redirects
# for non-localhost hosts
add :hsts,
description: 'Allow disabling of HSTS headers and http -> https redirects',
format: :boolean,
default: true,
writable: false
@ -730,9 +668,7 @@ Settings::Definition.define do
},
writable: false
add :report_incoming_email_errors,
description: 'Respond to incoming mails with error details',
default: true
add :report_incoming_email_errors, default: true
add :repositories_automatic_managed_vendor,
default: nil,
@ -790,7 +726,6 @@ Settings::Definition.define do
default: true
add :security_badge_url,
description: 'URL of the update check badge',
default: "https://releases.openproject.com/v1/check.svg",
writable: false
@ -798,13 +733,11 @@ Settings::Definition.define do
default: 2
add :sendmail_arguments,
description: 'Arguments to call sendmail with in case it is configured as outgoing email setup',
format: :string,
default: "-i",
writable: false
add :sendmail_location,
description: 'Location of sendmail to call if it is configured as outgoing email setup',
format: :string,
default: "/usr/sbin/sendmail"
@ -812,16 +745,14 @@ Settings::Definition.define do
add :appsignal_frontend_key,
format: :string,
default: nil,
description: 'Appsignal API key for JavaScript error reporting',
writable: false
add :session_cookie_name,
description: 'Set session cookie name',
default: '_open_project_session',
writable: false
# where to store session data
add :session_store,
description: 'Where to store session data',
default: :active_record_store,
writable: false
@ -832,28 +763,28 @@ Settings::Definition.define do
default: 120
add :show_community_links,
description: 'Enable or disable links to OpenProject community instances',
default: true,
writable: false
# Show pending migrations as warning bar
add :show_pending_migrations_warning,
description: 'Enable or disable warning bar in case of pending migrations',
default: true,
writable: false
# Show mismatched protocol/hostname warning
# in settings where they must differ this can be disabled
add :show_setting_mismatch_warning,
description: 'Show mismatched protocol/hostname warning. In cases where they must differ this can be disabled',
default: true,
writable: false
# Render storage information
add :show_storage_information,
description: 'Show available and taken storage information under administration / info',
default: true,
writable: false
# Render warning bars (pending migrations, deprecation, unsupported browsers)
# Set to false to globally disable this for all users!
add :show_warning_bars,
description: 'Render warning bars (pending migrations, deprecation, unsupported browsers)',
default: true,
writable: false
@ -868,7 +799,6 @@ Settings::Definition.define do
env_alias: 'SMTP_ENABLE_STARTTLS_AUTO'
add :smtp_openssl_verify_mode,
description: 'Globally set verify mode for OpenSSL. Careful: Setting to none will disable any SSL verification!',
format: :string,
default: "peer",
allowed: %w[none peer client_once fail_if_no_peer_cert],
@ -905,15 +835,13 @@ Settings::Definition.define do
env_alias: 'SMTP_PASSWORD'
add :software_name,
description: 'Override software application name',
default: 'OpenProject'
add :software_url,
description: 'Override software application URL',
default: 'https://www.openproject.org/'
# Slow query logging threshold in ms
add :sql_slow_query_threshold,
description: 'Time limit in ms after which queries will be logged as slow queries',
default: 2000,
writable: false
@ -922,8 +850,8 @@ Settings::Definition.define do
format: :integer,
allowed: [1, 6, 7]
# enable statsd metrics (currently puma only) by configuring host
add :statsd,
description: 'enable statsd metrics (currently puma only) by configuring host',
default: {
'host' => nil,
'port' => 8125
@ -931,11 +859,9 @@ Settings::Definition.define do
writable: false
add :sys_api_enabled,
description: 'Enable internal system API for setting up managed repositories',
default: false
add :sys_api_key,
description: 'Internal system API key for setting up managed repositories',
default: nil,
format: :string
@ -963,7 +889,6 @@ Settings::Definition.define do
allowed: -> { User::USER_FORMATS_STRUCTURE.keys }
add :web,
description: 'Web worker count and threads configuration',
default: {
'workers' => 2,
'timeout' => 120,
@ -1011,13 +936,14 @@ Settings::Definition.define do
default: false
add :working_days,
description: 'Set working days of the week (Array of 1 to 7, where 1=Monday, 7=Sunday)',
format: :array,
allowed: Array(1..7),
default: Array(1..5) # Sat, Sun being non-working days
default: Array(1..5), # Sat, Sun being non-working days
on_change: ->(previous_working_days) do
WorkPackages::ApplyWorkingDaysChangeJob.perform_later(user_id: User.current.id, previous_working_days:)
end
add :youtube_channel,
description: 'Link to YouTube channel in help menu',
default: 'https://www.youtube.com/c/OpenProjectCommunity',
writable: false
end

@ -22,12 +22,12 @@
# https://guides.rubyonrails.org/configuring.html#activesupport-to-time-preserves-timezone
# Make Ruby 2.4 preserve the timezone of the receiver when calling `to_time`.
# Previous versions had false. Rails 5.0+ default is true.
# ActiveSupport.to_time_preserves_timezone = true
ActiveSupport.to_time_preserves_timezone = true
# https://guides.rubyonrails.org/configuring.html#config-active-record-belongs-to-required-by-default
# Require `belongs_to` associations by default. Previous versions had false.
# Rails 5.0+ default is true.
# Rails.application.config.active_record.belongs_to_required_by_default = true
Rails.application.config.active_record.belongs_to_required_by_default = true
# https://guides.rubyonrails.org/configuring.html#config-ssl-options
# Configure SSL options to enable HSTS with subdomains. Previous versions had

@ -26,8 +26,6 @@
# See COPYRIGHT and LICENSE files for more details.
#++
OmniAuth.config.logger = Rails.logger
Rails.application.config.middleware.use OmniAuth::Builder do
unless Rails.env.production?
provider :developer, fields: %i[first_name last_name email]

@ -1797,7 +1797,6 @@ af:
label_product_version: "Produk weergawe"
label_professional_support: "Professional support"
label_profile: "Profiel"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Total number of projects"
label_project_copy_notifications: "Stuur e-pos kennisgewings gedurende die projek afskrif"
@ -2966,9 +2965,6 @@ af:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Niks om te voorskou"
api_v3:
attributes:

@ -1864,7 +1864,6 @@ ar:
label_product_version: "إصدار المنتج"
label_professional_support: "الدعم الفني"
label_profile: "الصفحة الشخصية"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "العدد الإجمالي للمشاريع"
label_project_copy_notifications: "إرسال إشعارات البريد الالكتروني أثناء نسخ المشروع"
@ -3043,9 +3042,6 @@ ar:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "لا شيء للمعاينة"
api_v3:
attributes:

@ -1797,7 +1797,6 @@ az:
label_product_version: "Product version"
label_professional_support: "Professional support"
label_profile: "Profile"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Total number of projects"
label_project_copy_notifications: "Send email notifications during the project copy"
@ -2966,9 +2965,6 @@ az:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nothing to preview"
api_v3:
attributes:

@ -1831,7 +1831,6 @@ be:
label_product_version: "Product version"
label_professional_support: "Professional support"
label_profile: "Profile"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Total number of projects"
label_project_copy_notifications: "Send email notifications during the project copy"
@ -3008,9 +3007,6 @@ be:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nothing to preview"
api_v3:
attributes:

@ -1797,7 +1797,6 @@ bg:
label_product_version: "Версия на продукта"
label_professional_support: "Професионална поддръжка"
label_profile: "Профил"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Общ брой на проектите"
label_project_copy_notifications: "Изпраща имейл известия по време на копиране на проект"
@ -2966,9 +2965,6 @@ bg:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nothing to preview"
api_v3:
attributes:

@ -49,7 +49,7 @@ ca:
main-menu-border-color: "Vora del menú principal"
custom_colors: "Colors personalitzats"
customize: "Personalitza la teva instal·lació d'OpenProject amb el teu propi logotip i colors."
enterprise_notice: "Com un \"Gràcies!\" especial per la contribució financera al desenvolupament d'OpenProject, aquest petit add-on només està disponible pels subscriptors de l'edició Enterprise."
enterprise_notice: "As a special 'Thank you!' for their financial contribution to develop OpenProject, this tiny add-on is only available for Enterprise edition support subscribers."
enterprise_more_info: "Nota: el logotip utilitzat serà accessible públicament."
manage_colors: "Edita les opcions de selecció de colors"
instructions:
@ -64,15 +64,15 @@ ca:
main-menu-bg-color: "Color de fons del menú lateral de l'esquerra."
theme_warning: Canviant el tema substituiràs el teu estil personalitzat. El disseny es perdrà. Estàs segur que vols continuar?
enterprise:
upgrade_to_ee: "Actualitza a l'edició Enterprise"
add_token: "Carrega un token de suport de l'edició Enterprise"
upgrade_to_ee: "Upgrade to the Enterprise edition"
add_token: "Upload an Enterprise edition support token"
delete_token_modal:
text: "Estàs segur que vols eliminar el token de l'edició Enterprise utilitzat?"
text: "Are you sure you want to remove the current Enterprise edition token used?"
title: "Eliminar el token"
replace_token: "Substitueix el teu token de suport actual"
order: "Ordena l'edició Enterpise on-premises"
paste: "Enganxa el teu token de suport de l'edició Enterprise"
required_for_feature: "Aquest add-om només està disponible amb un token de suport de l'edició Enterprise."
order: "Order Enterprise on-premises edition"
paste: "Paste your Enterprise edition support token"
required_for_feature: "This add-on is only available with an active Enterprise edition support token."
enterprise_link: "Per a més informació, cliqueu aquí."
start_trial: 'Inicia la prova gratuïta'
book_now: 'Reserva ara'
@ -80,7 +80,7 @@ ca:
buttons:
upgrade: "Actualitza ara"
contact: "Contacta amb nosaltres per una demostració"
enterprise_info_html: "és un add-on de l'edició Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span>."
enterprise_info_html: "is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Si us plau, actualitza a una versió de pagament per tal d'activar i començar a utilitzar aquesta funcionalitat en el teu equip."
journal_aggregation:
explanation:
@ -319,7 +319,7 @@ ca:
settings: "Configuració"
form_configuration: "Configuració del formulari"
more_info_text_html: >
L'edició Enterprise et permet personalitzar la configuració de formularis amb aquests add-ons extra: <br> <ul class="%{list_styling_class}"><ul class="%{list_styling_class}"> <li><b>Afegeix nous grups d'atributs</b></li> <li><b>Canvia el nom dels grups d'atributs</b></li> <li><b>Afegeix una taula de paquets de treball relacionats</b></li> </ul>
Enterprise edition allows you to customize form configuration with these additional add-ons: <br> <ul class="%{list_styling_class}"> <li><b>Add new attribute groups</b></li> <li><b>Rename attribute groups</b></li> <li><b>Add a table of related work packages</b></li> </ul>
projects: "Projectes"
enabled_projects: "Projectes habilitats"
edit_query: "Edita la taula"
@ -333,7 +333,7 @@ ca:
wiki:
page_not_editable_index: La pàgina sol·licitada no existeix (encara). Se t'ha redirigit a la pàgina índex de totes les pàgines wiki.
no_results_title_text: Actualment no hi ha cap pàgina wiki.
print_hint: Aquesta acció imprimirà el contingut de la pàgina wiki sense cap barra de navegació.
print_hint: This will print the content of this wiki page without any navigation bars.
index:
no_results_content_text: Afegiu una nova pàgina wiki
work_flows:
@ -372,7 +372,7 @@ ca:
account:
delete: "Elimina el compte"
delete_confirmation: "Segur que vols eliminar aquest compte?"
deletion_pending: "El compte ha estat bloquejat i està programada per eliminar-se. Tingues en compte que aquesta acció es processa de fons. Pot tardar uns moments fins que l'usuari estigui eliminat completament."
deletion_pending: "Account has been locked and was scheduled for deletion. Note that this process takes place in the background. It might take a few moments until the user is fully deleted."
deletion_info:
data_consequences:
other: "De les dades de l'usuari ha creat (per exemple, correu electrònic, preferències, paquets de treball, wiki entrades) se n'esborraran tantes com sigui possible. Fixeu-vos que dades com paquets de treball i entrades de la wiki no es poden suprimir sense que obstaculitzin la feina d'altres usuaris. Aquestes dades es reassignaran a un compte genèric anomenat \"Usuari esborrat\". Com que les dades de cada usuari suprimit es reassignen sempre a aquest compte genèric no serà possible distingir les dades d'aquest usuari de les dades d'un altre usuari esborrat."
@ -584,7 +584,7 @@ ca:
confirmation: "no coincideix amb el %{attribute}."
could_not_be_copied: "%{dependency} no s'ha pogut copiar (completament)."
does_not_exist: "no existeix."
error_enterprise_only: "%{action} només està disponible en l'edició Enterprise d'OpenProject"
error_enterprise_only: "%{action} is only available in the OpenProject Enterprise edition"
error_unauthorized: "no és possible accedir."
error_readonly: "es va intentar d'escriure-hi però no és modificable."
email: "no és una adreça de correu electrònic vàlida."
@ -634,7 +634,7 @@ ca:
auth_source:
attributes:
tls_certificate_string:
invalid_certificate: "El certificat SSL proporcionat és invàlid: %{additional_message}"
invalid_certificate: "The provided SSL certificate is invalid: %{additional_message}"
format: "%{message}"
attachment:
attributes:
@ -689,7 +689,7 @@ ca:
non_working_day:
attributes:
date:
taken: "Un dia no laborable ja existeix el %{value}."
taken: "A non-working day already exists for %{value}."
format: "%{message}"
parse_schema_filter_params_service:
attributes:
@ -702,7 +702,7 @@ ca:
foreign_wps_reference_version: 'Els paquets de treball en projectes no descendents referencien versions del projecte o els seus descendents.'
attributes:
base:
archive_permission_missing_on_subprojects: "No tens els permisos requerits per arxivar tots els subprojectes. Si us plau, contacta amb un administrador."
archive_permission_missing_on_subprojects: "You do not have the permissions required to archive all sub-projects. Please contact an administrator."
types:
in_use_by_work_packages: "encara en ús pels paquets de treball: %{types}"
enabled_modules:
@ -1267,11 +1267,11 @@ ca:
ee:
upsale:
form_configuration:
description: "Personalitza la configuració del formulari amb aquests add-ons extres:"
description: "Customize the form configuration with these additional add-ons:"
add_groups: "Afegir un nou atribut de grups"
rename_groups: "Canviar de nom atribut de grups"
project_filters:
description_html: "Filtrar i ordenar camps personalitzats és un add-on de l'edició Enterprise."
description_html: "Filtering and sorting on custom fields is an Enterprise edition add-on."
enumeration_activities: "Activitats de rastrejament del temps"
enumeration_work_package_priorities: "Prioritats dels paquets de treball"
enumeration_reported_project_statuses: "Estats de projecte notificats"
@ -1293,7 +1293,7 @@ ca:
error_cookie_missing: 'La cookie d''OpenProject no s''ha trobat. Assegureu-vos que les cookies estan habilitades, ja que aquesta aplicació no pot funcionar correctament sense.'
error_custom_option_not_found: "L'opció no existeix."
error_enterprise_activation_user_limit: "El teu compte no s'ha pogut activar (límit d'usuaris assolit). Si us plau, contacte amb el teu administrador per obtenir accés."
error_enterprise_token_invalid_domain: "L'edició Enterprise no està activa. El domini del token Enterprise (%{actual}) no concorda amb el nom d'allotjament del sistema (%{expected})."
error_enterprise_token_invalid_domain: "The Enterprise edition is not active. Your Enterprise token's domain (%{actual}) does not match the system's host name (%{expected})."
error_failed_to_delete_entry: 'Error a l''eliminar aquesta entrada.'
error_in_dependent: "Error en intentar alterar objectes dependents: %{dependent_class} #%{related_id} -%{related_subject}: %{error}" #%{related_id} -%{related_subject}: %{error}"
error_in_new_dependent: "Error en intentar crear objectes dependents: %{dependent_class} #%{related_id} -%{related_subject}: %{error}" #%{related_id} -%{related_subject}: %{error}"
@ -1331,8 +1331,8 @@ ca:
changeset: 'Conjunt de canvis editat'
message: Missatge editat
news: Notícies
project_attributes: 'Atributs del projecte editats'
projects: 'Projecte editat'
project_attributes: 'Project attributes edited'
projects: 'Project edited'
reply: Respost
time_entry: 'Registre horari editat'
wiki_page: 'Pàgina wiki editada'
@ -1340,7 +1340,7 @@ ca:
work_package_edit: 'Paquet de treball editat'
work_package_note: 'Afegida nota al paquet de treball'
title:
project: "Projecte: %{name}"
project: "Project: %{name}"
export:
your_work_packages_export: "La teva exportació de paquets de treball"
succeeded: "L'exportació s'ha completat amb èxit."
@ -1384,10 +1384,10 @@ ca:
blocks:
community: "Comunitat OpenProject"
upsale:
title: "Actualitza a l'edició Enterprise"
title: "Upgrade to Enterprise edition"
more_info: "Més informació"
links:
upgrade_enterprise_edition: "Actualitza a l'edició Enterprise"
upgrade_enterprise_edition: "Upgrade to Enterprise edition"
postgres_migration: "Migrant la teva instal·lació a PostgreSQL"
user_guides: "Guies d'usuari"
faq: "Preguntes Més Freqüents"
@ -1603,7 +1603,7 @@ ca:
label_enumerations: "Enumeracions"
label_enterprise: "Enterprise"
label_enterprise_active_users: "%{current}/%{limit} usuaris actius registrats"
label_enterprise_edition: "Edició Enterprise."
label_enterprise_edition: "Enterprise edition"
label_environment: "Entorn"
label_estimates_and_time: "Estimacions i temps"
label_equals: "és"
@ -1793,8 +1793,7 @@ ca:
label_product_version: "Versió del producte"
label_professional_support: "Suport professional"
label_profile: "Perfil"
label_project_activity: "Activitat del projecte"
label_project_attribute_plural: "Atributs de projecte"
label_project_attribute_plural: "Project attributes"
label_project_count: "Nombre total de projectes"
label_project_copy_notifications: "Envia notificacions de correu electrònic durant la còpia del projecte"
label_project_latest: "Últims projectes"
@ -2212,7 +2211,7 @@ ca:
permission_add_work_packages: "Afegir paquets de treball"
permission_add_messages: "Publicar missatges"
permission_add_project: "Crear un projecte"
permission_archive_project: "Arxiva el projecte"
permission_archive_project: "Archive project"
permission_manage_user: "Crear i editar usuaris"
permission_manage_placeholder_user: "Crea, edita i elimina usuaris de marcador de posició"
permission_add_subprojects: "Crear subprojectes"
@ -2612,11 +2611,11 @@ ca:
text_custom_field_hint_activate_per_project_and_type: >
Els camps personalitzats han d'activar-se per classe de paquet de treball i per projecte.
text_wp_custom_field_html: >
L'edició Enterprise afegirà add-ons extra pels camps personalitzats de paquets de treball: <br> <ul> <li><b>Permet múltiple selecció dels camps personalitzats pels estils Llista o Usuari</b></li> </ul>
The Enterprise edition will add these additional add-ons for work packages' custom fields: <br> <ul> <li><b>Allow multi-select for custom fields of type List or User</b></li> </ul>
text_wp_status_read_only_html: >
L'edició Enterprise afegirà add-ons extra pels estats de paquets de treball: <br> <ul> <li><b>Permet marcar paquets de treball com a només lectura per a estats específics</b></li> </ul>
The Enterprise edition will add these additional add-ons for work packages' statuses fields: <br> <ul> <li><b>Allow to mark work packages to read-only for specific statuses</b></li> </ul>
text_project_custom_field_html: >
L'edició Enterprise afegirà add-ons extra pels camps personalitzats de projectes: <br> <ul> <li><b>Afegeix camps personalitzats pels teus projectes a la teva llista de projectes per crear una vista de cartera de projectes</b></li> </ul>
The Enterprise edition will add these additional add-ons for projects' custom fields: <br> <ul> <li><b>Add custom fields for projects to your Project list to create a project portfolio view</b></li> </ul>
text_custom_logo_instructions: >
Es recomana un logo blanc amb fons transparent. Per a un millor resultat tant en pantalles retina o convencionals assegura't que la teva imatge té unes dimensions de 460px per 60px.
text_custom_favicon_instructions: >
@ -2918,7 +2917,7 @@ ca:
warning_user_limit_reached: >
Límit d'usuaris assolit. No pots activar cap més usuari. Si us plau, <a href="%{upgrade_url}">actualitza el teu pla</a> o bloqueja a membres per permetre nous usuaris.
warning_user_limit_reached_instructions: >
Has assolit el nombre d'usuaris límit (%{current}/%{max} usuaris actius. Si us plau, posa't en contacte amb sales@openproject.com per actualitzar la teva edició Enterpirse i afegir nous usuaris.
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_protocol_mismatch_html: >
warning_bar:
@ -2955,9 +2954,6 @@ ca:
days:
working: "%{day} és ara laboral"
non_working: "%{day} és ara no laboral"
dates:
working: "%{day} és ara laboral"
non_working: "%{day} és ara no laboral"
nothing_to_preview: "Res per previsualitzar"
api_v3:
attributes:

@ -1797,7 +1797,6 @@ ckb-IR:
label_product_version: "Product version"
label_professional_support: "Professional support"
label_profile: "Profile"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Total number of projects"
label_project_copy_notifications: "Send email notifications during the project copy"
@ -2966,9 +2965,6 @@ ckb-IR:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nothing to preview"
api_v3:
attributes:

@ -1831,7 +1831,6 @@ cs:
label_product_version: "Verze produktu"
label_professional_support: "Profesionální podpora"
label_profile: "Profil"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Celkový počet projektů"
label_project_copy_notifications: "Během kopie projektu odeslat oznámení e-mailem"
@ -3006,9 +3005,6 @@ cs:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nic pro náhled"
api_v3:
attributes:

@ -1795,7 +1795,6 @@ da:
label_product_version: "Product version"
label_professional_support: "Professionel support"
label_profile: "Profil"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Samlet antal projekter"
label_project_copy_notifications: "Adviser via e-mail under kopiering af projekt"
@ -2962,9 +2961,6 @@ da:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Intet at forhåndsvise"
api_v3:
attributes:

@ -1792,7 +1792,6 @@ de:
label_product_version: "Produktversion"
label_professional_support: "Professionelle Unterstützung"
label_profile: "Profil"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Gesamtzahl der Projekte"
label_project_copy_notifications: "Sende Mailbenachrichtigungen beim Kopieren des Projekts."
@ -2960,9 +2959,6 @@ de:
days:
working: "%{day} ist jetzt ein Arbeitstag"
non_working: "%{day} ist jetzt kein Arbeitstag"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Keine Vorschau verfügbar"
api_v3:
attributes:

@ -1793,7 +1793,6 @@ el:
label_product_version: "Έκδοση προϊόντος"
label_professional_support: "Επαγγελματική υποστήριξη"
label_profile: "Προφίλ"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Συνολικός αριθμός έργων"
label_project_copy_notifications: "Αποστολή ειδοποιήσεων με email κατά την διάρκεια της αντιγραφής του έργου"
@ -2960,9 +2959,6 @@ el:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Δεν υπάρχει κάτι για προεπισκόπηση"
api_v3:
attributes:

@ -1797,7 +1797,6 @@ eo:
label_product_version: "Versio de la produkto"
label_professional_support: "Profesia subteno"
label_profile: "Profilo"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Totala kvanto da projektoj"
label_project_copy_notifications: "Sendi retpoŝtajn sciigojn dum la projekta kopiado"
@ -2966,9 +2965,6 @@ eo:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nothing to preview"
api_v3:
attributes:

@ -49,7 +49,7 @@ es:
main-menu-border-color: "Borde del menú principal"
custom_colors: "Colores personalizados"
customize: "Personalice su instalación de OpenProject con su logotipo y colores."
enterprise_notice: "Como un agradecimiento especial por su contribución financiera para desarrollar OpenProject, este pequeño complemento solo está disponible para suscriptores de la edición Enterprise."
enterprise_notice: "As a special 'Thank you!' for their financial contribution to develop OpenProject, this tiny add-on is only available for Enterprise edition support subscribers."
enterprise_more_info: "Nota: el logotipo utilizado será de acceso público."
manage_colors: "Editar opciones de selección de colores"
instructions:
@ -67,12 +67,12 @@ es:
upgrade_to_ee: "Actualizar a la edición Enterprise"
add_token: "Cargue el token de soporte de la edición Enterprise"
delete_token_modal:
text: "¿Está seguro que desea eliminar el token actual de la edición Enterpise usado?"
text: "Are you sure you want to remove the current Enterprise edition token used?"
title: "Eliminar token"
replace_token: "Reemplace su token de apoyo actual"
order: "Solicitar la edición Enterprise on-premises"
paste: "Pegue su token de soporte de la edición Enterprise"
required_for_feature: "Este add-on solo está disponible con un token de soporte activo de la edición Enterprise."
required_for_feature: "This add-on is only available with an active Enterprise edition support token."
enterprise_link: "Para obtener más información, haga clic aquí."
start_trial: 'Iniciar prueba gratuita'
book_now: 'Reservar ahora'
@ -80,7 +80,7 @@ es:
buttons:
upgrade: "Actualizar ahora"
contact: "Contáctenos para una demostración"
enterprise_info_html: "es un add-on de la edición Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span>."
enterprise_info_html: "is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Actualice a un plan de pago para activarlo y empezar a usarlo en su equipo."
journal_aggregation:
explanation:
@ -319,7 +319,7 @@ es:
settings: "Configuración"
form_configuration: "Configuración del formulario"
more_info_text_html: >
La edición Enterprise te permite personalizar el formulario de configuración con estos add-ons adicionales: <br><ul class="%{list_styling_class}"><li><b>Añade nuevos grupos de atributo</b></li> <li><b>Renombra grupos de atributo</b></li> <li><b>Añada tablas de paquetes de trabajo relacionados</b></li> </ul>
Enterprise edition allows you to customize form configuration with these additional add-ons: <br> <ul class="%{list_styling_class}"> <li><b>Add new attribute groups</b></li> <li><b>Rename attribute groups</b></li> <li><b>Add a table of related work packages</b></li> </ul>
projects: "Proyectos"
enabled_projects: "Proyectos habilitados"
edit_query: "Editar tabla"
@ -373,7 +373,7 @@ es:
account:
delete: "Borrar cuenta"
delete_confirmation: "¿Está seguro que desea eliminar la cuenta?"
deletion_pending: "La cuenta ha sido bloqueada y está programada para su eliminación. Tenga en cuenta que este proceso tiene lugar en segundo plano. Puede tardar un tiempo hasta que el usuario se borre por completo."
deletion_pending: "Account has been locked and was scheduled for deletion. Note that this process takes place in the background. It might take a few moments until the user is fully deleted."
deletion_info:
data_consequences:
other: "De los datos del usuario creado (por ejemplo correo electrónico, preferencias, paquetes de trabajo, entradas wiki) serán eliminados, en la medida de lo posible. Sin embargo, tenga en cuenta que no se pueden eliminar datos como entradas wiki y paquetes de trabajo sin obstaculizar el trabajo de los demás usuarios. Dichos datos, por lo tanto, serán reasignados a una cuenta denominada \"Usuarios Eliminados\". Como los datos de cada cuenta borrada son reasignados al eliminarla, no será posible distinguir los datos del usuario creado a partir de los datos de otra cuenta eliminada."
@ -585,7 +585,7 @@ es:
confirmation: "no coincide con %{attribute}."
could_not_be_copied: "%{dependency} no se pudo copiar (en su totalidad)."
does_not_exist: "no existe."
error_enterprise_only: "%{action} solo está disponible en OpenProject edición Enterprise"
error_enterprise_only: "%{action} is only available in the OpenProject Enterprise edition"
error_unauthorized: "no se puede acceder."
error_readonly: "se intentó escribir pero no se puede escribir."
email: "no es una dirección de correo válida."
@ -635,7 +635,7 @@ es:
auth_source:
attributes:
tls_certificate_string:
invalid_certificate: "El certificado SSL proporcionado no es válido: %{additional_message}"
invalid_certificate: "The provided SSL certificate is invalid: %{additional_message}"
format: "%{message}"
attachment:
attributes:
@ -690,7 +690,7 @@ es:
non_working_day:
attributes:
date:
taken: "Ya existe un día no laboral para %{value}."
taken: "A non-working day already exists for %{value}."
format: "%{message}"
parse_schema_filter_params_service:
attributes:
@ -703,7 +703,7 @@ es:
foreign_wps_reference_version: 'Los paquetes de trabajo en los proyectos no descendientes hacen referencia a versiones del proyecto o a sus descendientes.'
attributes:
base:
archive_permission_missing_on_subprojects: "No tiene los permisos necesarios para archivar todos los subproyectos. Por favor, póngase en contacto con un administrador."
archive_permission_missing_on_subprojects: "You do not have the permissions required to archive all sub-projects. Please contact an administrator."
types:
in_use_by_work_packages: "todavia en uso por los paquetes de trabajo: %{types}"
enabled_modules:
@ -1268,11 +1268,11 @@ es:
ee:
upsale:
form_configuration:
description: "Personalice la configuración del formulario con estos add-ons extra:"
description: "Customize the form configuration with these additional add-ons:"
add_groups: "Añadir nuevos grupos de atributos"
rename_groups: "Cambiar nombre de grupos de atributos"
project_filters:
description_html: "Filtrar y ordenar en campos personalizados es un add-on de la edición Enterprise."
description_html: "Filtering and sorting on custom fields is an Enterprise edition add-on."
enumeration_activities: "Actividades de seguimiento del tiempo"
enumeration_work_package_priorities: "Prioridades del paquete de trabajo"
enumeration_reported_project_statuses: "Estatus del proyecto reportado"
@ -1294,7 +1294,7 @@ es:
error_cookie_missing: 'No se encuentra la cookie de OpenProject. Por favor asegúrese de que las cookies están habilitadas, ya que sin ellas esta aplicación no funcionará correctamente.'
error_custom_option_not_found: "Esta opción no existe."
error_enterprise_activation_user_limit: "Su cuenta no puede ser activada (se alcanzó el límite del usuario). Por favor, contacte su administrador para obtener acceso."
error_enterprise_token_invalid_domain: "La edición Enterprise no está activa. Su dominio del token de Enterprise (%{actual}) no coincide con el nombre de host del sistema (%{expected})."
error_enterprise_token_invalid_domain: "The Enterprise edition is not active. Your Enterprise token's domain (%{actual}) does not match the system's host name (%{expected})."
error_failed_to_delete_entry: 'No se puede eliminar esta entrada.'
error_in_dependent: "Error al intentar alterar el objeto dependiente: %{dependent_class} #%{related_id} - %{related_subject}: %{error}" #%{related_id} - %{related_subject}: %{error}"
error_in_new_dependent: "Error al crear el objeto dependiente: %{dependent_class} - %{related_subject}: %{error}"
@ -1794,7 +1794,6 @@ es:
label_product_version: "Versión del producto"
label_professional_support: "Soporte profesional"
label_profile: "Perfil"
label_project_activity: "Actividad del proyecto"
label_project_attribute_plural: "Atributos del proyecto"
label_project_count: "Número total de proyectos"
label_project_copy_notifications: "Enviar notificaciones por correo electrónico durante la copia del proyecto"
@ -2217,7 +2216,7 @@ es:
permission_add_work_packages: "Añadir paquetes de trabajo"
permission_add_messages: "Publicar mensajes"
permission_add_project: "Crear proyecto"
permission_archive_project: "Archivar proyecto"
permission_archive_project: "Archive project"
permission_manage_user: "Crear y editar usuarios"
permission_manage_placeholder_user: "Crear, editar y eliminar usuarios de marcador de posición"
permission_add_subprojects: "Crear subproyectos"
@ -2619,11 +2618,11 @@ es:
text_custom_field_hint_activate_per_project_and_type: >
Los campos personalizados se deben activar en cada tipo de paquete de trabajo y en cada proyecto por separado.
text_wp_custom_field_html: >
La edición Enterprise añadirá estos add-ons extra para los campos personalizados de los paquetes de trabajo: <br> <ul> <li><b>Permitir la selección múltiple de campos personalizados de tipo Lista o Usuario</b></li> </ul>
The Enterprise edition will add these additional add-ons for work packages' custom fields: <br> <ul> <li><b>Allow multi-select for custom fields of type List or User</b></li> </ul>
text_wp_status_read_only_html: >
La edición Enterprise añadirá estos add-ons extras para los campos de estado de los paquetes de trabajo: <br> <ul> <li><b>Permitir marcar como solo lectura los paquetes de trabajo en estados específicos</b></li> </ul>
The Enterprise edition will add these additional add-ons for work packages' statuses fields: <br> <ul> <li><b>Allow to mark work packages to read-only for specific statuses</b></li> </ul>
text_project_custom_field_html: >
La edición Enterprise añadirá estos add-ons extra para los campos personalizados de los proyectos: <br> <ul> <li><b>Añadir campos personalizados para proyectos a tu lista de proyectos para crear una vista porfolio de proyectos</b></li> </ul>
The Enterprise edition will add these additional add-ons for projects' custom fields: <br> <ul> <li><b>Add custom fields for projects to your Project list to create a project portfolio view</b></li> </ul>
text_custom_logo_instructions: >
Se recomienda usar un logotipo blanco sobre un fondo transparente. Para obtener los mejores resultados, tanto en pantallas convencionales como en las del tipo Retina, asegúrese de que las dimensiones de la imagen sean de 460 × 60 px.
text_custom_favicon_instructions: >
@ -2924,7 +2923,7 @@ es:
warning_user_limit_reached: >
Alcanzado el límite de usuarios. No se puede activar ningún usuario más. <a href="%{upgrade_url}">actualice su plan</a> o bloquee miembros para permitir usuarios adicionales.
warning_user_limit_reached_instructions: >
Has alcanzado el límite de usuarios (%{current}/%{max} usuarios activos). Por favor, contacta con sales@openproject.com para mejorar tu plan de edición Enterprise y añadir usuarios adicionales.
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_protocol_mismatch_html: >
warning_bar:
@ -2961,9 +2960,6 @@ es:
days:
working: "%{day} es ahora laboral"
non_working: "%{day} es ahora no laboral"
dates:
working: "%{day} es ahora laboral"
non_working: "%{day} es ahora no laboral"
nothing_to_preview: "Nada para previsualizar"
api_v3:
attributes:

@ -1797,7 +1797,6 @@ et:
label_product_version: "Product version"
label_professional_support: "Professionaalne kasutajatugi"
label_profile: "Profiil"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Total number of projects"
label_project_copy_notifications: "Saada e-postiga teateid projekti kopeerimise ajal"
@ -2966,9 +2965,6 @@ et:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Eelvaateks pole midagi näidata"
api_v3:
attributes:

@ -1797,7 +1797,6 @@ eu:
label_product_version: "Product version"
label_professional_support: "Professional support"
label_profile: "Profile"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Total number of projects"
label_project_copy_notifications: "Send email notifications during the project copy"
@ -2966,9 +2965,6 @@ eu:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nothing to preview"
api_v3:
attributes:

@ -1797,7 +1797,6 @@ fa:
label_product_version: "Product version"
label_professional_support: "Professional support"
label_profile: "Profile"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Total number of projects"
label_project_copy_notifications: "Send email notifications during the project copy"
@ -2966,9 +2965,6 @@ fa:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nothing to preview"
api_v3:
attributes:

@ -1797,7 +1797,6 @@ fi:
label_product_version: "Tuotteen versio"
label_professional_support: "Ammatillinen apu"
label_profile: "Profile"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Total number of projects"
label_project_copy_notifications: "Lähetä sähköposti-ilmoituksia projektin kopioinnin aikana"
@ -2966,9 +2965,6 @@ fi:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Ei esikatseltavaa"
api_v3:
attributes:

@ -1797,7 +1797,6 @@ fil:
label_product_version: "Produktong bersyon"
label_professional_support: "Propesyonal na suporta"
label_profile: "Profile"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Kabuuang bilang ng mga proyekto"
label_project_copy_notifications: "Magpadala ng mga email na abiso habang ang proyekto ay kinopya"
@ -2964,9 +2963,6 @@ fil:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Walang mai-preview"
api_v3:
attributes:

@ -49,7 +49,7 @@ fr:
main-menu-border-color: "Bordure du menu principal"
custom_colors: "Couleurs personnalisées"
customize: "Personnalisez votre installation OpenProject avec votre propre logo et couleurs."
enterprise_notice: "Comme remerciement spécial pour leur contribution financière au développement d'OpenProject, cet add-on n’est disponible que pour les titulaires d'une version Entreprise."
enterprise_notice: "As a special 'Thank you!' for their financial contribution to develop OpenProject, this tiny add-on is only available for Enterprise edition support subscribers."
enterprise_more_info: "Remarque : le logo utilisé sera accessible publiquement."
manage_colors: "Modifier les options du sélecteur de couleur"
instructions:
@ -64,15 +64,15 @@ fr:
main-menu-bg-color: "Couleur d’arrière-plan du menu de gauche."
theme_warning: Le changement de thème écrasera votre style personnalisé. Le design sera alors perdu. Êtes-vous sûr de vouloir continuer ?
enterprise:
upgrade_to_ee: "Passer à la version Entreprise"
add_token: "Charger un jeton de support pour la version Entreprise"
upgrade_to_ee: "Upgrade to the Enterprise edition"
add_token: "Upload an Enterprise edition support token"
delete_token_modal:
text: "Voulez-vous vraiment supprimer le jeton actuellement utilisé pour l'édition Entreprise ?"
text: "Are you sure you want to remove the current Enterprise edition token used?"
title: "Supprimer le jeton"
replace_token: "Remplacer votre licence actuelle"
order: "Commander l'édition Entreprise autohebergée"
paste: "Coller votre jeton de support pour la version Entreprise"
required_for_feature: "Cet add-on n'est disponible qu'avec un jeton de support actif pour la version Entreprise."
order: "Order Enterprise on-premises edition"
paste: "Paste your Enterprise edition support token"
required_for_feature: "This add-on is only available with an active Enterprise edition support token."
enterprise_link: "Pour plus d'informations, cliquez ici."
start_trial: 'Commencer l''essai gratuit'
book_now: 'Réserver maintenant'
@ -80,7 +80,7 @@ fr:
buttons:
upgrade: "Passer au plan supérieur"
contact: "Contactez-nous pour une démo"
enterprise_info_html: "est un <span class='spot-icon spot-icon_enterprise-addons'></span> add-on Entreprise."
enterprise_info_html: "is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Veuillez passer à un plan payant pour l'activer et commencer à l'utiliser dans votre équipe."
journal_aggregation:
explanation:
@ -138,7 +138,7 @@ fr:
lorsqu'ils s'authentifieront pour la première fois avec OpenProject.
Laissez ceci non coché pour permettre uniquement aux comptes existants dans OpenProject de s'authentifier via LDAP!
connection_encryption: 'Cryptage de la connexion'
encryption_details: 'Options LDAPS / STARTTLS'
encryption_details: 'LDAPS / STARTTLS options'
system_account: 'Compte système'
system_account_legend: |
OpenProject nécessite un accès en lecture seule via un compte système pour rechercher des utilisateurs et des groupes dans votre arborescence LDAP.
@ -152,16 +152,16 @@ fr:
plain: 'aucune'
simple_tls: 'LDAPS'
start_tls: 'STARTTLS'
plain_description: "Ouvre une connexion non chiffrée au serveur LDAP. Déconseillé en production."
simple_tls_description: "Utiliser LDAPS. Nécessite un port séparé sur le serveur LDAP. Ce mode est souvent obsolète, nous vous recommandons d'utiliser STARTTLS dès que possible."
start_tls_description: "Envoie une commande STARTTLS après la connexion au port LDAP standard. Recommandé pour les connexions chiffrées."
plain_description: "Opens an unencrypted connection to the LDAP server. Not recommended for production."
simple_tls_description: "Use LDAPS. Requires a separate port on the LDAP server. This mode is often deprecated, we recommend using STARTTLS whenever possible."
start_tls_description: "Sends a STARTTLS command after connecting to the standard LDAP port. Recommended for encrypted connections."
section_more_info_link_html: >
Cette section concerne la sécurité de connexion de cette source d'authentification LDAP. Pour plus d'informations, visitez <a href="%{link}">the Net::LDAP documentation</a>.
tls_options:
verify_peer: "Vérifier le certificat SSL"
verify_peer: "Verify SSL certificate"
verify_peer_description_html: >
Active la vérification SSL stricte de la chaîne de confiance du certificat. <br/> <strong> Avertissement :</strong> décocher cette option désactive la vérification SSL du certificat de serveur LDAP. Cela expose votre connexion aux attaques de type "Man In The Middle".
tls_certificate_description: "Si le certificat du serveur LDAP n'appartient pas aux sources de confiance de ce système, vous pouvez manuellement l'ajouter ici. Entrez une chaîne de certificat PEM X509."
Enables strict SSL verification of the certificate trusted chain. <br/> <strong>Warning:</strong> Unchecking this option disables SSL verification of the LDAP server certificate. This exposes your connection to Man in the Middle attacks.
tls_certificate_description: "If the LDAP server certificate is not in the trust sources of this system, you can add it manually here. Enter a PEM X509 certifiate string."
forums:
show:
no_results_title_text: Il n'y a actuellement aucun message pour le forum.
@ -322,7 +322,7 @@ fr:
settings: "Paramètres"
form_configuration: "Configuration du formulaire"
more_info_text_html: >
L'édition Entreprise vous permet de personnaliser la configuration du formulaire avec ces add-ons supplémentaires : <br> <ul class="%{list_styling_class}"> <li><b>Ajouter de nouveaux groupes d'attributs</b></li> <li><b>Renommer les groupes d'attributs</b></li> <li><b>Ajouter une table des lots de travaux connexes</b></li> </ul>
Enterprise edition allows you to customize form configuration with these additional add-ons: <br> <ul class="%{list_styling_class}"> <li><b>Add new attribute groups</b></li> <li><b>Rename attribute groups</b></li> <li><b>Add a table of related work packages</b></li> </ul>
projects: "Projets"
enabled_projects: "Projets activés"
edit_query: "Modifier le tableau"
@ -337,7 +337,7 @@ fr:
wiki:
page_not_editable_index: La page demandée n'existe pas (encore). Vous avez été redirigé vers l'index de toutes les pages du wiki.
no_results_title_text: Il n'y a actuellement aucune page wiki.
print_hint: Ceci affichera le contenu de cette page wiki sans aucune barre de navigation.
print_hint: This will print the content of this wiki page without any navigation bars.
index:
no_results_content_text: Ajouter une nouvelle page wiki
work_flows:
@ -376,7 +376,7 @@ fr:
account:
delete: "Supprimer le compte"
delete_confirmation: "Êtes-vous sûr de vouloir supprimer le compte ?"
deletion_pending: "Le compte a été verrouillé et a été programmé pour suppression. Notez que ce processus a lieu en arrière-plan. Cela peut prendre quelques instants avant que l'utilisateur soit complètement supprimé."
deletion_pending: "Account has been locked and was scheduled for deletion. Note that this process takes place in the background. It might take a few moments until the user is fully deleted."
deletion_info:
data_consequences:
other: "Les données créées par l'utilisateur (e.g. e-mail, préférences, lots de travaux, entrées wiki) seront supprimées autant que possible. Notez toutefois que les données comme les lots de travaux et les entrées wiki ne peuvent pas être supprimées sans impacter le travail des autres utilisateurs. Ces données sont donc réaffectées à un compte appelé «Utilisateur supprimé». Étant donné que les données de chaque compte supprimé sont réaffectées à ce compte, il ne sera plus possible de distinguer les données créées par cet utilisateur de celles d'un autre compte supprimé."
@ -426,7 +426,7 @@ fr:
host: "Hôte"
onthefly: "Création automatique d'un utilisateur"
port: "Port"
tls_certificate_string: "Certificat SSL du serveur LDAP"
tls_certificate_string: "LDAP server SSL certificate"
changeset:
repository: "Référentiel"
comment:
@ -588,7 +588,7 @@ fr:
confirmation: "ne correspond pas à %{attribute}."
could_not_be_copied: "%{dependency} n'a pas pu être copié (entièrement)."
does_not_exist: "n'existe pas."
error_enterprise_only: "%{action} n'est disponible que dans la version Entreprise d'OpenProject."
error_enterprise_only: "%{action} is only available in the OpenProject Enterprise edition"
error_unauthorized: "est interdit d'accès."
error_readonly: "a tenté d'être écrit mais n'est pas accessible en écriture."
email: "n'est pas une adresse e-mail valide."
@ -638,7 +638,7 @@ fr:
auth_source:
attributes:
tls_certificate_string:
invalid_certificate: "Le certificat SSL fourni est invalide : %{additional_message}"
invalid_certificate: "The provided SSL certificate is invalid: %{additional_message}"
format: "%{message}"
attachment:
attributes:
@ -693,7 +693,7 @@ fr:
non_working_day:
attributes:
date:
taken: "Un jour non ouvrable existe déjà pour %{value}."
taken: "A non-working day already exists for %{value}."
format: "%{message}"
parse_schema_filter_params_service:
attributes:
@ -706,7 +706,7 @@ fr:
foreign_wps_reference_version: 'Les lots de travaux dans les projets non-descendants font référence aux versions du projet ou de ses descendants.'
attributes:
base:
archive_permission_missing_on_subprojects: "Vous n'avez pas les permissions requises pour archiver tous les sous-projets. Veuillez contacter un administrateur."
archive_permission_missing_on_subprojects: "You do not have the permissions required to archive all sub-projects. Please contact an administrator."
types:
in_use_by_work_packages: "toujours en cours d'utilisation par les lots de travaux : %{types}"
enabled_modules:
@ -1271,11 +1271,11 @@ fr:
ee:
upsale:
form_configuration:
description: "Personnaliser la configuration du formulaire avec ces add-ons supplémentaires :"
description: "Customize the form configuration with these additional add-ons:"
add_groups: "Ajouter de nouveaux groupes d’attributs"
rename_groups: "Renommer les groupes d’attributs"
project_filters:
description_html: "Le filtrage et le tri sur les champs personnalisés sont un add-on de l'édition Entreprise."
description_html: "Filtering and sorting on custom fields is an Enterprise edition add-on."
enumeration_activities: "Activités de suivi du temps"
enumeration_work_package_priorities: "Priorités du Lot de Travaux"
enumeration_reported_project_statuses: "Statuts de projet signalés"
@ -1297,7 +1297,7 @@ fr:
error_cookie_missing: 'Le cookie OpenProject est manquant. Assurez-vous que les cookies sont activés, sans quoi cette application ne fonctionnera pas correctement.'
error_custom_option_not_found: "L'option n'existe pas."
error_enterprise_activation_user_limit: "Votre compte n'a pas pu être activé (limite d'utilisateurs atteinte). Veuillez contacter votre administrateur pour obtenir l'accès."
error_enterprise_token_invalid_domain: "La version Entreprise n'est pas active. Le domaine de votre jeton Entreprise (%{actual}) ne correspond pas au nom d'hôte du système (%{expected})."
error_enterprise_token_invalid_domain: "The Enterprise edition is not active. Your Enterprise token's domain (%{actual}) does not match the system's host name (%{expected})."
error_failed_to_delete_entry: 'Échec lors de la suppression de cette entrée.'
error_in_dependent: "Erreur lors de la tentative de modification de l'objet dépendant : %{dependent_class} #%{related_id} - %{related_subject} : %{error}" #%{related_id} - %{related_subject} : %{error}"
error_in_new_dependent: "Erreur lors de la tentative de création d'un objet dépendant : %{dependent_class} - %{related_subject} : %{error}"
@ -1388,10 +1388,10 @@ fr:
blocks:
community: "Communauté OpenProject"
upsale:
title: "Passer à la version Entreprise"
title: "Upgrade to Enterprise edition"
more_info: "Plus d'informations"
links:
upgrade_enterprise_edition: "Passer à la version Entreprise"
upgrade_enterprise_edition: "Upgrade to Enterprise edition"
postgres_migration: "Migration de votre installation vers PostgreSQL"
user_guides: "Guides d'utilisation"
faq: "FAQ"
@ -1607,7 +1607,7 @@ fr:
label_enumerations: "Énumérations"
label_enterprise: "Entreprise"
label_enterprise_active_users: "%{current}/%{limit} utilisateurs actifs inscrits"
label_enterprise_edition: "Version Entreprise"
label_enterprise_edition: "Enterprise edition"
label_environment: "Environement"
label_estimates_and_time: "Estimations et temps"
label_equals: "est"
@ -1797,7 +1797,6 @@ fr:
label_product_version: "Version du produit"
label_professional_support: "Support professionnel"
label_profile: "Profil"
label_project_activity: "Activité du projet"
label_project_attribute_plural: "Attributs du projet"
label_project_count: "Nombre total de projets"
label_project_copy_notifications: "Notifier par courriel lors de la copie du projet"
@ -2221,7 +2220,7 @@ fr:
permission_add_work_packages: "Ajouter des lots de travaux"
permission_add_messages: "Poster des messages"
permission_add_project: "Créer un projet"
permission_archive_project: "Archiver le projet"
permission_archive_project: "Archive project"
permission_manage_user: "Créer et éditer des utilisateurs"
permission_manage_placeholder_user: "Créer, modifier et supprimer des utilisateurs fictifs"
permission_add_subprojects: "Créer des sous-projets"
@ -2623,11 +2622,11 @@ fr:
text_custom_field_hint_activate_per_project_and_type: >
Les champs personnalisés doivent être activés par type de lot de travaux et par projet.
text_wp_custom_field_html: >
L'édition Entreprise ajoutera ces add-ons supplémentaires pour les champs personnalisés des lots de travaux : <br> <ul> <li><b>Autoriser la sélection multiple pour les champs personnalisés de type Liste ou Utilisateur</b></li> </ul>
The Enterprise edition will add these additional add-ons for work packages' custom fields: <br> <ul> <li><b>Allow multi-select for custom fields of type List or User</b></li> </ul>
text_wp_status_read_only_html: >
L'édition Entreprise ajoutera ces add-ons supplémentaires pour les champs de statut des lots de travaux : <br> <ul> <li><b>Permet de marquer les lots de travaux en lecture seule pour des statuts spécifiques</b></li> </ul>
The Enterprise edition will add these additional add-ons for work packages' statuses fields: <br> <ul> <li><b>Allow to mark work packages to read-only for specific statuses</b></li> </ul>
text_project_custom_field_html: >
L'édition Entreprise ajoutera ces add-ons supplémentaires pour les champs personnalisés des projets : <br> <ul> <li><b>Ajouter des champs personnalisés pour les projets à votre liste de projets pour créer une vue du portefeuille de projets</b></li> </ul>
The Enterprise edition will add these additional add-ons for projects' custom fields: <br> <ul> <li><b>Add custom fields for projects to your Project list to create a project portfolio view</b></li> </ul>
text_custom_logo_instructions: >
Un logo blanc sur fond transparent est recommandé. Pour obtenir les meilleurs résultats sur les deux, affichage classique et retina, assurez-vous que les dimensions de votre image soient de 460px par 60px.
text_custom_favicon_instructions: >
@ -2928,7 +2927,7 @@ fr:
warning_user_limit_reached: >
Limite d'utilisateur atteinte. Vous ne pouvez plus activer d'autres utilisateurs. Veuillez <a href="%{upgrade_url}">mettre à jour votre plan</a> ou bloquez des membres pour permettre d'autres utilisateurs.
warning_user_limit_reached_instructions: >
Vous avez atteint le nombre limite d'utilisateurs (%{current}/%{max} utilisateurs actifs). Veuillez contacter sales@openproject.com pour mettre à jour votre abonnement Entreprise et ajouter des utilisateurs supplémentaires.
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_protocol_mismatch_html: >
warning_bar:
@ -2965,9 +2964,6 @@ fr:
days:
working: "%{day} est maintenant un jour ouvrable"
non_working: "%{day} est maintenant un jour non ouvrable"
dates:
working: "%{date} est maintenant un jour ouvrable"
non_working: "%{date} est maintenant un jour non ouvrable"
nothing_to_preview: "Rien à afficher en apperçu"
api_v3:
attributes:

@ -1831,7 +1831,6 @@ he:
label_product_version: "Product version"
label_professional_support: "Professional support"
label_profile: "פרופיל"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Total number of projects"
label_project_copy_notifications: "Send email notifications during the project copy"
@ -3008,9 +3007,6 @@ he:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nothing to preview"
api_v3:
attributes:

@ -1795,7 +1795,6 @@ hi:
label_product_version: "Product version"
label_professional_support: "Professional support"
label_profile: "पइल"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Total number of projects"
label_project_copy_notifications: "पट परतििन ईमल सचन"
@ -2964,9 +2963,6 @@ hi:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nothing to preview"
api_v3:
attributes:

@ -1814,7 +1814,6 @@ hr:
label_product_version: "Verzija proizvoda"
label_professional_support: "Profesionalna Podrška"
label_profile: "Profil"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Ukupan broj projekata"
label_project_copy_notifications: "Slanje obavijesti e-mailom tijekom kopiranja projekta"
@ -2987,9 +2986,6 @@ hr:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Ne postoji zapis za pregled"
api_v3:
attributes:

@ -1794,7 +1794,6 @@ hu:
label_product_version: "Termékverzió"
label_professional_support: "Szakmai támogatás"
label_profile: "Profil"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "A projektek teljes száma"
label_project_copy_notifications: "E-mail értesítéseket küld a projekt másolás során"
@ -2962,9 +2961,6 @@ hu:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nincs előnézet"
api_v3:
attributes:

@ -1774,7 +1774,6 @@ id:
label_product_version: "Product version"
label_professional_support: "Professional support"
label_profile: "Profil"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Jumlah proyek"
label_project_copy_notifications: "Kirim email notifikasi selama meng-copy Project"
@ -2937,9 +2936,6 @@ id:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Tidak ada pre-view"
api_v3:
attributes:

@ -1794,7 +1794,6 @@ it:
label_product_version: "Versione del prodotto"
label_professional_support: "Supporto professionale"
label_profile: "Profilo"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Numero totale di progetti"
label_project_copy_notifications: "Invia le email di notifica durante la copia del progetto"
@ -2963,9 +2962,6 @@ it:
days:
working: "%{day} ora è lavorativo"
non_working: "%{day} ora non è lavorativo"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Niente in anteprima"
api_v3:
attributes:

@ -1776,7 +1776,6 @@ ja:
label_product_version: "製品バージョン"
label_professional_support: "プロフェッショナルサポート"
label_profile: "プロファイル"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "プロジェクトの合計数"
label_project_copy_notifications: "プロジェクトのコピーの時、コピーした内容をメール通知する"
@ -2940,9 +2939,6 @@ ja:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "プレビューできるものは何もありません。"
api_v3:
attributes:

@ -657,7 +657,6 @@ af:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -661,7 +661,6 @@ ar:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -657,7 +657,6 @@ az:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -659,7 +659,6 @@ be:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -657,7 +657,6 @@ bg:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -224,14 +224,14 @@ ca:
status_label: "Estat:"
status_confirmed: "confirmat"
status_waiting: "correu electrònic enviat - esperant la confirmació"
test_ee: "Prova l'edició Enterprise de forma gratuïta per 14 dies"
quick_overview: "Obté una visió general ràpida de la gestió de projectes i col·laboració d'equips amb l'edició Enterprise d'OpenProject."
test_ee: "Test the Enterprise edition 14 days for free"
quick_overview: "Get a quick overview of project management and team collaboration with OpenProject Enterprise edition."
upsale:
become_hero: "Sigues un heroi!"
enterprise_info_html: "%{feature_title} és un add-on de l'edició Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span>."
enterprise_info_html: "%{feature_title} is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Si us plau, actualitza a una versió de pagament per tal d'activar i començar a utilitzar-la en el teu equip."
benefits:
description: "Quins són els beneficis de l'edició Enterprise on-premises?"
description: "What are the benefits of the Enterprise on-premises edition?"
high_security: "Funcions de seguretat"
high_security_text: "Inici de sessió únic (SAML, OpenID Conenct, CAS), grups LDAP."
installation: "Suport d'instal·lació"
@ -249,9 +249,9 @@ ca:
link_quote: "Obtenir un pressupost"
more_info: "Més informació"
text: >
L'edició Enterprise d'OpenProject es construeix a sobre de l'edició Community. Inclou Enterprise add-ons i suport professional pensat especialment per a organitzacions de més de 10 usuaris que manegin projectes empresarialment crítics amb OpenProject.
The OpenProject Enterprise edition builds on top of the Community edition. It includes Enterprise add-ons and professional support mainly aimed at organizations with more than 10 users that manage business critical projects with OpenProject.
unlimited: "Il·limitat"
you_contribute: "Els desenvolupadors també han de pagar les seves factures. Actualitzant a l'edició Enterprise, donaràs suport aquesta comunitat de codi obert i contribuiràs al seu desenvolupament, manteniment i millora continua."
you_contribute: "Developers need to pay their bills, too. By upgrading to the Enterprise edition, you will be supporting this open source community effort and contributing to its development, maintenance and continuous improvement."
custom_actions:
date:
specific: 'en'
@ -280,8 +280,8 @@ ca:
one: "Primer criteri d'ordenació"
two: "Segon criteri d'ordenació"
three: "Tercer criteri d'ordenació"
upsale_for_more: "Els filtres avançats et permeten també filtrar per noms de fitxer o contingut adjuntat en paquets de treball. Si us plau, actualitza a un pla de pagament per utilitzar aquest add-on."
upsale_link: 'Edició Enterprise.'
upsale_for_more: "Advanced filters allow you to also filter for file names and content of work package attachments. Please upgrade to a paid plan to use this add-on."
upsale_link: 'Enterprise edition.'
general_text_no: "no"
general_text_yes: "sí"
general_text_No: "No"
@ -475,10 +475,10 @@ ca:
label_custom_queries: "Privat"
label_columns: "Columnes"
label_attachments: Fitxers adjunts
label_drop_files: "Arrossega fitxers aquí per adjuntar-los."
label_drop_or_click_files: "Arrossega fitxers o fes clic aquí per adjuntar-los."
label_drop_files: "Drop files here to attach files."
label_drop_or_click_files: "Drop files here or click to attach files."
label_drop_folders_hint: No pots carregar carpetes com a fitxers adjunts. Si us plau, selecciona fitxers únics.
label_add_attachments: "Adjuntar arxius"
label_add_attachments: "Attach files"
label_formattable_attachment_hint: "Adjuntar i enllaça fitxers arrossegant-los en aquest camp, o enganxant-los des del porta-papers."
label_remove_file: "Eliminar %{fileName}"
label_remove_watcher: "Elimina l'observador %{name}"
@ -572,7 +572,7 @@ ca:
one: ' i 1 altre'
other: ' i %{count} altres'
no_results:
at_all: 'Noves notificacions apareixeran aquí quan hi hagi activitat que sigui important per a tu.'
at_all: 'New notifications will appear here when there is activity that concerns you.'
with_current_filter: 'En aquest moment no hi han notificacions en aquesta vista'
mark_all_read: 'Marca tot com a llegit'
mark_as_read: 'Marca com a llegit'
@ -595,7 +595,7 @@ ca:
watched: 'Observador'
date_alert: 'Alerta per dates'
settings:
change_notification_settings: 'Pots modificar la teva <a target="_blank" href="%{url}">configuració de notificacions</a> per assegurar-te que mai et perds informació important.'
change_notification_settings: 'You can modify your <a target="_blank" href="%{url}">notification settings</a> to ensure you never miss an important update.'
title: "Configuració de notificacions"
notify_me: "Notifica’m"
reminders:
@ -657,7 +657,6 @@ ca:
project:
required_outside_context: >
Si us plau, selecciona un projecte on crear el paquet de treball per a veure tots els atributs. Només pots seleccionar projectes que tinguin activat la classe indicada anteriorment.
details_activity: 'Detalls de l''activitat del projecte'
context: 'Context del projecte'
work_package_belongs_to: 'Aquest paquet de treball pertany al projecte %{projectname}.'
click_to_switch_context: 'Obre aquest paquet de treball en aquell projecte.'
@ -708,8 +707,8 @@ ca:
reset_title: "Reiniciar la configuració del formulari"
confirm_reset: >
Alerta: Estàs segur que vols reiniciar la configuració del formulari? Això reiniciarà els atributs als seus grups per defecte i desactivarà TOTS els camps personalitzats.
upgrade_to_ee: "Actualitza a l'edició Enterprise on-premises"
upgrade_to_ee_text: "Ostres! Si necessita aquesta funció ets un súper pro! T'importaria donar suport als nostres desenvolupadors de codi obert convertint-te en client de l'edició Enterprise?"
upgrade_to_ee: "Upgrade to Enterprise on-premises edition"
upgrade_to_ee_text: "Wow! If you need this add-on you are a super pro! Would you mind supporting us OpenSource developers by becoming an Enterprise edition client?"
more_information: "Més informació"
nevermind: "Sense importància"
edit:
@ -856,7 +855,7 @@ ca:
zooms: "Nivell de zoom"
outlines: "Nivell de jerarquia"
upsale:
ee_only: 'Add-on de l''edició Enterprise'
ee_only: 'Enterprise edition add-on'
wiki_formatting:
strong: "Negreta"
italic: "Cursiva"
@ -1047,7 +1046,7 @@ ca:
upsale:
attribute_highlighting: 'Necessites ressaltar alguns paquets de treball per sobre de la resta?'
relation_columns: 'Necessites veure les relacions en una llista de paquets de treball?'
check_out_link: 'Fes una ullada a l''edició Enterprise.'
check_out_link: 'Check out the Enterprise edition.'
relation_filters:
filter_work_packages_by_relation_type: 'Filtra paquets de treball per classe de relació'
tabs:
@ -1191,9 +1190,9 @@ ca:
description: 'Permisos basats en el rol assignat en el projecte seleccionat'
placeholder:
title: 'Usuari de marcador de posició'
title_no_ee: 'Usuari de marcador de posició (add-on només de l''edició Enterprise)'
title_no_ee: 'Placeholder user (Enterprise edition only add-on)'
description: 'No té accés al projecte i no s''han enviat els correus electrònics.'
description_no_ee: 'No tens accés al projecte i per tant, no s''han enviat els correus electrònics. <br>Fes una ullada a <a href="%{eeHref}" target="_blank">l''edició Enterprise</a>'
description_no_ee: 'Has no access to the project and no emails are sent out. <br>Check out the <a href="%{eeHref}" target="_blank">Enterprise edition</a>'
principal:
label:
name_or_email: 'Nom o adreça de correu electrònic'

@ -657,7 +657,6 @@ ckb-IR:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -659,7 +659,6 @@ cs:
project:
required_outside_context: >
Vyberte projekt pro vytvoření pracovního balíčku, abyste viděli všechny atributy. Můžete vybrat pouze projekty, které mají výše uvedený typ aktivován.
details_activity: 'Project details activity'
context: 'Kontext projektu'
work_package_belongs_to: 'Tento pracovní balíček náleží projektu %{projectname}.'
click_to_switch_context: 'Otevřete tento pracovní balíček v tomto projektu.'

@ -656,7 +656,6 @@ da:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -656,7 +656,6 @@ de:
project:
required_outside_context: >
Bitte wählen Sie ein Projekt für das Arbeitspaket, um alle Attribute anzuzeigen. Sie können nur Projekte auswählen, für die der ausgewählte Typ oben aktiviert ist.
details_activity: 'Project details activity'
context: 'Projektkontext'
work_package_belongs_to: 'Dieses Arbeitspaket gehört zum Projekt %{projectname}.'
click_to_switch_context: 'Dieses Arbeitspaket in dem Projekt öffnen.'

@ -656,7 +656,6 @@ el:
project:
required_outside_context: >
Παρακαλούμε επιλέξτε ένα έργο μέσα στο οποίο θα δημιουργήσετε το πακέτο εργασίας για να δείτε όλα τα χαρακτηριστικά. Μπορείτε να επιλέξετε μόνο έργα που έχουν τον παραπάνω τύπο ενεργό.
details_activity: 'Project details activity'
context: 'Πλαίσιο έργου'
work_package_belongs_to: 'Αυτό το πακέτο εργασίας ανήκει στο έργο %{projectname}.'
click_to_switch_context: 'Ανοίξτε αυτό πακέτο εργασίας σε εκείνο το έργο.'

@ -657,7 +657,6 @@ eo:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
context: 'Kunteksto de la projekto'
work_package_belongs_to: 'Tiu ĉi laborpakaĵo apartenas al la projekto %{projectname}.'
click_to_switch_context: 'Malfermi tiun laborpakaĵon en tiu projekto.'

@ -225,13 +225,13 @@ es:
status_confirmed: "confirmado"
status_waiting: "correo electrónico enviado - esperando confirmación"
test_ee: "Pruebe la edición Enterprise de forma gratuita durante 14 días"
quick_overview: "Obtenga un resumen rápido sobre la gestión de proyectos y la colaboración en equipo con OpenProject edición Enterprise."
quick_overview: "Get a quick overview of project management and team collaboration with OpenProject Enterprise edition."
upsale:
become_hero: "¡Conviértete en un héroe!"
enterprise_info_html: "%{feature_title} es un add-on de la edición Enterprise <span class='spot-icon spot-icon_enterprise-badge'></span>."
enterprise_info_html: "%{feature_title} is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Actualice a un plan de pago para activarla y empiece a usarla en su equipo."
benefits:
description: "¿Cuáles son las ventajas de la edición Enterprise on-premises?"
description: "What are the benefits of the Enterprise on-premises edition?"
high_security: "Funcionalidades de seguridad"
high_security_text: "Inicio de sesión único (SAML, OpenID Connect, CAS), grupos LDAP."
installation: "Ayuda en la instalación"
@ -249,9 +249,9 @@ es:
link_quote: "Solicitar presupuesto"
more_info: "Más información"
text: >
La edición Enterprise de OpenProject esta basada en la edición Community. Incluye Enterprise add-ons y soporte profesional dirigida principalmente a organizaciones con más de 10 usuarios que gestionen proyectos empresariales críticos con OpenProject.
The OpenProject Enterprise edition builds on top of the Community edition. It includes Enterprise add-ons and professional support mainly aimed at organizations with more than 10 users that manage business critical projects with OpenProject.
unlimited: "Ilimitado"
you_contribute: "Los desarrolladores también tienen que pagar sus facturas. Al actualizar a edición Enterprise, apoyará el esfuerzo de la comunidad de código abierto y contribuirá a su desarrollo, mantenimiento y mejora continua."
you_contribute: "Developers need to pay their bills, too. By upgrading to the Enterprise edition, you will be supporting this open source community effort and contributing to its development, maintenance and continuous improvement."
custom_actions:
date:
specific: 'en'
@ -280,7 +280,7 @@ es:
one: "Primer criterio de ordenación"
two: "Segundo criterio de ordenación"
three: "Tercer criterio de ordenación"
upsale_for_more: "Los filtros avanzados te permiten también filtrar los nombres de los archivos y el contenido de los archivos adjuntos del paquete de trabajo. Por favor, actualice a un plan de pago para utilizar este add-on."
upsale_for_more: "Advanced filters allow you to also filter for file names and content of work package attachments. Please upgrade to a paid plan to use this add-on."
upsale_link: 'Edición Enterprise.'
general_text_no: "no"
general_text_yes: "sí"
@ -478,7 +478,7 @@ es:
label_drop_files: "Arrastra archivos aquí para adjuntarlos."
label_drop_or_click_files: "Arrastra los archivos o haz clic aquí para adjuntar archivos."
label_drop_folders_hint: No se pueden cargar carpetas como archivos adjuntos. Seleccione archivos individuales.
label_add_attachments: "Adjuntar archivos"
label_add_attachments: "Attach files"
label_formattable_attachment_hint: "Para adjuntar y vincular archivos, colóquelos en este campo o péguelos desde el portapapeles."
label_remove_file: "Eliminar %{fileName}"
label_remove_watcher: "Eliminar observador %{name}"
@ -572,7 +572,7 @@ es:
one: 'y 1 más'
other: 'y %{count} más'
no_results:
at_all: 'Aquí se mostrarán las nuevas notificaciones cuando haya actividad que le resulte pertinente.'
at_all: 'New notifications will appear here when there is activity that concerns you.'
with_current_filter: 'No hay notificaciones en esta vista actualmente'
mark_all_read: 'Marcar todas como leídas'
mark_as_read: 'Marcar como leída'
@ -595,7 +595,7 @@ es:
watched: 'Observador'
date_alert: 'Alerta de fecha'
settings:
change_notification_settings: 'Puede modificar su <a target="_blank" href="%{url}">configuración de notificaciones</a> para asegurarse que nunca se pierda una actualización importante.'
change_notification_settings: 'You can modify your <a target="_blank" href="%{url}">notification settings</a> to ensure you never miss an important update.'
title: "Ajustes de notificación"
notify_me: "Notifícame"
reminders:
@ -657,7 +657,6 @@ es:
project:
required_outside_context: >
Seleccione el proyecto donde quiere crear el paquete de trabajo para ver todos los atributos. Solo puede seleccionar proyectos que tengan activado el tipo de paquete utilizado.
details_activity: 'Actividad de detalles del proyecto'
context: 'Contexto del proyecto'
work_package_belongs_to: 'Este paquete de trabajo pertenece al proyecto %{projectname}.'
click_to_switch_context: 'Abra este paquete de trabajo en ese proyecto.'
@ -709,7 +708,7 @@ es:
confirm_reset: >
Advertencia: ¿Está seguro de que quiere restablecer la configuración del formulario? Se restablecerán los atributos al grupo predeterminado y se deshabilitarán TODOS los campos personalizados.
upgrade_to_ee: "Actualizar a edición Enterprise on-premises"
upgrade_to_ee_text: "¡Vaya! Si necesita está opción, entonces ¡es un usuario experto! ¿Le importaría apoyar a los desarrolladores de código abierto convirtiéndose en cliente de la edición Enterprise?"
upgrade_to_ee_text: "Wow! If you need this add-on you are a super pro! Would you mind supporting us OpenSource developers by becoming an Enterprise edition client?"
more_information: "Más información"
nevermind: "No importa"
edit:
@ -1193,7 +1192,7 @@ es:
title: 'Usuario de marcador de posición'
title_no_ee: 'Usuario de marcador de posición (add-on solo para edición Enterprise)'
description: 'No tiene acceso al proyecto y no se enviarán correos electrónicos.'
description_no_ee: 'No tiene acceso al proyecto y no se enviarán correos electrónicos. <br>Consulte <a href="%{eeHref}" target="_blank">edición Enterprise</a>'
description_no_ee: 'Has no access to the project and no emails are sent out. <br>Check out the <a href="%{eeHref}" target="_blank">Enterprise edition</a>'
principal:
label:
name_or_email: 'Nombre o dirección de correo electrónico'

@ -657,7 +657,6 @@ et:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -657,7 +657,6 @@ eu:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -657,7 +657,6 @@ fa:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
context: 'زمینه پروژه'
work_package_belongs_to: 'این بسته کاری به %{projectname} پروژه تعلق دارد.'
click_to_switch_context: 'این بسته کاری را در آن پروژه باز کنید.'

@ -657,7 +657,6 @@ fi:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
context: 'Project context'
work_package_belongs_to: 'Tämä tehtävä kuuluu projektiin %{projectname}.'
click_to_switch_context: 'Avaa tehtävä kyseisessä projektissa.'

@ -657,7 +657,6 @@ fil:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
context: 'Kontekstong proyekto'
work_package_belongs_to: 'Itong work packge ay nabibilang sa proyekto %{projectname}.'
click_to_switch_context: 'Buksan ang work package sa proyekto na iyan.'

@ -224,19 +224,19 @@ fr:
status_label: "Statut :"
status_confirmed: "confirmé"
status_waiting: "e-mail envoyé - en attente de confirmation"
test_ee: "Essayez gratuitement la version Entreprise pendant 14 jours"
quick_overview: "Obtenez un aperçu rapide de la gestion de projets et de la collaboration en équipe avec la version Entreprise d'OpenProject."
test_ee: "Test the Enterprise edition 14 days for free"
quick_overview: "Get a quick overview of project management and team collaboration with OpenProject Enterprise edition."
upsale:
become_hero: "Devenez un héros !"
enterprise_info_html: "%{feature_title} est un <span class='spot-icon spot-icon_enterprise-addons'></span>add-on Entreprise."
enterprise_info_html: "%{feature_title} is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Veuillez passer à une offre payante pour l'activer et commencer à l'utiliser dans votre équipe."
benefits:
description: "Quels sont les avantages de l'édition Entreprise autohébergée ?"
description: "What are the benefits of the Enterprise on-premises edition?"
high_security: "Fonctionnalités de sécurité"
high_security_text: "Authentification unique (SAML, OpenID Connect, CAS), groupes LDAP."
high_security_text: "Single sign on (SAML, OpenID Connect, CAS), LDAP groups."
installation: "Assistance à l'installation"
installation_text: "Des ingénieurs logiciel expérimentés vous guident à travers le processus complet d'installation et de configuration de votre propre infrastructure."
premium_features: "Add-ons Entreprise"
premium_features: "Enterprise add-ons"
premium_features_text: "Tableaux agiles, thème et logo personnalisés, graphiques, flux de travail intelligents avec actions personnalisées, recherche en plein texte des pièces jointes de lots de travaux et champs personnalisés à choix multiples"
professional_support: "Support professionnel"
professional_support_text: "Obtenez une assitance fiable et à haut contact de la part d'ingénieurs d'assistance expérimentés qui ont une connaissance approfondie de la mise en œuvre d'OpenProject dans des environnements critiques pour l'entreprise."
@ -249,9 +249,9 @@ fr:
link_quote: "Obtenir un devis"
more_info: "Plus d'informations"
text: >
La version Entreprise d'OpenProject s'appuie sur la version Community. Elle comprend des add-ons Entreprise et un support professionnel principalement destiné aux organisations comptant plus de 10 utilisateurs gérant des projets critiques avec OpenProject.
The OpenProject Enterprise edition builds on top of the Community edition. It includes Enterprise add-ons and professional support mainly aimed at organizations with more than 10 users that manage business critical projects with OpenProject.
unlimited: "Illimité"
you_contribute: "Les développeurs aussi ont besoin de payer leurs factures. En passant à la version Entreprise, vous soutiendrez cet effort communautaire open source et contribuerez à son développement, sa maintenance et son amélioration continue."
you_contribute: "Developers need to pay their bills, too. By upgrading to the Enterprise edition, you will be supporting this open source community effort and contributing to its development, maintenance and continuous improvement."
custom_actions:
date:
specific: 'le'
@ -280,8 +280,8 @@ fr:
one: "Premier critère de tri"
two: "Second critère de tri"
three: "Troisième critère de tri"
upsale_for_more: "Les filtres avancés vous permettent également de filtrer les noms de fichiers et le contenu des pièces jointes du lot de travaux. Veuillez passer à une offre payante pour utiliser cet add-on."
upsale_link: 'Version Entreprise'
upsale_for_more: "Advanced filters allow you to also filter for file names and content of work package attachments. Please upgrade to a paid plan to use this add-on."
upsale_link: 'Enterprise edition.'
general_text_no: "non"
general_text_yes: "oui"
general_text_No: "Non"
@ -478,7 +478,7 @@ fr:
label_drop_files: "Déposez des fichiers ici pour joindre des fichiers."
label_drop_or_click_files: "Déposez des fichiers ici ou cliquez pour joindre des fichiers."
label_drop_folders_hint: Vous ne pouvez pas télécharger les dossiers en pièce jointe. S’il vous plaît sélectionnez des fichiers seuls.
label_add_attachments: "Joindre fichiers"
label_add_attachments: "Attach files"
label_formattable_attachment_hint: "Insérer des fichiers en les glissant sur ce champ, ou en les collant depuis le presse-papiers."
label_remove_file: "Supprimer %{fileName}"
label_remove_watcher: "Retirer l'observateur %{name}"
@ -625,18 +625,18 @@ fr:
global:
immediately:
title: 'Participant'
description: 'Notifications pour toute activité sur les lots de travaux vous concernant (assigné, responsable ou observateur).'
description: 'Notifications for all activities in work packages you are involved in (assignee, accountable or watcher).'
delayed:
title: 'Non participants'
description: 'Notifications additionnelles lors d''activité sur tous les projects.'
description: 'Additional notifications for activities in all projects.'
date_alerts:
title: 'Alarmes'
description: 'Notifications automatiques lorsque des dates importantes approchent pour les lots de travaux ouverts vous concernant (assigné, responsable ou observateur).'
description: 'Automatic notifications when important dates are approaching for open work packages you are involved in (assignee, accountable or watcher).'
teaser_text: 'Avec les alarmes, vous serez informé(e) à l''approche des dates de début ou de fin vous concernant afin de ne jamais manquer ou oublier une échéance importante.'
overdue: En cas de retard
project_specific:
title: 'Paramètres de notification spécifiques au projet'
description: 'Ces paramètres spécifiques au projet remplacent les paramètres par défaut ci-dessus.'
description: 'These project-specific settings override default settings above.'
add: 'Ajouter un paramètre pour le projet'
already_selected: 'Ce projet est déjà sélectionné'
remove: 'Suppression des paramètres de projet'
@ -657,7 +657,6 @@ fr:
project:
required_outside_context: >
Veuillez choisir un projet pour créer le lot de travaux et voir tous les attributs. Vous pouvez seulement sélectionner des projets ayant le type ci-dessus activé.
details_activity: 'Activité des détails du projet'
context: 'Contexte du projet'
work_package_belongs_to: 'Ce lot de travaux appartient au projet %{projectname}.'
click_to_switch_context: 'Ouvrir ce lot de travaux dans ce projet.'
@ -708,8 +707,8 @@ fr:
reset_title: "Réinitialiser la configuration du formulaire"
confirm_reset: >
Avertissement : êtes-vous sûr de vouloir réinitialiser la configuration du formulaire ? Ceci va réinitialiser les attributs à leur groupe par défaut et désactiver TOUS les champs personnalisés.
upgrade_to_ee: "Mettre à niveau vers la version Entreprise autohébergée"
upgrade_to_ee_text: "Waouh ! Si vous avez besoin de cette fonctionnalité, vous êtes un véritable pro ! Cela vous dérangerait-il de soutenir les développeurs Open Source en devenant un client de la version Entreprise ?"
upgrade_to_ee: "Upgrade to Enterprise on-premises edition"
upgrade_to_ee_text: "Wow! If you need this add-on you are a super pro! Would you mind supporting us OpenSource developers by becoming an Enterprise edition client?"
more_information: "Plus d'informations"
nevermind: "Peu importe"
edit:
@ -1047,7 +1046,7 @@ fr:
upsale:
attribute_highlighting: 'Vous avez besoin de lots de travaux qui sortent du lot ?'
relation_columns: 'Besoin de voir les relations sur la liste des lots de travaux ?'
check_out_link: 'Découvrez l’édition Entreprise.'
check_out_link: 'Check out the Enterprise edition.'
relation_filters:
filter_work_packages_by_relation_type: 'Filtrer les lots de travaux par type de relation'
tabs:
@ -1191,9 +1190,9 @@ fr:
description: 'Permissions basées sur le rôle attribué dans le projet sélectionné'
placeholder:
title: 'Utilisateur de remplacement'
title_no_ee: 'Utilisateur fictif (add-on de la version Entreprise uniquement)'
title_no_ee: 'Placeholder user (Enterprise edition only add-on)'
description: 'N''a pas d''accès au projet et aucun e-mail n''est envoyé.'
description_no_ee: 'N''a pas accès au projet et aucun courriel n''est envoyé. <br>Consultez la <a href="%{eeHref}" target="_blank">version Entreprise</a>.'
description_no_ee: 'Has no access to the project and no emails are sent out. <br>Check out the <a href="%{eeHref}" target="_blank">Enterprise edition</a>'
principal:
label:
name_or_email: 'Nom ou adresse e-mail'

@ -659,7 +659,6 @@ he:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -657,7 +657,6 @@ hi:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -658,7 +658,6 @@ hr:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -657,7 +657,6 @@ hu:
project:
required_outside_context: >
Kérjük, válasszon egy projektet a munkacsomag létrehozásához az összes attribútum megtekintéséhez. Csak olyan projekteket választhat ki, amelyek aktiválták a fenti típust.
details_activity: 'Project details activity'
context: 'Projekt kontextus'
work_package_belongs_to: 'Ez a feladatcsoport a(z) %{projectname} nevű projekthez tartozik.'
click_to_switch_context: 'Munkacsomag megnyitása a projektben.'

@ -656,7 +656,6 @@ id:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
context: 'Konteks proyek'
work_package_belongs_to: 'Paket kerja ini menjadi milik proyek %{projectname}.'
click_to_switch_context: 'Buka paket kerja ini dalam proyek tersebut.'

@ -657,7 +657,6 @@ it:
project:
required_outside_context: >
Scegli un progetto per creare una macro-attività e vederne tutti gli attributi. Puoi selezionare solo progetti che hanno il tipo sopra indicato attivato.
details_activity: 'Project details activity'
context: 'Contesto del progetto'
work_package_belongs_to: 'Questa macro-attività appartiene al progetto %{projectname}.'
click_to_switch_context: 'Apri questa macro-attività nel progetto.'

@ -657,7 +657,6 @@ ja:
project:
required_outside_context: >
作業パッケージを作成するプロジェクトを選択して、すべての属性を確認してください。 上記で有効になっているタイプのプロジェクトのみ選択できます。
details_activity: 'Project details activity'
context: 'プロジェクトのコンテキスト'
work_package_belongs_to: 'このワークパッケージは、プロジェクト %{projectname} に属しています。'
click_to_switch_context: 'このワークパッケージをそのプロジェクトで開きます。'

@ -656,7 +656,6 @@ ko:
project:
required_outside_context: >
모든 특성을 보려면 작업 패키지를 만들 프로젝트를 선택하십시오. 위 유형이 활성화된 프로젝트만 선택할 수 있습니다.
details_activity: 'Project details activity'
context: '프로젝트 컨텍스트'
work_package_belongs_to: '이 작업 패키지는 프로젝트 %{projectname}에 속합니다.'
click_to_switch_context: '해당 프로젝트에서 이 작업 패키지를 여세요.'

@ -656,7 +656,6 @@ lol:
project:
required_outside_context: >
crwdns787798:0crwdne787798:0
details_activity: 'crwdns844367:0crwdne844367:0'
context: 'crwdns787800:0crwdne787800:0'
work_package_belongs_to: 'crwdns787802:0%{projectname}crwdne787802:0'
click_to_switch_context: 'crwdns787804:0crwdne787804:0'

@ -659,7 +659,6 @@ lt:
project:
required_outside_context: >
Prašau pasirinkti projektą, kuriame turi būti sukurtas darbo paketas, kad matytumėte visus atributus. Jūs galite pasirinkti tik tuos projektus, kurie turi aukščiau nurodytą tipą.
details_activity: 'Project details activity'
context: 'Projekto kontekstas'
work_package_belongs_to: 'Šis darbų paketas priklauso projektui %{projectname}.'
click_to_switch_context: 'Atidaryti darbų paketą tame projekte.'

@ -658,7 +658,6 @@ lv:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -657,7 +657,6 @@ ne:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -657,7 +657,6 @@ nl:
project:
required_outside_context: >
Kies een project om het werkpakket in te creëren om alle attributen te zien. U kunt alleen projecten selecteren waarvan het type hierboven is geactiveerd.
details_activity: 'Project details activity'
context: 'Context van het project'
work_package_belongs_to: 'Dit werkpakket behoort tot project %{projectname}.'
click_to_switch_context: 'Open dit werkpakket in dat project.'

@ -657,7 +657,6 @@
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -659,7 +659,6 @@ pl:
project:
required_outside_context: >
Wybierz projekt, w którym chcesz utworzyć pakiet roboczy, aby zobaczyć wszystkie atrybuty. Możesz wybrać tylko projekty, które mają aktywowany powyższy typ.
details_activity: 'Project details activity'
context: 'Kontekst projektu'
work_package_belongs_to: 'Ten pakiet roboczy należy do projektu %{projectname}.'
click_to_switch_context: 'Otwórz ten pakiet roboczy w tym projekcie.'

@ -656,7 +656,6 @@ pt:
project:
required_outside_context: >
Por favor, escolha o projeto onde vai criar o pacote de trabalho para visualizar todos os atributos. Você pode selecionar somente projetos que possuam o tipo acima ativado.
details_activity: 'Project details activity'
context: 'Contexto do projeto'
work_package_belongs_to: 'Este pacote de trabalho pertence ao projeto %{projectname}.'
click_to_switch_context: 'Abra esse pacote de trabalho nesse projeto.'

@ -657,7 +657,6 @@ ro:
project:
required_outside_context: >
Vă rugăm să alegeți un proiect în care să creați pachetul de lucru pentru a vedea toate atributele. Puteți selecta numai proiectele care au tipul de mai sus activat.
details_activity: 'Project details activity'
context: 'Contextul proiectului'
work_package_belongs_to: 'Acest pachet de lucru face parte din proiectul %{projectname}.'
click_to_switch_context: 'Deschide pachetul de lucru din acel proiect.'

@ -492,7 +492,7 @@ ru:
label_wait: "Пожалуйста, подождите конфигурацию..."
label_upload_counter: "%{done} из %{count} файлов завершено"
label_validation_error: "Пакет работ не может быть сохранен из-за следующих ошибок:"
label_version_plural: "Этапы"
label_version_plural: "Версии"
label_view_has_changed: "Это представление имеет несохраненные изменения. Кликните, чтобы сохранить их."
help_texts:
show_modal: 'Показать содержимое атрибута текста справки'
@ -658,7 +658,6 @@ ru:
project:
required_outside_context: >
Пожалуйста, выберите проект для создания пакета работ для просмотра всех атрибутов. Вы можете выбрать только проекты, которые имеют вышеуказанный тип.
details_activity: 'Подробная информация о деятельности проекта'
context: 'Контекст проекта'
work_package_belongs_to: 'Этот пакет работ принадлежит проекту %{projectname}.'
click_to_switch_context: 'Открыть этот пакет работ в этом проекте.'
@ -966,8 +965,8 @@ ru:
title: "Заголовок"
type: "Тип"
updatedAt: "Обновлено"
versionName: "Этап"
version: "Этап"
versionName: "Этапы"
version: "Этапы"
default_queries:
latest_activity: "Последние действия"
created_by_me: "Создано мной"

@ -657,7 +657,6 @@ rw:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -657,7 +657,6 @@ si:
project:
required_outside_context: >
කරකර සයලග බමට වඩ පජය නණය කම සඳහයකරනන. ඔබට ත ගත හ ඉහත ආකරය සකය කර ඇත පමණ.
details_activity: 'Project details activity'
context: 'ව සනදරභය'
work_package_belongs_to: 'මම වඩ පජය වයට අයත %{projectname}.'
click_to_switch_context: 'එම වම වඩ පජය වත කරනන.'

@ -659,7 +659,6 @@ sk:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
context: 'Kontext projektu'
work_package_belongs_to: 'Tento pracovný balíček patrí k projektu %{projectname}.'
click_to_switch_context: 'Otvoriť tento pracovný balík v danom projekte.'

@ -658,7 +658,6 @@ sl:
project:
required_outside_context: >
Prosimo, izberite projekt, v katerem boste ustvarili delovni paket, če si želite ogledati vse atribute. Izberete lahko samo projekte, ki so aktivirani zgoraj.
details_activity: 'Project details activity'
context: 'Kontekst projekta'
work_package_belongs_to: 'Ta delovni paket pripada projektu %{projectname}.'
click_to_switch_context: 'Odpri ta delovni paket v tistem projektu. '

@ -656,7 +656,6 @@ sv:
project:
required_outside_context: >
Välj ett projekt för att skapa arbetspaketet för att se alla attribut. Du kan bara välja projekt som har typen ovan aktiverad.
details_activity: 'Project details activity'
context: 'Projektsammanhang'
work_package_belongs_to: 'Detta arbetspaket tillhör projektet %{projectname}.'
click_to_switch_context: 'Öppna detta arbetspaket i det projektet.'

@ -656,7 +656,6 @@ th:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -224,19 +224,19 @@ tr:
status_label: "Durum:"
status_confirmed: "onaylanmış"
status_waiting: "e-posta gönderildi - onay bekleniyor"
test_ee: "Enterprise Edition ürününü 14 gün ücretsiz test edin"
quick_overview: "OpenProject Enterprise sürümü ile proje yönetimi ve ekip işbirliğine hızlı bir genel bakış elde edin."
test_ee: "Test the Enterprise edition 14 days for free"
quick_overview: "Get a quick overview of project management and team collaboration with OpenProject Enterprise edition."
upsale:
become_hero: "Kahraman olun!"
enterprise_info_html: "%{feature_title} is an Enterprise <span class='spot-icon spot-icon_enterprise-addons'></span> add-on."
upgrade_info: "Please upgrade to a paid plan to activate and start using it in your team."
benefits:
description: "Enterprise şirket içi sürümünün avantajları nelerdir?"
description: "What are the benefits of the Enterprise on-premises edition?"
high_security: "Güvenlik özellikleri"
high_security_text: "Single sign on (SAML, OpenID Connect, CAS), LDAP groups."
installation: "Kurulum desteği"
installation_text: "Deneyimli yazılım mühendisleri, kendi altyapınızdaki eksiksiz kurulum ve kurulum sürecinde size rehberlik eder."
premium_features: "Enterprise eklentiler"
premium_features: "Enterprise add-ons"
premium_features_text: "Çevik tahtalar, özel tema ve logo, grafikler, özel eylemlerle akıllı iş akışları, iş paketi ekleri için tam metin araması ve çoklu seçim özel alanları."
professional_support: "Profesyonel destek"
professional_support_text: "İş açısından kritik ortamlarda OpenProject çalıştırma konusunda uzman bilgiye sahip kıdemli destek mühendislerinden güvenilir, yüksek dokunuşlu destek alın."
@ -249,9 +249,9 @@ tr:
link_quote: "Fiyat teklifi alın"
more_info: "Daha fazla bilgi"
text: >
OpenProject Enterprise sürümü, Community sürümünün üzerine kuruludur. OpenProject ile iş açısından kritik projeleri yöneten 10'dan fazla kullanıcısı olan kuruluşlara yönelik Kurumsal eklentiler ve profesyonel destek içerir.
The OpenProject Enterprise edition builds on top of the Community edition. It includes Enterprise add-ons and professional support mainly aimed at organizations with more than 10 users that manage business critical projects with OpenProject.
unlimited: "Sınırsız"
you_contribute: "Geliştiricilerin de faturalarını ödemeleri gerekiyor. Enterprise sürümüne yükselterek, bu açık kaynak topluluk çabasını destekleyecek ve geliştirilmesine, sürdürülmesine ve sürekli iyileştirilmesine katkıda bulunacaksınız."
you_contribute: "Developers need to pay their bills, too. By upgrading to the Enterprise edition, you will be supporting this open source community effort and contributing to its development, maintenance and continuous improvement."
custom_actions:
date:
specific: 'açık'
@ -280,7 +280,7 @@ tr:
one: "İlk sıralama ölçütü"
two: "İkinci sıralama ölçütü"
three: "Üçüncü sıralama ölçütleri"
upsale_for_more: "Gelişmiş filtreler, iş paketi eklerinin dosya adları ve içeriği için de filtre uygulamanıza olanak tanır. Bu eklentiyi kullanmak için lütfen ücretli bir plana yükseltin."
upsale_for_more: "Advanced filters allow you to also filter for file names and content of work package attachments. Please upgrade to a paid plan to use this add-on."
upsale_link: 'Enterprise sürümü'
general_text_no: "hayır"
general_text_yes: "evet"
@ -400,7 +400,7 @@ tr:
label_no_data: "Görüntülenecek veri yok"
label_no_due_date: "bitiş tarihi yok"
label_no_start_date: "başlangıç tarihi yok"
label_no_date: "tarih yok"
label_no_date: "no date"
label_no_value: "Değer yok"
label_none: "hiçbiri"
label_not_contains: "içermiyor"
@ -476,7 +476,7 @@ tr:
label_columns: "Sütunlar"
label_attachments: Ekler
label_drop_files: "Dosya eklemek için dosyaları buraya bırakın."
label_drop_or_click_files: "Dosyaları buraya bırakın veya eklemek için tıklayın"
label_drop_or_click_files: "Drop files here or click to attach files."
label_drop_folders_hint: Klasörleri ek olarak karşıya yükleyemezsiniz. Lütfen tekil dosyalar seçiniz.
label_add_attachments: "Dosyaları ekle"
label_formattable_attachment_hint: "Dosyaları bu alana sürükleyerek ekleyebilir veya panodan yapıştırabilirsiniz."
@ -549,31 +549,31 @@ tr:
commented: 'yorumlandı'
processed: 'işlem uygulandı'
prioritized: 'öncelik verildi'
dateAlert: 'Tarih uyarısı'
dateAlert: 'Date alert'
date_alerts:
milestone_date: 'Milestone date'
overdue: 'Overdue'
overdue_since: 'since %{difference_in_days}'
property_today: 'bugün'
property_today: 'is today'
property_is: 'is in %{difference_in_days}'
property_was: 'was %{difference_in_days} ago'
property_is_deleted: 'silindi'
upsale:
title: 'Tarih uyarısı'
title: 'Date alerts'
description: 'With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline.'
facets:
unread: 'okunmamış'
unread_title: 'Okunmayanları göster'
unread_title: 'Show unread'
all: 'Hepsi'
all_title: 'Tümünü göster'
center:
label_actor_and: 've'
label_actor_and: 'and'
and_more_users:
one: 've 1 diğer'
other: 've 1 diğer'
no_results:
at_all: 'Sizi ilgilendiren bir etkinlik olduğunda yeni bildirimler burada görünecektir.'
with_current_filter: 'Şu anda bu görünümde bildirim yok'
at_all: 'New notifications will appear here when there is activity that concerns you.'
with_current_filter: 'There are no notifications in this view at the moment'
mark_all_read: 'Tümünü okundu olarak işaretle'
mark_as_read: 'Okundu olarak işaretle'
text_update_date: "%{date} by"
@ -608,13 +608,13 @@ tr:
P7D: 1 hafta önce
overdue:
P1D: her gün
P3D: Her 3 günde bir
P3D: every 3 days
P7D: her hafta
reasons:
mentioned:
title: 'Bahsedilen'
description: 'Receive a notification every time someone mentions me anywhere'
assignee: 'Atanan'
assignee: 'Assignee'
responsible: 'Sorumlu'
watched: 'İzleyici'
work_package_commented: 'Tüm yeni yorumlar'
@ -624,19 +624,19 @@ tr:
work_package_scheduled: 'Tüm tarih değişiklikleri'
global:
immediately:
title: 'Katılım'
description: 'Dahil olduğunuz (vekil, sorumlu veya gözlemci) iş paketlerindeki tüm faaliyetler için bildirimler.'
title: 'Participating'
description: 'Notifications for all activities in work packages you are involved in (assignee, accountable or watcher).'
delayed:
title: 'Non-participating'
description: 'Tüm projelerdeki faaliyetler için ek bildirimler.'
description: 'Additional notifications for activities in all projects.'
date_alerts:
title: 'Tarih uyarısı'
description: 'Dahil olduğunuz (vekil, sorumlu veya gözlemci) açık iş paketleri için önemli tarihler yaklaştığında otomatik bildirimler.'
title: 'Date alerts'
description: 'Automatic notifications when important dates are approaching for open work packages you are involved in (assignee, accountable or watcher).'
teaser_text: 'With date alerts, you will be notified of upcoming start or finish dates so that you never miss or forget an important deadline.'
overdue: When overdue
project_specific:
title: 'Projeye özel bildirim ayarları'
description: 'Bu projeye özgü ayarlar, yukarıdaki varsayılan ayarları geçersiz kılar.'
title: 'Project-specific notification settings'
description: 'These project-specific settings override default settings above.'
add: 'Proje için ayar ekle'
already_selected: 'Bu proje zaten seçildi'
remove: 'Proje ayarlarını sil'
@ -657,7 +657,6 @@ tr:
project:
required_outside_context: >
Lütfen tüm özellikleri görmek için çalışma paketini oluşturacak bir proje seçin. Yalnızca yukarıdaki türden etkin olan projeleri seçebilirsiniz.
details_activity: 'Proje ayrıntıları etkinliği'
context: 'Proje içeriği'
work_package_belongs_to: 'Bu iş paketi %{projectname} projesine ait.'
click_to_switch_context: 'Bu iş paketini o projede aç.'
@ -673,8 +672,8 @@ tr:
daily:
add_time: 'Süre ekle'
enable: 'Günlük email hatırlatıcılarını etkinleştir'
explanation: 'Bu hatırlatıcıları yalnızca okunmamış bildirimler için ve yalnızca sizin belirlediğiniz saatlerde alacaksınız. %{no_time_zone}'
no_time_zone: 'Hesabınız için bir saat dilimi yapılandırana kadar, saatler UTC olarak yorumlanacaktır.'
explanation: 'You will receive these reminders only for unread notifications and only at hours you specify. %{no_time_zone}'
no_time_zone: 'Until you configure a time zone for your account, the times will be interpreted to be in UTC.'
time_label: 'Zaman %{counter}:'
title: 'Okunmamış bildirimler için bana günlük e-posta hatırlatıcıları gönder'
workdays:
@ -683,11 +682,11 @@ tr:
title: 'Bana email hatırlatıcısı gönder'
mentioned: 'Immediately when someone @mentions me'
alerts:
title: 'Diğer öğeler için e-posta uyarıları (iş paketleri olmayanlar)'
title: 'Email alerts for other items (that are not work packages)'
explanation: >
Bildirimler bugün iş paketleri ile sınırlıdır. Bildirimlere eklenene kadar bu etkinlikler için e-posta uyarıları almaya devam etmeyi seçebilirsiniz:
Notifications today are limited to work packages. You can choose to continue receiving email alerts for these events until they are included in notifications:
news_added: 'Haberler eklendi'
news_commented: 'Bir habere yorum yapın'
news_commented: 'Comment on a news item'
document_added: 'Belgeler eklendi'
forum_messages: 'Yeni forum mesajları'
wiki_page_added: 'Viki sayfası eklendi'
@ -708,8 +707,8 @@ tr:
reset_title: "Form ayarlarlarını sıfırlayın"
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 on-premises edition'a yükseltin"
upgrade_to_ee_text: "Vay! Bu eklentiye ihtiyacınız varsa, siz bir süper profesyonelsiniz! Enterprise sürümü müşterisi olarak biz OpenSource geliştiricilerini destekler misiniz?"
upgrade_to_ee: "Upgrade to Enterprise on-premises edition"
upgrade_to_ee_text: "Wow! If you need this add-on you are a super pro! Would you mind supporting us OpenSource developers by becoming an Enterprise edition client?"
more_information: "Daha fazla bilgi"
nevermind: "Boşver"
edit:
@ -885,11 +884,11 @@ tr:
comment_updated: "Yorum başarıyla güncelleştirildi."
confirm_edit_cancel: "İş paketini düzenlemeyi iptal etmek istediğinizden emin misiniz?"
datepicker_modal:
automatically_scheduled_parent: "Otomatik olarak planlandı. Tarihler ilişkilerden türetilir."
manually_scheduled: "Manuel planlama etkinleştirildi, tüm ilişkiler göz ardı edildi."
start_date_limited_by_relations: "Kullanılabilir başlangıç ve bitiş tarihleri ilişkilerle sınırlıdır."
changing_dates_affects_follow_relations: "Bu tarihlerin değiştirilmesi, ilgili iş paketlerinin tarihlerini etkileyecektir."
click_on_show_relations_to_open_gantt: 'GANTT''ye genel bakış için "%{button_name}" üzerine tıklayın.'
automatically_scheduled_parent: "Automatically scheduled. Dates are derived from relations."
manually_scheduled: "Manual scheduling enabled, all relations ignored."
start_date_limited_by_relations: "Available start and finish dates are limited by relations."
changing_dates_affects_follow_relations: "Changing these dates will affect dates of related work packages."
click_on_show_relations_to_open_gantt: 'Click on "%{button_name}" for GANTT overview.'
show_relations: 'İlişkileri göster'
ignore_non_working_days:
title: 'Sadece iş günleri'
@ -913,7 +912,7 @@ tr:
message_work_package_status_blocked: "İş paketi durumu, kapalı durum ve kapalı sürüm tahsis edildiğinden dolayı yazılamaz."
placeholder_filter_by_text: "Konu, açıklama, yorumlar, ..."
filters:
title: 'İş paketlerini filtrele'
title: 'Filter work packages'
inline_create:
title: 'Listeden yeni bir iş paketi eklemek için buraya tıklayınız'
create:
@ -937,7 +936,7 @@ tr:
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ş.
limited_results: Manuel sıralama modunda yalnızca %{count} iş paketi gösterilebilir. Lütfen filtreleyerek sonuçları azaltın veya otomatik sıralamaya geçin.
limited_results: Only %{count} work packages can be shown in manual sorting mode. Please reduce the results by filtering, or switch to automatic sorting.
property_groups:
details: "Detaylar"
people: "Kişiler"
@ -1047,7 +1046,7 @@ tr:
upsale:
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ümünü inceleyin.'
check_out_link: 'Check out the Enterprise edition.'
relation_filters:
filter_work_packages_by_relation_type: 'İş paketlerini ilişki türüne göre filtreleme'
tabs:
@ -1056,7 +1055,7 @@ tr:
relations: İlişkiler
watchers: Takip Edenler
files: Dosyalar
files_tab_migration_help: 'Artık yeni sekme aracılığıyla iş paketlerine dosya ekleyebilirsiniz:'
files_tab_migration_help: 'You can now attach files to work packages via the new tab:'
time_relative:
days: "gün"
weeks: "hafta"
@ -1093,8 +1092,8 @@ tr:
text: 'Bu işlemi gerçekleştirmek istediğinizden emin misiniz?'
destroy_work_package:
title: "%{label} için silme işlimini onaylayın"
single_text: "Bu iş paketini silmek istediğinize emin misiniz?"
bulk_text: "Aşağıdaki %{label}'i silmek istediğinizden emin misiniz?"
single_text: "Are you sure you want to delete the work package"
bulk_text: "Are you sure you want to delete the following %{label}?"
has_children: "İş paketi %{childUnits} alt paketlerine sahip:"
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."
@ -1191,9 +1190,9 @@ tr:
description: 'Seçilen projede atanan role dayalı izinler'
placeholder:
title: 'Yer tutucu kullanıcı'
title_no_ee: 'Yer tutucu kullanıcı (yalnızca Enterprise sürümü eklentisi)'
title_no_ee: 'Placeholder user (Enterprise edition only add-on)'
description: 'Projeye erişimi yoktur ve e-posta gönderilmez.'
description_no_ee: 'Projeye erişimi yoktur ve e-posta gönderilmez. <br><a href="%{eeHref}" target="_blank">Enterprise sürümünü</a> inceleyin'
description_no_ee: 'Has no access to the project and no emails are sent out. <br>Check out the <a href="%{eeHref}" target="_blank">Enterprise edition</a>'
principal:
label:
name_or_email: 'İsim veya e-posta adresi'
@ -1217,7 +1216,7 @@ tr:
next_button: 'Sonraki'
message:
label: 'Davet Mesajı'
description: 'Kullanıcıya, buradan kişisel bir mesaj ekleyebileceğiniz bir e-posta göndereceğiz. Davet için bir açıklama yararlı olabilir veya belki de başlamalarına yardımcı olacak projeyle ilgili bir parça bilgi olabilir.'
description: 'We will send an email to the user, to which you can add a personal message here. An explanation for the invitation could be useful, or prehaps a bit of information regarding the project to help them get started.'
next_button: 'Sonraki'
summary:
next_button: 'Davet gönder'
@ -1237,9 +1236,9 @@ tr:
all: 'Tüm projeler'
selected: 'Sadece seçilen'
search_placeholder: 'Proje ara...'
include_subprojects: 'Tüm alt projeleri dahil et'
include_subprojects: 'Include all sub-projects'
tooltip:
include_all_selected: 'Tüm alt projeleri dahil et etkinleştirildiğinden, proje zaten dahil edilmiştir.'
include_all_selected: 'Project already included since Include all sub-projects is enabled.'
current_project: 'Bu, içinde bulunduğunuz mevcut projedir.'
does_not_match_search: 'Proje arama kriterleriyle eşleşmiyor.'
no_results: 'Arama kriterleriniz ile eşleşen proje yok'

@ -659,7 +659,6 @@ uk:
project:
required_outside_context: >
Виберіть проект, щоб створити робочий пакет, щоб побачити всі атрибути. Ви можете вибирати лише проекти, які мають вказаний вище тип активації.
details_activity: 'Project details activity'
context: 'Контекст проекту'
work_package_belongs_to: 'Цей робочий пакет належить до проекту %{projectname}'
click_to_switch_context: 'Відкрийте цей робочий пакет у цьому проекті.'

@ -655,7 +655,6 @@ vi:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
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.'

@ -655,7 +655,6 @@ zh-TW:
project:
required_outside_context: >
Please choose a project to create the work package in to see all attributes. You can only select projects which have the type above activated.
details_activity: 'Project details activity'
context: '專案內容'
work_package_belongs_to: '此工作項目屬於專案 %{projectname}。'
click_to_switch_context: '在該專案中打開此工作項目。'

@ -1779,7 +1779,6 @@ ko:
label_product_version: "제품 버전"
label_professional_support: "전문적 지원"
label_profile: "프로필"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "전체 프로젝트 수"
label_project_copy_notifications: "프로젝트 복사 중에 이메일 알림 보내기"
@ -2941,9 +2940,6 @@ ko:
days:
working: "%{day}은(는) 이제 근무일입니다."
non_working: "%{day}은(는) 이제 휴무일입니다."
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "미리 볼 내용 없음"
api_v3:
attributes:

@ -1774,7 +1774,6 @@ lol:
label_product_version: "crwdns497535:0crwdne497535:0"
label_professional_support: "crwdns497537:0crwdne497537:0"
label_profile: "crwdns497539:0crwdne497539:0"
label_project_activity: "crwdns844365:0crwdne844365:0"
label_project_attribute_plural: "crwdns842633:0crwdne842633:0"
label_project_count: "crwdns497543:0crwdne497543:0"
label_project_copy_notifications: "crwdns497545:0crwdne497545:0"
@ -2934,9 +2933,6 @@ lol:
days:
working: "crwdns834174:0%{day}crwdne834174:0"
non_working: "crwdns834176:0%{day}crwdne834176:0"
dates:
working: "crwdns844503:0%{date}crwdne844503:0"
non_working: "crwdns844505:0%{date}crwdne844505:0"
nothing_to_preview: "crwdns499773:0crwdne499773:0"
api_v3:
attributes:

@ -1828,7 +1828,6 @@ lt:
label_product_version: "Produkto versija"
label_professional_support: "Profesionali pagalba"
label_profile: "Profilis"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Bendras projektų skaičius"
label_project_copy_notifications: "Vykstant projekto kopijavimui siųsti pranešimus į el. paštą"
@ -3002,9 +3001,6 @@ lt:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nėra ką rodyti"
api_v3:
attributes:

@ -1813,7 +1813,6 @@ lv:
label_product_version: "Product version"
label_professional_support: "Profesionāls atbalsts"
label_profile: "Profils"
label_project_activity: "Project activity"
label_project_attribute_plural: "Project attributes"
label_project_count: "Kopējais projektu skaits"
label_project_copy_notifications: "Send email notifications during the project copy"
@ -2982,9 +2981,6 @@ lv:
days:
working: "%{day} is now working"
non_working: "%{day} is now non-working"
dates:
working: "%{date} is now working"
non_working: "%{date} is now non-working"
nothing_to_preview: "Nothing to preview"
api_v3:
attributes:

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save