Merge remote-tracking branch 'origin/dev' into implementation/49582-build-the-modal-dialog-to-manage-members-of-a-work-package-using-hotwire-+-stimulus

This commit is contained in:
Henriette Darge
2023-09-27 11:32:45 +02:00
348 changed files with 9672 additions and 4184 deletions
+1 -1
View File
@@ -343,7 +343,7 @@ ij_json_keep_indents_on_empty_lines = false
ij_json_keep_line_breaks = true
ij_json_space_after_colon = true
ij_json_space_after_comma = true
ij_json_space_before_colon = true
ij_json_space_before_colon = false
ij_json_space_before_comma = false
ij_json_spaces_within_braces = false
ij_json_spaces_within_brackets = false
+2
View File
@@ -1,6 +1,7 @@
require:
- rubocop-rails
- rubocop-rspec
- ./lib_static/rubocop/cop/open_project/add_preview_for_view_component.rb
- ./lib_static/rubocop/cop/open_project/no_do_end_block_with_rspec_capybara_matcher_in_expect.rb
- ./lib_static/rubocop/cop/open_project/use_service_result_factory_methods.rb
- rubocop-capybara
@@ -240,6 +241,7 @@ RSpec/ContextWording:
Prefixes:
- and
- as
- even
- for
- having
- if
+3 -3
View File
@@ -208,7 +208,7 @@ gem "appsignal", "~> 3.0", require: false
gem 'view_component'
# Lookbook
gem 'lookbook', '~> 2.0.5'
gem 'lookbook', '~> 2.1.0'
# Require factory_bot for usage with openproject plugins testing
gem 'factory_bot', '~> 6.2.0', require: false
@@ -251,7 +251,7 @@ group :test do
gem 'capybara', '~> 3.39.0'
gem 'capybara-screenshot', '~> 1.0.17'
gem 'cuprite', '~> 0.14.3'
gem 'selenium-webdriver', '~> 4.12.0'
gem 'selenium-webdriver', '~> 4.13.0'
gem 'fuubar', '~> 2.5.0'
gem 'timecop', '~> 0.9.0'
@@ -363,6 +363,6 @@ gemfiles.each do |file|
send(:eval_gemfile, file) if File.readable?(file)
end
gem "openproject-primer_view_components", '~>0.10.0'
gem "openproject-primer_view_components", '~>0.11.0'
gem "openproject-octicons", '~>19.7.0'
gem "openproject-octicons_helper", '~>19.7.0'
+23 -23
View File
@@ -187,7 +187,7 @@ PATH
remote: modules/two_factor_authentication
specs:
openproject-two_factor_authentication (1.0.0)
aws-sdk-sns (~> 1.65.0)
aws-sdk-sns (~> 1.66.0)
messagebird-rest (~> 1.4.2)
rotp (~> 6.1)
@@ -310,8 +310,8 @@ GEM
awesome_nested_set (3.5.0)
activerecord (>= 4.0.0, < 7.1)
aws-eventstream (1.2.0)
aws-partitions (1.826.0)
aws-sdk-core (3.182.0)
aws-partitions (1.828.0)
aws-sdk-core (3.183.1)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
@@ -319,11 +319,11 @@ GEM
aws-sdk-kms (1.71.0)
aws-sdk-core (~> 3, >= 3.177.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.135.0)
aws-sdk-s3 (1.136.0)
aws-sdk-core (~> 3, >= 3.181.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.6)
aws-sdk-sns (1.65.0)
aws-sdk-sns (1.66.0)
aws-sdk-core (~> 3, >= 3.177.0)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.6.0)
@@ -385,7 +385,7 @@ GEM
capybara (~> 3.0)
ferrum (~> 0.13.0)
daemons (1.4.1)
dalli (3.2.5)
dalli (3.2.6)
date (3.3.3)
date_validator (0.12.0)
activemodel (>= 3)
@@ -476,7 +476,7 @@ GEM
concurrent-ruby (~> 1.1)
webrick (~> 1.7)
websocket-driver (>= 0.6, < 0.8)
ffi (1.15.5)
ffi (1.16.2)
flamegraph (0.9.5)
fog-aws (3.19.0)
fog-core (~> 2.1)
@@ -520,9 +520,9 @@ GEM
retriable (>= 2.0, < 4.a)
rexml
webrick
google-apis-gmail_v1 (0.30.0)
google-apis-gmail_v1 (0.32.0)
google-apis-core (>= 0.11.0, < 2.a)
googleauth (1.8.0)
googleauth (1.8.1)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
multi_json (~> 1.11)
@@ -573,7 +573,7 @@ GEM
bindata
faraday (~> 2.0)
faraday-follow_redirects
json-schema (4.0.0)
json-schema (4.1.1)
addressable (>= 2.8)
json_schemer (2.0.0)
hana (~> 1.3)
@@ -588,7 +588,7 @@ GEM
language_server-protocol (3.17.0.3)
launchy (2.5.2)
addressable (~> 2.8)
lefthook (1.4.11)
lefthook (1.5.0)
letter_opener (1.8.1)
launchy (>= 2.2, < 3)
listen (3.8.0)
@@ -606,7 +606,7 @@ GEM
loofah (2.21.3)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
lookbook (2.0.5)
lookbook (2.1.1)
activemodel
css_parser
htmlbeautifier (~> 1.3)
@@ -650,7 +650,7 @@ GEM
net-protocol
net-protocol (0.2.1)
timeout
net-smtp (0.3.3)
net-smtp (0.4.0)
net-protocol
nio4r (2.5.9)
nokogiri (1.15.4)
@@ -680,7 +680,7 @@ GEM
actionview
openproject-octicons (= 19.7.0)
railties
openproject-primer_view_components (0.10.0)
openproject-primer_view_components (0.11.0)
actionview (>= 5.0.0)
activesupport (>= 5.0.0)
openproject-octicons (>= 19.7.0)
@@ -870,9 +870,9 @@ GEM
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.29.0)
parser (>= 3.2.1.0)
rubocop-capybara (2.18.0)
rubocop-capybara (2.19.0)
rubocop (~> 1.41)
rubocop-factory_bot (2.23.1)
rubocop-factory_bot (2.24.0)
rubocop (~> 1.33)
rubocop-performance (1.19.1)
rubocop (>= 1.7.0, < 2.0)
@@ -881,7 +881,7 @@ GEM
activesupport (>= 4.2.0)
rack (>= 1.1)
rubocop (>= 1.33.0, < 2.0)
rubocop-rspec (2.24.0)
rubocop-rspec (2.24.1)
rubocop (~> 1.33)
rubocop-capybara (~> 2.17)
rubocop-factory_bot (~> 2.22)
@@ -904,7 +904,7 @@ GEM
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
secure_headers (6.5.0)
selenium-webdriver (4.12.0)
selenium-webdriver (4.13.1)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
@@ -996,7 +996,7 @@ GEM
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
webrick (1.8.1)
websocket (1.2.9)
websocket (1.2.10)
websocket-driver (0.7.6)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
@@ -1006,7 +1006,7 @@ GEM
xpath (3.2.0)
nokogiri (~> 1.8)
yard (0.9.34)
zeitwerk (2.6.11)
zeitwerk (2.6.12)
PLATFORMS
ruby
@@ -1083,7 +1083,7 @@ DEPENDENCIES
letter_opener
listen (~> 3.8.0)
lograge (~> 0.13.0)
lookbook (~> 2.0.5)
lookbook (~> 2.1.0)
mail (= 2.8.1)
matrix (~> 0.4.2)
md_to_pdf!
@@ -1114,7 +1114,7 @@ DEPENDENCIES
openproject-octicons (~> 19.7.0)
openproject-octicons_helper (~> 19.7.0)
openproject-openid_connect!
openproject-primer_view_components (~> 0.10.0)
openproject-primer_view_components (~> 0.11.0)
openproject-recaptcha!
openproject-reporting!
openproject-storages!
@@ -1167,7 +1167,7 @@ DEPENDENCIES
rubytree (~> 2.0.0)
sanitize (~> 6.1.0)
secure_headers (~> 6.5.0)
selenium-webdriver (~> 4.12.0)
selenium-webdriver (~> 4.13.0)
semantic (~> 1.6.1)
shoulda-context (~> 2.0)
shoulda-matchers (~> 5.0)
@@ -32,6 +32,10 @@ module OpPrimer
render(OpPrimer::FlexLayoutComponent.new(**), &)
end
def grid_layout(css_class, **, &)
render(OpPrimer::GridLayoutComponent.new(css_class, **), &)
end
def box_collection(**, &)
render(OpPrimer::BoxCollectionComponent.new(**), &)
end
@@ -0,0 +1,40 @@
<%#-- copyright
OpenProject is an open source project management software.
Copyright (C) 2012-2023 the OpenProject GmbH
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 3.
OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
Copyright (C) 2006-2013 Jean-Philippe Lang
Copyright (C) 2010-2013 the ChiliProject Team
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
See COPYRIGHT and LICENSE files for more details.
++#%>
<% if @system_arguments[:tag] %>
<%= render Primer::BaseComponent.new(**@system_arguments) do %>
<% areas.each do |row| %>
<%= row %>
<% end %>
<% end %>
<% else %>
<% areas.each do |row| %>
<%= row %>
<% end %>
<% end %>
@@ -0,0 +1,58 @@
#-- copyright
# OpenProject is an open source project management software.
# Copyright (C) 2012-2023 the OpenProject GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2013 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# See COPYRIGHT and LICENSE files for more details.
#++
module OpPrimer
class GridLayoutComponent < Primer::Component
attr_reader :css_class
def initialize(css_class, **args)
super
@css_class = css_class
@system_arguments = args
@system_arguments[:classes] = class_names(
@system_arguments[:classes],
css_class
)
end
renders_many :areas, lambda { |area_name, component = ::Primer::BaseComponent, **sysargs, &block|
styles = [
"grid-area: #{area_name}",
sysargs[:justify_self] ? "justify-self: #{sysargs[:justify_self]}" : nil,
]
sysargs[:style] = join_style_arguments(sysargs[:style], *styles)
sysargs[:classes] = class_names(
sysargs[:classes],
"#{css_class}--#{area_name}"
)
render(component.new(**sysargs), &block)
}
end
end
+18 -4
View File
@@ -30,17 +30,31 @@ module Users
class UpdateContract < BaseContract
validate :user_allowed_to_update
private
##
# Users can only be updated when
# - the user is editing herself
# - the user has the global manage_user permission
# - the user is an admin
# - the user has the global manage_user permission and is not editing an admin
def allowed_to_update?
editing_themself? || can_manage_user?
end
private
def user_allowed_to_update
unless user == model || user.allowed_to_globally?(:manage_user)
unless allowed_to_update?
errors.add :base, :error_unauthorized
end
end
def editing_themself?
user == model
end
# Only admins can edit other admins
# Only users with manage_user permission can edit other users
def can_manage_user?
user.allowed_to_globally?(:manage_user) && (user.admin? || !model.admin?)
end
end
end
+32 -3
View File
@@ -30,9 +30,12 @@ class CustomStylesController < ApplicationController
layout 'admin'
menu_item :custom_style
before_action :require_admin, except: %i[logo_download export_logo_download favicon_download touch_icon_download]
before_action :require_ee_token, except: %i[upsale logo_download export_logo_download favicon_download touch_icon_download]
skip_before_action :check_if_login_required, only: %i[logo_download export_logo_download favicon_download touch_icon_download]
before_action :require_admin,
except: %i[logo_download export_logo_download export_cover_download favicon_download touch_icon_download]
before_action :require_ee_token,
except: %i[upsale logo_download export_logo_download export_cover_download favicon_download touch_icon_download]
skip_before_action :check_if_login_required,
only: %i[logo_download export_logo_download export_cover_download favicon_download touch_icon_download]
def show
@custom_style = CustomStyle.current || CustomStyle.new
@@ -62,6 +65,22 @@ class CustomStylesController < ApplicationController
end
end
def update_export_cover_text_color
color = params[:export_cover_text_color]
@custom_style = CustomStyle.current
if @custom_style.nil?
return render_404
end
color_hexcode_regex = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/
if !color.nil? && color.match(color_hexcode_regex)
@custom_style.export_cover_text_color = color
@custom_style.save
end
redirect_to custom_style_path
end
def logo_download
file_download(:logo_path)
end
@@ -70,6 +89,10 @@ class CustomStylesController < ApplicationController
file_download(:export_logo_path)
end
def export_cover_download
file_download(:export_cover_path)
end
def favicon_download
file_download(:favicon_path)
end
@@ -86,6 +109,10 @@ class CustomStylesController < ApplicationController
file_delete(:remove_export_logo)
end
def export_cover_delete
file_delete(:remove_export_cover)
end
def favicon_delete
file_delete(:remove_favicon)
end
@@ -151,6 +178,8 @@ class CustomStylesController < ApplicationController
def custom_style_params
params.require(:custom_style).permit(:logo, :remove_logo,
:export_logo, :remove_export_logo,
:export_cover, :remove_export_cover,
:export_cover_text_color,
:favicon, :remove_favicon,
:touch_icon, :remove_touch_icon)
end
@@ -50,9 +50,14 @@ class PlaceholderUsersController < ApplicationController
end
def show
# show projects based on current user visibility
@memberships = @placeholder_user.memberships
.visible(current_user)
# show projects based on current user visibility.
# But don't simply concatenate the .visible scope to the memberships
# as .memberships has an include and an order which for whatever reason
# also gets applied to the Project.allowed_to parts concatenated by a UNION
# and an order inside a UNION is not allowed in postgres.
@memberships = @placeholder_user
.memberships
.where(id: Member.visible(current_user))
respond_to do |format|
format.html { render layout: 'no_menu' }
+3
View File
@@ -33,6 +33,9 @@ class RolesController < ApplicationController
before_action :require_admin, except: [:autocomplete_for_role]
menu_item :roles, except: :report
menu_item :permissions_report, only: :report
def index
@roles = roles_scope
.page(page_param)
+7 -3
View File
@@ -65,10 +65,14 @@ class UsersController < ApplicationController
end
def show
# show projects based on current user visibility
# show projects based on current user visibility.
# But don't simply concatenate the .visible scope to the memberships
# as .memberships has an include and an order which for whatever reason
# also gets applied to the Project.allowed_to parts concatenated by a UNION
# and an order inside a UNION is not allowed in postgres.
@memberships = @user.memberships
.where.not(project_id: nil)
.visible(current_user)
.where(id: Member.visible(current_user))
if can_show_user?
@events = events
@@ -152,7 +156,7 @@ class UsersController < ApplicationController
def change_status_info
@status_change = params[:change_action].to_sym
return render_400 unless %i(activate lock unlock).include? @status_change
render_400 unless %i(activate lock unlock).include? @status_change
end
def change_status
-4
View File
@@ -56,8 +56,4 @@ module OAuthHelper
tokens = ::Doorkeeper::AccessToken.active_for(user).includes(:application)
tokens.group_by(&:application)
end
def oauth_client_redirect_uri(oauth_client)
"#{request.protocol}#{request.host_with_port}/oauth_clients/#{oauth_client.client_id}/callback"
end
end
+1 -1
View File
@@ -43,7 +43,7 @@ module TabsHelper
# Render tabs from the ui/extensible tabs manager
def render_extensible_tabs(key, params = {})
tabs = ::OpenProject::Ui::ExtensibleTabs.enabled_tabs(key).map do |tab|
tabs = ::OpenProject::Ui::ExtensibleTabs.enabled_tabs(key, params.reverse_merge(current_user:)).map do |tab|
path = tab[:path].respond_to?(:call) ? instance_exec(params, &tab[:path]) : tab[:path]
tab.dup.merge(path:)
end
+2 -1
View File
@@ -1,6 +1,7 @@
class CustomStyle < ApplicationRecord
mount_uploader :logo, OpenProject::Configuration.file_uploader
mount_uploader :export_logo, OpenProject::Configuration.file_uploader
mount_uploader :export_cover, OpenProject::Configuration.file_uploader
mount_uploader :favicon, OpenProject::Configuration.file_uploader
mount_uploader :touch_icon, OpenProject::Configuration.file_uploader
@@ -21,7 +22,7 @@ class CustomStyle < ApplicationRecord
updated_at.to_i
end
%i(favicon touch_icon export_logo logo).each do |name|
%i(favicon touch_icon export_logo export_cover logo).each do |name|
define_method "#{name}_path" do
image = send(name)
+4 -4
View File
@@ -43,16 +43,16 @@ module Members::Scopes
private
def visible_for_non_admins(user)
view_members = Project.where(id: Project.allowed_to(user, :view_members))
manage_members = Project.where(id: Project.allowed_to(user, :manage_members))
view_members = Project.allowed_to(user, :view_members)
manage_members = Project.allowed_to(user, :manage_members)
project_scope = view_members.or(manage_members)
Member.where(project_id: project_scope.select(:id))
where(project_id: project_scope.select(:id))
end
def visible_for_admins
Member.all
all
end
end
end
+4
View File
@@ -28,4 +28,8 @@
class OAuthClient < ApplicationRecord
belongs_to :integration, polymorphic: true
def redirect_uri
File.join(OpenProject::Application.root_url, 'oauth_clients', client_id, 'callback')
end
end
+3 -6
View File
@@ -150,6 +150,9 @@ class Project < ApplicationRecord
friendly_id :identifier, use: :finders
include ::Scopes::Scoped
scopes :allowed_to
scope :has_module, ->(mod) {
where(["#{Project.table_name}.id IN (SELECT em.project_id FROM #{EnabledModule.table_name} em WHERE em.name=?)", mod.to_s])
}
@@ -208,12 +211,6 @@ class Project < ApplicationRecord
allowed_to(user, :view_project)
end
# Returns a ActiveRecord::Relation to find all projects for which
# +user+ has the given +permission+
def self.allowed_to(user, permission)
Authorization.projects(permission, user)
end
# Returns a :conditions SQL string that can be used to find the issues associated with this project.
#
# Examples:
+172
View File
@@ -0,0 +1,172 @@
# -- copyright
# OpenProject is an open source project management software.
# Copyright (C) 2010-2023 the OpenProject GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2013 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# See COPYRIGHT and LICENSE files for more details.
# ++
module Projects::Scopes
module AllowedTo
extend ActiveSupport::Concern
class_methods do
# Returns an ActiveRecord::Relation to find all projects for which
# +user+ has the given +permission+
def allowed_to(user, permission)
permissions = allowed_to_permissions(permission)
if user.admin? && permissions.all?(&:grant_to_admin?)
where(id: allowed_to_admin_relation(permissions))
elsif user.anonymous?
where(id: allowed_to_non_member_relation(user, permissions))
else
where(arel_table[:id].in(allowed_to_member_relation(user, permissions)
.arel
.union(:all, allowed_to_non_member_relation(user, permissions).arel)))
end
end
private
def allowed_to_admin_relation(permissions)
joins(allowed_to_enabled_module_join(permissions))
.where(arel_table[:active].eq(true))
end
def allowed_to_non_member_relation(user, permissions)
joins(allowed_to_enabled_module_join(permissions))
.joins(allowed_to_builtin_roles_in_active_project_join(user))
.joins(allowed_to_role_permission_join(permissions))
.select(:id)
end
def allowed_to_member_relation(user, permissions)
Member
.joins(allowed_to_member_in_active_project_join(user))
.joins(allowed_to_enabled_module_join(permissions))
.joins(:roles, :member_roles)
.joins(allowed_to_role_permission_join(permissions))
.select('projects.id')
end
def allowed_to_enabled_module_join(permissions)
project_module = permissions.filter_map(&:project_module).uniq
enabled_module_table = EnabledModule.arel_table
if project_module.any?
arel_table.join(enabled_module_table, Arel::Nodes::InnerJoin)
.on(arel_table[:id].eq(enabled_module_table[:project_id])
.and(enabled_module_table[:name].in(project_module))
.and(arel_table[:active].eq(true)))
.join_sources
end
end
def allowed_to_role_permission_join(permissions)
return if permissions.all?(&:public?)
role_permissions_table = RolePermission.arel_table
enabled_modules_table = EnabledModule.arel_table
roles_table = Role.arel_table
condition = permissions.inject(Arel::Nodes::False.new) do |or_condition, permission|
permission_condition = role_permissions_table[:permission].eq(permission.name)
if permission.project_module.present?
permission_condition = permission_condition.and(enabled_modules_table[:name].eq(permission.project_module))
end
or_condition.or(permission_condition)
end
arel_table
.join(role_permissions_table, Arel::Nodes::InnerJoin)
.on(roles_table[:id].eq(role_permissions_table[:role_id])
.and(condition))
.join_sources
end
def allowed_to_permissions(permission)
if permission.is_a?(Hash)
OpenProject::AccessControl.allow_actions(permission)
else
[OpenProject::AccessControl.permission(permission)].compact
end
end
def allowed_to_members_condition(user)
members_table = Member.arel_table
members_table[:project_id].eq(arel_table[:id])
.and(members_table[:user_id].eq(user.id))
.and(members_table[:entity_type].eq(nil))
.and(members_table[:entity_id].eq(nil))
end
def allowed_to_builtin_roles_in_active_project_join(user)
condition = allowed_to_built_roles_in_active_project_condition(user)
if user.logged?
condition = condition.and(allowed_to_no_member_exists_condition(user))
end
roles_table = Role.arel_table
arel_table.join(roles_table)
.on(condition)
.join_sources
end
def allowed_to_member_in_active_project_join(user)
arel_table.join(arel_table)
.on(arel_table[:active].eq(true)
.and(allowed_to_members_condition(user)))
.join_sources
end
def allowed_to_built_roles_in_active_project_condition(user)
builtin = if user.logged?
Role::BUILTIN_NON_MEMBER
else
Role::BUILTIN_ANONYMOUS
end
roles_table = Role.arel_table
roles_table[:builtin].eq(builtin)
.and(arel_table[:active])
.and(arel_table[:public])
end
def allowed_to_no_member_exists_condition(user)
Member
.select(1)
.where(allowed_to_members_condition(user))
.arel
.exists
.not
end
end
end
end
+1
View File
@@ -31,6 +31,7 @@ module Queries::Filters
list: Queries::Filters::Strategies::List,
list_all: Queries::Filters::Strategies::ListAll,
list_optional: Queries::Filters::Strategies::ListOptional,
shared_with_user_list_optional: Queries::Filters::Strategies::WorkPackages::SharedWithUser::ListOptional,
integer: Queries::Filters::Strategies::Integer,
date: Queries::Filters::Strategies::Date,
datetime_past: Queries::Filters::Strategies::DateTimePast,
@@ -28,7 +28,7 @@
module Queries::Filters::Strategies
class Date < Queries::Filters::Strategies::Integer
self.supported_operators = ['<t+', '>t+', 't+', 't', 'w', '>t-', '<t-', 't-', '=d', '<>d']
self.supported_operators = ['<t+', '>t+', 't+', 't', 'w', '>t-', '<t-', 't-', '=d', '<>d', '!*']
self.default_operator = 't'
def validate
@@ -0,0 +1,45 @@
# -- copyright
# OpenProject is an open source project management software.
# Copyright (C) 2010-2023 the OpenProject GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2013 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# See COPYRIGHT and LICENSE files for more details.
# ++
module Queries::Filters::Strategies
module WorkPackages
module SharedWithUser
class ListOptional < ::Queries::Filters::Strategies::List
self.supported_operators = %w[= &= *]
def operator_map
super.dup.tap do |super_value|
super_value['='] = ::Queries::Operators::EqualsOr
super_value['&='] = ::Queries::Operators::WorkPackages::SharedWithUser::EqualsAll
super_value['*'] = ::Queries::Operators::WorkPackages::SharedWithUser::Any
end
end
end
end
end
end
@@ -0,0 +1,37 @@
# -- copyright
# OpenProject is an open source project management software.
# Copyright (C) 2010-2023 the OpenProject GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2013 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# See COPYRIGHT and LICENSE files for more details.
# ++
module Queries::Operators
module WorkPackages
module SharedWithUser
class Any < ::Queries::Operators::All
label 'operator_shared_with_user_any'
end
end
end
end
@@ -0,0 +1,40 @@
# frozen_string_literal: true
# -- copyright
# OpenProject is an open source project management software.
# Copyright (C) 2010-2023 the OpenProject GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2013 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# See COPYRIGHT and LICENSE files for more details.
# ++
module Queries::Operators
module WorkPackages
module SharedWithUser
class EqualsAll < ::Queries::Operators::Base
label 'operator_equals_all'
set_symbol '&='
end
end
end
end
@@ -28,9 +28,7 @@
class Queries::Principals::Filters::MemberFilter < Queries::Principals::Filters::PrincipalFilter
def allowed_values
Project.active.all.map do |project|
[project.name, project.id]
end
Project.active.pluck(:name, :id)
end
def type
+1
View File
@@ -28,6 +28,7 @@
module Queries::Roles
::Queries::Register.register(RoleQuery) do
filter Filters::AllowsBecomingAssigneeFilter
filter Filters::GrantableFilter
filter Filters::UnitFilter
end
@@ -0,0 +1,71 @@
# frozen_string_literal: true
#-- copyright
# OpenProject is an open source project management software.
# Copyright (C) 2012-2023 the OpenProject GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2013 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# See COPYRIGHT and LICENSE files for more details.
#++
class Queries::Roles::Filters::AllowsBecomingAssigneeFilter <
Queries::Roles::Filters::RoleFilter
def type
:list
end
def where
permission_ids = if values.first == OpenProject::Database::DB_VALUE_TRUE
assignable_permissions
else
unassignable_permissions
end
if operator == '='
["role_permissions.id IN (?)", permission_ids]
else
["role_permissions.id NOT IN (?)", permission_ids]
end
end
def joins
:role_permissions
end
def allowed_values
[[I18n.t(:general_text_yes), OpenProject::Database::DB_VALUE_TRUE],
[I18n.t(:general_text_no), OpenProject::Database::DB_VALUE_FALSE]]
end
private
def assignable_permissions
RolePermission.where(permission: 'work_package_assigned')
.select('id')
end
def unassignable_permissions
RolePermission.where.not(permission: 'work_package_assigned')
.select('id')
end
end
+1
View File
@@ -45,6 +45,7 @@ module Queries::WorkPackages
filter Filter::ProjectFilter
filter Filter::ResponsibleFilter
filter Filter::RoleFilter
filter Filter::SharedWithUserFilter
filter Filter::StartDateFilter
filter Filter::StatusFilter
filter Filter::SubjectFilter
@@ -56,7 +56,6 @@ class Queries::WorkPackages::Filter::RoleFilter < Queries::WorkPackages::Filter:
values
.filter_map { |role_id| available_roles[role_id.to_i] }
end
def where
@@ -68,7 +67,7 @@ class Queries::WorkPackages::Filter::RoleFilter < Queries::WorkPackages::Filter:
private
def roles
::Role.givable.or(::GlobalRole.givable)
::Role.givable.or(::GlobalRole.givable).or(::WorkPackageRole.givable)
end
def operator_for_filtering
@@ -0,0 +1,96 @@
# frozen_string_literal: true
# -- copyright
# OpenProject is an open source project management software.
# Copyright (C) 2023 the OpenProject GmbH
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License version 3.
#
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
# Copyright (C) 2006-2013 Jean-Philippe Lang
# Copyright (C) 2010-2013 the ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# See COPYRIGHT and LICENSE files for more details.
# ++
class Queries::WorkPackages::Filter::SharedWithUserFilter <
Queries::WorkPackages::Filter::PrincipalBaseFilter
def available?
super && User.current
.allowed_to?(:view_shared_work_packages,
project,
global: true)
end
def scope
query = visible_shared_work_packages
if operator == '='
query = query.where(shared_with_any_of_condition)
elsif operator == '&='
query = query.where(shared_with_all_of_condition)
end
WorkPackage.where(id: query.select('work_packages.id').distinct)
end
# Conditions handled in +scope+ method
def where
'1=1'
end
def human_name
I18n.t('query_fields.shared_with_user')
end
def type
:shared_with_user_list_optional
end
private
def visible_shared_work_packages
WorkPackage.joins("JOIN members ON members.entity_id = work_packages.id")
.where(members: { entity_type: 'WorkPackage',
project: visible_projects })
end
def visible_projects
Project.allowed_to(User.current, :view_shared_work_packages)
end
def shared_with_any_of_condition
{ members: { user_id: values_replaced } }
end
def shared_with_all_of_condition
work_packages_table = WorkPackage.table_name
members_table = Member.table_name
where_clauses = values_replaced.map do |user_id|
<<~SQL.squish
EXISTS (SELECT 1
FROM #{members_table}
WHERE #{members_table}.entity_id = #{work_packages_table}.id
AND #{members_table}.user_id = #{ActiveRecord::Base.connection.quote_string(user_id)})
SQL
end
where_clauses.join(' AND ')
end
end
+61 -19
View File
@@ -60,41 +60,70 @@ module WorkPackage::PDFExport::Cover
)
end
def cover_text_color
@cover_text_color ||= validate_cover_text_color
end
def validate_cover_text_color
return nil if CustomStyle.current.blank?
hexcode = CustomStyle.current.export_cover_text_color
return nil if hexcode.blank?
color = Color.new({ hexcode: })
color.normalize_hexcode
return nil if color.hexcode.blank?
# pdf hex colors are defined without leading hash
color.hexcode.sub('#', '')
end
def write_hero_title(top, width)
text_style = styles.cover_hero_title
formatted_text_box_measured(
[text_style.merge({ text: project.name, size: nil, leading: nil })],
size: text_style[:size], leading: text_style[:leading],
at: [0, top], width:, height: styles.cover_hero_title_max_height, overflow: :shrink_to_fit
write_hero_text(
top:, width:,
text: project.name,
text_style: styles.cover_hero_title,
height: styles.cover_hero_title_max_height
) + styles.cover_hero_title_spacing
end
def write_hero_heading(top, width)
max_title_height = available_title_height(top)
text_style = styles.cover_hero_heading
formatted_text_box_measured(
[text_style.merge({ text: heading, size: nil, leading: nil })],
size: text_style[:size], leading: text_style[:leading],
at: [0, top], width:, height: max_title_height, overflow: :shrink_to_fit
write_hero_text(
top:, width:,
text: heading,
text_style: styles.cover_hero_heading,
height: available_title_height(top)
) + styles.cover_hero_heading_spacing
end
def write_hero_subheading(top, width)
text_style = styles.cover_hero_subheading
pdf.formatted_text_box(
[text_style.merge({ text: User.current.name, size: nil, leading: nil })],
write_hero_text(
top:, width:,
text: User.current.name,
text_style: styles.cover_hero_subheading,
height: styles.cover_hero_subheading_max_height
)
end
def write_hero_text(top:, width:, text:, text_style:, height:)
formatted_text = text_style.merge({ text:, size: nil, leading: nil })
formatted_text[:color] = cover_text_color if cover_text_color.present?
formatted_text_box_measured(
[formatted_text],
size: text_style[:size], leading: text_style[:leading],
at: [0, top], width:, height: styles.cover_hero_subheading_max_height, overflow: :shrink_to_fit
at: [0, top], width:, height:, overflow: :shrink_to_fit
)
end
def write_cover_footer
text_style = styles.cover_footer
text_style[:color] = cover_text_color if cover_text_color.present?
draw_text_multiline_left(
text: footer_date,
max_left: pdf.bounds.width / 2,
max_lines: 1,
top: pdf.bounds.bottom - styles.cover_footer_offset,
text_style: styles.cover_footer
text_style:
)
end
@@ -107,7 +136,8 @@ module WorkPackage::PDFExport::Cover
end
def cover_background_image
image_file = Rails.root.join("app/assets/images/pdf/cover.png")
image_file = custom_cover_image
image_file = Rails.root.join("app/assets/images/pdf/cover.png") if image_file.nil?
image_obj, image_info = pdf.build_image_object(image_file)
scale = pdf.bounds.width / image_info.width.to_f
height = image_info.height.to_f * scale
@@ -115,12 +145,24 @@ module WorkPackage::PDFExport::Cover
[image_obj, image_info, image_opts, height]
end
def custom_cover_image
return unless CustomStyle.current.present? &&
CustomStyle.current.export_cover.present? && CustomStyle.current.export_cover.local_file.present?
image_file = CustomStyle.current.export_cover.local_file.path
content_type = OpenProject::ContentTypeDetector.new(image_file).detect
return unless pdf_embeddable?(content_type)
image_file
end
def write_background_image
height = pdf.bounds.height / 2
half = pdf.bounds.height / 2
height = half
pdf.canvas do
image_obj, image_info, image_opts, height = cover_background_image
pdf.embed_image image_obj, image_info, image_opts
end
height - styles.cover_hero_padding[:top_padding]
height.clamp(half, pdf.bounds.height) - styles.cover_hero_padding[:top_padding]
end
end
+3 -1
View File
@@ -31,7 +31,9 @@
class WorkPackageRole < Role
def self.givable
none
where(builtin: NON_BUILTIN)
.where(type: 'WorkPackageRole')
.order(Arel.sql('position'))
end
def member?
+3 -1
View File
@@ -54,7 +54,9 @@ module DemoData
[
DemoData::WikiSeeder,
DemoData::WorkPackageSeeder,
DemoData::WorkPackageBoardSeeder
DemoData::WorkPackageBoardSeeder,
::Meetings::DemoData::MeetingSeeder,
::Meetings::DemoData::MeetingAgendaItemsSeeder,
]
end
+1
View File
@@ -261,6 +261,7 @@ projects:
- wiki
- board_view
- team_planner_view
- meetings
news:
- t_title: Welcome to your demo project
t_summary: |
+1 -1
View File
@@ -36,7 +36,7 @@ module Authorization
# Returns all projects a user has a certain permission in
def projects(action, user)
Authorization::ProjectQuery.query(user, action)
Project.allowed_to(action, user)
end
# Returns all roles a user has in a certain project, for a specific entity or globally
@@ -60,6 +60,8 @@ module OAuthClients
ServiceResult.failure(result: @redirect_url)
end
# rubocop:disable Metrics/AbcSize
# The bearer/access token has expired or is due for renew for other reasons.
# Talk to OAuth2 Authorization Server to exchange the renew_token for a new bearer token.
def refresh_token
@@ -79,11 +81,17 @@ module OAuthClients
ServiceResult.success(result: oauth_client_token)
end
else
service_result_with_error(I18n.t('oauth_client.errors.refresh_token_called_without_existing_token'))
storage_error = ::Storages::StorageError.new(
code: :error,
log_message: I18n.t('oauth_client.errors.refresh_token_called_without_existing_token')
)
ServiceResult.failure(result: :error, errors: storage_error)
end
end
end
# rubocop:enable Metrics/AbcSize
# Returns the URI of the "authorize" endpoint of the OAuth2 Authorization Server.
# @param state (OAuth2 RFC) is a nonce referencing a cookie containing the calling page (URL + params) to which to
# return to at the end of the whole flow.
@@ -93,6 +101,8 @@ module OAuthClients
client.authorization_uri(scope: @config.scope, state:)
end
# rubocop:disable Metrics/AbcSize
# Called by callback_page with a cryptographic "code" that indicates
# that the user has successfully authorized the OAuth2 Authorization Server.
# We now are going to exchange this code to a token (bearer+refresh)
@@ -128,6 +138,8 @@ module OAuthClients
ServiceResult.success(result: oauth_client_token)
end
# rubocop:enable Metrics/AbcSize
# Called by StorageRepresenter to inquire about the status of the OAuth2
# authentication server.
# Returns :connected/:authorization_failed or :error for a general error.
@@ -146,7 +158,7 @@ module OAuthClients
service_result = refresh_token
if service_result.success?
:connected
elsif service_result.result == 'invalid_request'
elsif service_result.errors.data.payload[:error] == 'invalid_request'
:failed_authorization
else
:error
@@ -167,11 +179,7 @@ module OAuthClients
if yield_service_result.failure? && yield_service_result.result == :unauthorized
refresh_service_result = refresh_token
if refresh_service_result.failure?
failed_service_result = ServiceResult.failure(result: :error)
failed_service_result.merge!(refresh_service_result)
return failed_service_result
end
return refresh_service_result if refresh_service_result.failure?
oauth_client_token.reload
yield_service_result = yield(oauth_client_token) # Should contain result=<data> in case of success
@@ -189,27 +197,29 @@ module OAuthClients
OAuthClientToken.find_by(user_id: @user, oauth_client_id: @oauth_client.id)
end
# Calls client.access_token!
# Convert the various exceptions into user-friendly error strings.
# rubocop:disable Metrics/AbcSize
def request_new_token(options = {})
rack_access_token = rack_oauth_client(options).access_token!(:body)
ServiceResult.success(result: rack_access_token)
rescue Rack::OAuth2::Client::Error => e
service_result_with_error(i18n_rack_oauth2_error_message(e), e.message)
service_result_with_error(:bad_request, e.response, i18n_rack_oauth2_error_message(e))
rescue Faraday::TimeoutError, Faraday::ConnectionFailed, Faraday::ParsingError, Faraday::SSLError => e
service_result_with_error(
"#{I18n.t('oauth_client.errors.oauth_returned_http_error')}: #{e.class}: #{e.message.to_html}",
e.message
:internal_server_error,
e,
"#{I18n.t('oauth_client.errors.oauth_returned_http_error')}: #{e.class}: #{e.message.to_html}"
)
rescue StandardError => e
service_result_with_error(
"#{I18n.t('oauth_client.errors.oauth_returned_standard_error')}: #{e.class}: #{e.message.to_html}",
e.message
:error,
e,
"#{I18n.t('oauth_client.errors.oauth_returned_standard_error')}: #{e.class}: #{e.message.to_html}"
)
end
# Localize the error message
# rubocop:enable Metrics/AbcSize
def i18n_rack_oauth2_error_message(rack_oauth2_client_exception)
i18n_key = "oauth_client.errors.rack_oauth2.#{rack_oauth2_client_exception.message}"
if I18n.exists? i18n_key
@@ -250,12 +260,10 @@ module OAuthClients
end
end
# Shortcut method to convert an error message into an unsuccessful
# ServiceResult with that error message
def service_result_with_error(message, result = nil)
ServiceResult.failure(result:).tap do |r|
r.errors.add(:base, message)
end
def service_result_with_error(code, data, log_message = nil)
error_data = ::Storages::StorageErrorData.new(source: self, payload: data)
ServiceResult.failure(result: code,
errors: ::Storages::StorageError.new(code:, data: error_data, log_message:))
end
end
end
+101 -25
View File
@@ -155,39 +155,115 @@ See COPYRIGHT and LICENSE files for more details.
</section>
<% end %>
<%= form_for @custom_style, url: custom_style_path, html: { multipart: true, class: "form -vertical" } do |f| %>
<section class="form--section">
<fieldset class="form--fieldset">
<legend class="form--fieldset-legend"><%= I18n.t(:label_custom_export_logo) %></legend>
<% custom_export_expanded = @custom_style.id && (@custom_style.export_logo.present? || @custom_style.export_cover.present? || @custom_style.export_cover_text_color.present?) %>
<collapsible-section-augment initially-expanded="<%= custom_export_expanded %>"
section-title="<%= I18n.t(:label_custom_pdf_export_settings) %>">
</collapsible-section-augment>
<div class="collapsible-section-augment--body" hidden>
<% if @custom_style.id && @custom_style.export_logo.present? %>
<div>
<%= tag('img', src: custom_style_export_logo_path(digest: @custom_style.digest, filename: @custom_style.export_logo_identifier), class: 'custom-export-logo-preview') %>
<%= link_to t(:button_delete),
custom_style_export_logo_delete_path,
method: :delete,
class: 'icon icon-delete confirm-form-submit' %>
</div>
<% end %>
<%= form_for @custom_style, url: custom_style_path, html: { multipart: true, class: "form -vertical" } do |f| %>
<section class="form--section">
<fieldset class="form--fieldset">
<legend class="form--fieldset-legend"><%= I18n.t(:label_custom_export_logo) %></legend>
<div class="grid-block">
<div class="form--field -required">
<div class="attachment_field form--field-container -vertical -shrink">
<div class="form--file-container">
<%= f.file_field :export_logo, required: true, class: "attachment_choose_file", size: "15" %>
<% if @custom_style.id && @custom_style.export_logo.present? %>
<div>
<%= tag('img', src: custom_style_export_logo_path(digest: @custom_style.digest, filename: @custom_style.export_logo_identifier), class: 'custom-export-logo-preview') %>
<%= link_to t(:button_delete),
custom_style_export_logo_delete_path,
method: :delete,
class: 'icon icon-delete confirm-form-submit' %>
</div>
<% end %>
<div class="grid-block">
<div class="form--field -required">
<div class="attachment_field form--field-container -vertical -shrink">
<div class="form--file-container">
<%= f.file_field :export_logo, required: true, class: "attachment_choose_file", size: "15" %>
</div>
</div>
<div class="form--field-instructions">
<%= t('text_custom_export_logo_instructions') %>
</div>
</div>
<div class="form--field-instructions">
<%= t('text_custom_export_logo_instructions') %>
</div>
<%= styled_button_tag t(@custom_style.export_logo.present? ? :button_replace : :button_upload), class: "button #{@custom_style.export_logo.blank? ? '-with-icon icon-add' : ''}" %>
</fieldset>
</section>
<% end %>
<%= form_for @custom_style, url: custom_style_path, html: { multipart: true, class: "form -vertical" } do |f| %>
<section class="form--section">
<fieldset class="form--fieldset">
<legend class="form--fieldset-legend"><%= I18n.t(:label_custom_export_cover) %></legend>
<% if @custom_style.id && @custom_style.export_cover.present? %>
<div>
<%= tag('img', src: custom_style_export_cover_path(digest: @custom_style.digest, filename: @custom_style.export_cover_identifier), class: 'custom-export-cover-preview') %>
<%= link_to t(:button_delete),
custom_style_export_cover_delete_path,
method: :delete,
class: 'icon icon-delete confirm-form-submit' %>
</div>
<% end %>
<div class="grid-block">
<div class="form--field -required">
<div class="attachment_field form--field-container -vertical -shrink">
<div class="form--file-container">
<%= f.file_field :export_cover, required: true, class: "attachment_choose_file", size: "15" %>
</div>
</div>
<div class="form--field-instructions">
<%= t('text_custom_export_cover_instructions') %>
</div>
</div>
</div>
</div>
<%= styled_button_tag t(@custom_style.export_logo.present? ? :button_replace : :button_upload), class: "button #{@custom_style.export_logo.blank? ? '-with-icon icon-add' : ''}" %>
<%= styled_button_tag t(@custom_style.export_cover.present? ? :button_replace : :button_upload), class: "button #{@custom_style.export_cover.blank? ? '-with-icon icon-add' : ''}" %>
</fieldset>
</section>
<% end %>
</fieldset>
</section>
<% end %>
<%= form_tag update_custom_style_export_cover_text_color_path, html: { multipart: true, class: "form -vertical" } do |f| %>
<section class="form--section">
<fieldset class="form--fieldset">
<legend class="form--fieldset-legend"><%= I18n.t(:label_custom_export_cover_overlay) %></legend>
<div class="form--field">
<label class="form--label"><%= I18n.t(:label_custom_export_cover_text_color) %>:</label>
<span class="form--field-container">
<div class="form--field-affix">
<% design_color_name = 'export_cover_text_color' %>
<% design_color_hex = @custom_style.export_cover_text_color.present? ? @custom_style.export_cover_text_color : '' %>
<%= icon_for_color(OpenStruct.new(variable: design_color_name,
hexcode: design_color_hex),
data: { target: "#" + design_color_name }) %>
</div>
<span class="form--text-field-container">
<%= styled_text_field_tag design_color_name,
design_color_hex,
placeholder: '#000'
%>
</span>
</span>
<div class="form--field-instructions">
<% instruction_key = "admin.custom_styles.instructions.#{design_color_name}" %>
<% if I18n.exists?(instruction_key, :en) %>
<%= I18n.t(instruction_key) %>
<% end %>
</div>
</div>
<button type="submit" class="button -hide-when-collapsed"><%= I18n.t(:button_save) %></button>
</fieldset>
</section>
<% end %>
</div>
<%= form_tag update_design_colors_path, method: :post, class: "form" do %>
<section class="form--section">
@@ -31,7 +31,7 @@ See COPYRIGHT and LICENSE files for more details.
.new(@individual_principal.memberships.build, current_user)
.assignable_projects
.order(Arel.sql('lft')) %>
<% memberships = @individual_principal.memberships.visible(current_user) %>
<% memberships = @individual_principal.memberships.where(id: Member.visible(current_user)) %>
<div class="grid-block">
<div class="grid-content">
@@ -144,7 +144,7 @@ See COPYRIGHT and LICENSE files for more details.
url: polymorphic_path([@individual_principal, :memberships]),
html: {id: "new_project_membership"}) do %>
<fieldset class="form--fieldset">
<legend class="form--fieldset-legend"><%=t(:label_project_new)%></legend>
<legend class="form--fieldset-legend"><%=t(:label_available_projects)%></legend>
<% principal_project_ids = @individual_principal.projects.ids %>
<% filter = [['active', '=', 't']] %>
<% filter << ['id', '!', principal_project_ids.map(&:to_s)] if principal_project_ids.any? %>
@@ -31,7 +31,7 @@ See COPYRIGHT and LICENSE files for more details.
<div class="grid-content" id="available_principal_roles">
<fieldset class="form--fieldset">
<legend class="form--fieldset-legend"><%= Role.model_name.human(count: 2) %></legend>
<legend class="form--fieldset-legend"><%= t(:label_available_global_roles) %></legend>
<% if available_roles.empty? %>
<span id="no_additional_principal_roles">
<%= no_results_box %>
+6
View File
@@ -290,6 +290,12 @@ Redmine::MenuManager.map :admin_menu do |menu|
caption: :label_role_and_permissions,
parent: :users_and_permissions
menu.push :permissions_report,
{ controller: '/roles', action: 'report' },
if: Proc.new { User.current.admin? },
caption: :label_permissions_report,
parent: :users_and_permissions
menu.push :user_avatars,
{ controller: '/admin/settings', action: 'show_plugin', id: :openproject_avatars },
if: Proc.new { User.current.admin? },
+7
View File
@@ -54,6 +54,13 @@ Rails.application.config.after_initialize do
script_src += %w('unsafe-eval')
end
# Allow ANDI bookmarklet to run in development mode
# https://www.ssa.gov/accessibility/andi/help/install.html
if Rails.env.development?
script_src += ['https://www.ssa.gov']
assets_src += ['https://www.ssa.gov']
end
config.csp = {
preserve_schemes: true,
+18 -8
View File
@@ -1589,11 +1589,13 @@ af:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Waarmerking"
label_available_project_work_package_categories: 'Available work package categories'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Available versions'
label_available_project_repositories: 'Available repositories'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Available repositories"
label_available_project_versions: "Available versions"
label_available_project_work_package_categories: "Available work package categories"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API documentation"
label_backup: "Backup"
label_between: "between"
@@ -1798,6 +1800,10 @@ af:
label_login: "Teken in"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Custom touch icon"
label_logout: "Teken af"
@@ -1868,6 +1874,7 @@ af:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Maak kieslys oop"
label_open_work_packages: "maak oop"
label_open_work_packages_plural: "maak oop"
@@ -2451,11 +2458,12 @@ af:
query_fields:
active_or_archived: "Aktief of geargiveer"
assigned_to_role: "Assignee's role"
member_of_group: "Assignee's group"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Assignee's group"
name_or_identifier: "Naam of identifiseerder"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'at %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2770,6 +2778,8 @@ af:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+23 -8
View File
@@ -1203,6 +1203,7 @@ ar:
errors: "خطأ"
project_custom_fields: 'Custom fields on project'
x_objects_of_this_type:
zero: 'No objects of this type'
one: 'One object of this type'
other: '%{count} objects of this type'
text:
@@ -1672,11 +1673,13 @@ ar:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "المصادقة"
label_available_project_work_package_categories: 'فئات مجموعة العمل المتاحة'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'الإصدارات المتوفرة'
label_available_project_repositories: 'مستودعات البيانات المتوفرة'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "مستودعات البيانات المتوفرة"
label_available_project_versions: "الإصدارات المتوفرة"
label_available_project_work_package_categories: "فئات مجموعة العمل المتاحة"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "توثيق API"
label_backup: "Backup"
label_between: "بين"
@@ -1881,6 +1884,10 @@ ar:
label_login: "تسجيل الدخول"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Custom touch icon"
label_logout: "تسجيل الخروج"
@@ -1951,6 +1958,7 @@ ar:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "فتح القائمة"
label_open_work_packages: "افتح"
label_open_work_packages_plural: "افتح"
@@ -2174,15 +2182,19 @@ ar:
label_x_closed_work_packages_abbr:
one: "1 مغلقة"
other: "%{count} مغلق"
zero: "0 closed"
label_x_comments:
one: "1 comment"
other: "%{count} تعليقات"
zero: "no comments"
label_x_open_work_packages_abbr:
one: "1 open"
other: "%{count} مفتوح"
zero: "0 open"
label_x_projects:
one: "1 project"
other: "%{count} مشاريع"
zero: "no projects"
label_yesterday: "الأمس"
label_role_type: "النّوع"
label_member_role: "Project role"
@@ -2538,11 +2550,12 @@ ar:
query_fields:
active_or_archived: "Active or archived"
assigned_to_role: "دور الموكل إليه"
member_of_group: "مجموعة الموكل إليه"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "مجموعة الموكل إليه"
name_or_identifier: "Name or identifier"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'في %{identifier}'
atom_revision_feed: 'مراجعة تغذية ذرية'
@@ -2855,6 +2868,8 @@ ar:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1589,11 +1589,13 @@ az:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Authentication"
label_available_project_work_package_categories: 'Available work package categories'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Available versions'
label_available_project_repositories: 'Available repositories'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Available repositories"
label_available_project_versions: "Available versions"
label_available_project_work_package_categories: "Available work package categories"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API documentation"
label_backup: "Backup"
label_between: "between"
@@ -1798,6 +1800,10 @@ az:
label_login: "Sign in"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Custom touch icon"
label_logout: "Sign out"
@@ -1868,6 +1874,7 @@ az:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Open menu"
label_open_work_packages: "open"
label_open_work_packages_plural: "open"
@@ -2451,11 +2458,12 @@ az:
query_fields:
active_or_archived: "Active or archived"
assigned_to_role: "Assignee's role"
member_of_group: "Assignee's group"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Assignee's group"
name_or_identifier: "Name or identifier"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'at %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2770,6 +2778,8 @@ az:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1631,11 +1631,13 @@ be:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Authentication"
label_available_project_work_package_categories: 'Available work package categories'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Available versions'
label_available_project_repositories: 'Available repositories'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Available repositories"
label_available_project_versions: "Available versions"
label_available_project_work_package_categories: "Available work package categories"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API documentation"
label_backup: "Backup"
label_between: "between"
@@ -1840,6 +1842,10 @@ be:
label_login: "Sign in"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Custom touch icon"
label_logout: "Sign out"
@@ -1910,6 +1916,7 @@ be:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Open menu"
label_open_work_packages: "open"
label_open_work_packages_plural: "open"
@@ -2497,11 +2504,12 @@ be:
query_fields:
active_or_archived: "Active or archived"
assigned_to_role: "Assignee's role"
member_of_group: "Assignee's group"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Assignee's group"
name_or_identifier: "Name or identifier"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'at %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2816,6 +2824,8 @@ be:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1589,11 +1589,13 @@ bg:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Оторизация"
label_available_project_work_package_categories: 'Налични категории работни пакети'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Налични версии'
label_available_project_repositories: 'Достъпни хранилища'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Достъпни хранилища"
label_available_project_versions: "Налични версии"
label_available_project_work_package_categories: "Налични категории работни пакети"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API документация"
label_backup: "Backup"
label_between: "между"
@@ -1798,6 +1800,10 @@ bg:
label_login: "Влизане"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Custom touch icon"
label_logout: "Изход"
@@ -1868,6 +1874,7 @@ bg:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Open menu"
label_open_work_packages: "open"
label_open_work_packages_plural: "open"
@@ -2451,11 +2458,12 @@ bg:
query_fields:
active_or_archived: "Active or archived"
assigned_to_role: "Assignee's role"
member_of_group: "Assignee's group"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Само подпроект"
member_of_group: "Assignee's group"
name_or_identifier: "Name or identifier"
only_subproject_id: "Само подпроект"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'at %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2770,6 +2778,8 @@ bg:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1585,11 +1585,13 @@ ca:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Autenticació"
label_available_project_work_package_categories: 'Categories de paquet de treball disponibles'
label_available_project_work_package_types: 'Classes de paquet de treball disponibles'
label_available_project_forums: 'Fòrums disponibles'
label_available_project_versions: 'Versions disponibles'
label_available_project_repositories: 'Repositòris disponibles'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Fòrums disponibles"
label_available_project_repositories: "Repositòris disponibles"
label_available_project_versions: "Versions disponibles"
label_available_project_work_package_categories: "Categories de paquet de treball disponibles"
label_available_project_work_package_types: "Classes de paquet de treball disponibles"
label_available_projects: "Available projects"
label_api_documentation: "Documentació d'API"
label_backup: "Còpia de seguretat"
label_between: "entre"
@@ -1794,6 +1796,10 @@ ca:
label_login: "Iniciar sessió"
label_custom_logo: "Logotips personalitzats"
label_custom_export_logo: "Exportar logo personalitzat"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Favicon personalitzat"
label_custom_touch_icon: "Icona \"touch\" personalitzada"
label_logout: "Tancar sessió"
@@ -1864,6 +1870,7 @@ ca:
label_operator_none: "està buit"
label_operator_equals_or: "és (OR)"
label_operator_equals_all: "és (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Obrir menú"
label_open_work_packages: "obrir"
label_open_work_packages_plural: "obrir"
@@ -2442,11 +2449,12 @@ ca:
query_fields:
active_or_archived: "Actiu o arxivat"
assigned_to_role: "Rol de l'assignat"
member_of_group: "Grup de l'assignat"
assignee_or_group: "Assignat o part d'un grup"
subproject_id: "Incloent subprojectes"
only_subproject_id: "Només subprojecte"
member_of_group: "Grup de l'assignat"
name_or_identifier: "Nom o identificador"
only_subproject_id: "Només subprojecte"
shared_with_user: "Shared with user"
subproject_id: "Incloent subprojectes"
repositories:
at_identifier: 'a %{identifier}'
atom_revision_feed: 'Feed de revisió d''Atom'
@@ -2759,6 +2767,8 @@ ca:
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_export_logo_instructions: >
Aquest és logotip que apareix en les teves exportacions PDF. Necessita ser una imatge en format PNG o JPG. Es recomana un logotip negre o de color amb fons transparent o blanc.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
Aquest és la icona petita que apareix a la pantalla del navegador just al costat del títol de la pàgina. Ha de ser un PNG de 32 per 32 píxels amb un fons transparent.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1589,11 +1589,13 @@ ckb-IR:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Authentication"
label_available_project_work_package_categories: 'Available work package categories'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Available versions'
label_available_project_repositories: 'Available repositories'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Available repositories"
label_available_project_versions: "Available versions"
label_available_project_work_package_categories: "Available work package categories"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API documentation"
label_backup: "Backup"
label_between: "between"
@@ -1798,6 +1800,10 @@ ckb-IR:
label_login: "Sign in"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Custom touch icon"
label_logout: "Sign out"
@@ -1868,6 +1874,7 @@ ckb-IR:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Open menu"
label_open_work_packages: "open"
label_open_work_packages_plural: "open"
@@ -2451,11 +2458,12 @@ ckb-IR:
query_fields:
active_or_archived: "Active or archived"
assigned_to_role: "Assignee's role"
member_of_group: "Assignee's group"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Assignee's group"
name_or_identifier: "Name or identifier"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'at %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2770,6 +2778,8 @@ ckb-IR:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1631,11 +1631,13 @@ cs:
label_ldap_auth_source: "Připojení LDAP"
label_ldap_auth_source_plural: "Připojení LDAP"
label_authentication: "Ověření"
label_available_project_work_package_categories: 'Dostupné kategorie pracovních balíčků'
label_available_project_work_package_types: 'Dostupné kategorie pracovních balíčků'
label_available_project_forums: 'Dostupná fóra'
label_available_project_versions: 'Dostupné verze'
label_available_project_repositories: 'Dostupné repozitáře'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Dostupná fóra"
label_available_project_repositories: "Dostupné repozitáře"
label_available_project_versions: "Dostupné verze"
label_available_project_work_package_categories: "Dostupné kategorie pracovních balíčků"
label_available_project_work_package_types: "Dostupné kategorie pracovních balíčků"
label_available_projects: "Available projects"
label_api_documentation: "API dokumentace"
label_backup: "Záloha"
label_between: "mezi"
@@ -1840,6 +1842,10 @@ cs:
label_login: "Přihlásit se"
label_custom_logo: "Vlastní logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Vlastní favicon"
label_custom_touch_icon: "Vlastní ikona dotyku"
label_logout: "Odhlásit se"
@@ -1910,6 +1916,7 @@ cs:
label_operator_none: "je prázdný"
label_operator_equals_or: "je (OR)"
label_operator_equals_all: "je (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Otevřít nabídku"
label_open_work_packages: "otevřené"
label_open_work_packages_plural: "otevřené"
@@ -2496,11 +2503,12 @@ cs:
query_fields:
active_or_archived: "Aktivní nebo archivované"
assigned_to_role: "Řešitelova role"
member_of_group: "Řešitelova skupina"
assignee_or_group: "Přiřazený nebo patřící skupině"
subproject_id: "Včetně podprojektu"
only_subproject_id: "Pouze podprojekt"
member_of_group: "Řešitelova skupina"
name_or_identifier: "Jméno nebo identifikátor"
only_subproject_id: "Pouze podprojekt"
shared_with_user: "Shared with user"
subproject_id: "Včetně podprojektu"
repositories:
at_identifier: 'v %{identifier}'
atom_revision_feed: 'Atom kanál pro revizi'
@@ -2815,6 +2823,8 @@ cs:
Doporučuje se bílé logo na průhledném pozadí. Pro nejlepší výsledky na displejích klasického i retina se ujistěte, že rozměry vašeho obrázku jsou 460px do 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1587,11 +1587,13 @@ da:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Godkendelse"
label_available_project_work_package_categories: 'Tilgængelige arbejdspakkekategorier'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Tilgængelige versioner'
label_available_project_repositories: 'Tilgængelige repositorier'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Tilgængelige repositorier"
label_available_project_versions: "Tilgængelige versioner"
label_available_project_work_package_categories: "Tilgængelige arbejdspakkekategorier"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API-dokumentation"
label_backup: "Backup"
label_between: "mellem"
@@ -1796,6 +1798,10 @@ da:
label_login: "Log ind"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Custom touch icon"
label_logout: "Log ud"
@@ -1866,6 +1872,7 @@ da:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Åbn menuen"
label_open_work_packages: "åbn"
label_open_work_packages_plural: "åbn"
@@ -2449,11 +2456,12 @@ da:
query_fields:
active_or_archived: "Active or archived"
assigned_to_role: "Tildeltes rolle"
member_of_group: "Tildeltes gruppe"
assignee_or_group: "Tildelte eller tilhørende gruppe"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Tildeltes gruppe"
name_or_identifier: "Name or identifier"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'på %{identifier}'
atom_revision_feed: 'Atom-revisionsfeed'
@@ -2766,6 +2774,8 @@ da:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+21 -11
View File
@@ -1584,11 +1584,13 @@ de:
label_ldap_auth_source: "LDAP-Verbindung"
label_ldap_auth_source_plural: "LDAP-Verbindungen"
label_authentication: "Authentifizierung"
label_available_project_work_package_categories: 'Verfügbare Arbeitspaket-Kategorien'
label_available_project_work_package_types: 'Verfügbare Arbeitspaket-Typen'
label_available_project_forums: 'Verfügbare Foren'
label_available_project_versions: 'Verfügbare Versionen'
label_available_project_repositories: 'Verfügbare Projektarchive'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Verfügbare Foren"
label_available_project_repositories: "Verfügbare Projektarchive"
label_available_project_versions: "Verfügbare Versionen"
label_available_project_work_package_categories: "Verfügbare Arbeitspaket-Kategorien"
label_available_project_work_package_types: "Verfügbare Arbeitspaket-Typen"
label_available_projects: "Available projects"
label_api_documentation: "API-Dokumentation"
label_backup: "Backup"
label_between: "zwischen"
@@ -1793,6 +1795,10 @@ de:
label_login: "Anmelden"
label_custom_logo: "Benutzerdefiniertes Logo"
label_custom_export_logo: "Selbstdefiniertes Logo für PDF-Export"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Benutzerdefiniertes Favicon"
label_custom_touch_icon: "Benutzerdefiniertes Touch-Icon"
label_logout: "Abmelden"
@@ -1863,6 +1869,7 @@ de:
label_operator_none: "ist leer"
label_operator_equals_or: "ist (ODER)"
label_operator_equals_all: "ist (UND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Menü öffnen"
label_open_work_packages: "Offen"
label_open_work_packages_plural: "offen"
@@ -2101,8 +2108,8 @@ de:
zero: "Keine Projekte"
label_yesterday: "gestern"
label_role_type: "Typ"
label_member_role: "Project role"
label_global_role: "Global role"
label_member_role: "Projektrolle"
label_global_role: "Globale Rolle"
label_not_changeable: "(nicht veränderbar)"
label_global: "Global"
label_seeded_from_env_warning: Dieser Datensatz wurde durch eine Konfigurationsrichtlinie oder Umgebungsvariable erstellt. Er kann nicht über die Benutzeroberfläche bearbeitet werden.
@@ -2330,7 +2337,7 @@ de:
permission_add_work_package_notes: "Kommentare hinzufügen"
permission_add_work_packages: "Arbeitspakete hinzufügen"
permission_add_messages: "Forenbeiträge hinzufügen"
permission_add_project: "Create projects"
permission_add_project: "Projekte erstellen"
permission_archive_project: "Projekt archivieren"
permission_create_user: "Benutzer erstellen"
permission_manage_user: "Benutzer bearbeiten"
@@ -2446,11 +2453,12 @@ de:
query_fields:
active_or_archived: "Aktiv oder archiviert"
assigned_to_role: "Rolle der zugewiesenen Person"
member_of_group: "Gruppe der zugewiesenen Person"
assignee_or_group: "Zugewiesen an Nutzer oder dessen Gruppe"
subproject_id: "Einschließlich Unterprojekt"
only_subproject_id: "Nur Unterprojekt"
member_of_group: "Gruppe der zugewiesenen Person"
name_or_identifier: "Name oder Kennung"
only_subproject_id: "Nur Unterprojekt"
shared_with_user: "Shared with user"
subproject_id: "Einschließlich Unterprojekt"
repositories:
at_identifier: 'auf %{identifier}'
atom_revision_feed: 'Revisionen als Atom Feed'
@@ -2765,6 +2773,8 @@ de:
Ein weißes Logo mit transparentem Hintergrund wird empfohlen. Für ein optimales Ergebnis für konventionelle und Retina-Displays sollte die Bildabmessungen 460 x 110 Pixel betragen.
text_custom_export_logo_instructions: >
Dies ist das Logo, das in Ihren PDF-Exporten erscheint. Es muss eine PNG- oder JPEG-Bilddatei sein. Ein schwarzes oder farbiges Logo auf transparentem oder weißem Hintergrund wird empfohlen.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
Dies ist das kleine Symbol, das in Ihrem Browser-Fenster/Tab neben dem Seitentitel angezeigt wird. Es muss ein quadratisches 32 x 32 Pixel großes PNG mit transparentem Hintergrund sein.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1585,11 +1585,13 @@ el:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Ταυτοποίηση"
label_available_project_work_package_categories: 'Διαθέσιμες κατηγορίες πακέτων εργασίας'
label_available_project_work_package_types: 'Διαθέσιμοι τύποι εργασιών'
label_available_project_forums: 'Διαθέσιμα φόρουμ'
label_available_project_versions: 'Διαθέσιμες εκδόσεις'
label_available_project_repositories: 'Διαθέσιμα αποθετήρια'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Διαθέσιμα φόρουμ"
label_available_project_repositories: "Διαθέσιμα αποθετήρια"
label_available_project_versions: "Διαθέσιμες εκδόσεις"
label_available_project_work_package_categories: "Διαθέσιμες κατηγορίες πακέτων εργασίας"
label_available_project_work_package_types: "Διαθέσιμοι τύποι εργασιών"
label_available_projects: "Available projects"
label_api_documentation: "Τεκμηρίωση API"
label_backup: "Αντίγραφο Ασφαλείας"
label_between: "μεταξύ"
@@ -1794,6 +1796,10 @@ el:
label_login: "Σύνδεση"
label_custom_logo: "Προσαρμοσμένο λογότυπο"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Προσαρμοσμένο favicon"
label_custom_touch_icon: "Προσαρμοσμένο εικονίδιο αφής"
label_logout: "Αποσύνδεση"
@@ -1864,6 +1870,7 @@ el:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Άνοιγμα μενού"
label_open_work_packages: "ανοιχτό"
label_open_work_packages_plural: "ανοιχτό"
@@ -2446,11 +2453,12 @@ el:
query_fields:
active_or_archived: "Ενεργό ή αρχειοθετημένο"
assigned_to_role: "Ρόλος ανάθεσης"
member_of_group: "Ομάδα ανάθεσης"
assignee_or_group: "Ανάθεση σε ή ανήκει σε ομάδα"
subproject_id: "Including subproject"
only_subproject_id: "Μόνο υποέργο"
member_of_group: "Ομάδα ανάθεσης"
name_or_identifier: "Όνομα ή αναγνωριστικό"
only_subproject_id: "Μόνο υποέργο"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'στο %{identifier}'
atom_revision_feed: 'Τροφοδοσία αναθεώρησης Atom'
@@ -2765,6 +2773,8 @@ el:
Προτείνεται ένα άσπρο λογότυπο με διαφανές φόντο. Για τα καλύτερα αποτελέσματα για συμβατικές και retina οθόνες, σιγουρευτείτε ότι οι διαστάσεις της εικόνας σας είναι 460px με 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1589,11 +1589,13 @@ eo:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Aŭtentigo"
label_available_project_work_package_categories: 'disponeblaj laborpakaĵaj kategorioj'
label_available_project_work_package_types: 'Disponeblaj laborpakaĵaj tipoj'
label_available_project_forums: 'Disponeblaj forumoj'
label_available_project_versions: 'Disponeblaj versioj'
label_available_project_repositories: 'Disponeblaj deponejoj'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Disponeblaj forumoj"
label_available_project_repositories: "Disponeblaj deponejoj"
label_available_project_versions: "Disponeblaj versioj"
label_available_project_work_package_categories: "disponeblaj laborpakaĵaj kategorioj"
label_available_project_work_package_types: "Disponeblaj laborpakaĵaj tipoj"
label_available_projects: "Available projects"
label_api_documentation: "API dokumentado"
label_backup: "Backup"
label_between: "inter"
@@ -1798,6 +1800,10 @@ eo:
label_login: "Ensaluti"
label_custom_logo: "Adaptita emblemo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Adaptita retpaĝsimbolo"
label_custom_touch_icon: "Adaptita tuŝikono"
label_logout: "Elsaluti"
@@ -1868,6 +1874,7 @@ eo:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Malfermi menuon"
label_open_work_packages: "malfermita"
label_open_work_packages_plural: "malfermita"
@@ -2451,11 +2458,12 @@ eo:
query_fields:
active_or_archived: "Active or archived"
assigned_to_role: "Assignee's role"
member_of_group: "Assignee's group"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Assignee's group"
name_or_identifier: "Name or identifier"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'at %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2770,6 +2778,8 @@ eo:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1586,11 +1586,13 @@ es:
label_ldap_auth_source: "Conexión LDAP"
label_ldap_auth_source_plural: "Conexiones LDAP"
label_authentication: "Autentificación"
label_available_project_work_package_categories: 'Categorias de paquetes de trabjo disponibles'
label_available_project_work_package_types: 'Tipos de paquete de trabajo disponibles'
label_available_project_forums: 'Foros disponibles'
label_available_project_versions: 'Versiones disponibles'
label_available_project_repositories: 'Repositorios disponibles'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Foros disponibles"
label_available_project_repositories: "Repositorios disponibles"
label_available_project_versions: "Versiones disponibles"
label_available_project_work_package_categories: "Categorias de paquetes de trabjo disponibles"
label_available_project_work_package_types: "Tipos de paquete de trabajo disponibles"
label_available_projects: "Available projects"
label_api_documentation: "Documentación de la API"
label_backup: "Copia de seguridad"
label_between: "entre"
@@ -1795,6 +1797,10 @@ es:
label_login: "Ingresar"
label_custom_logo: "Logotipo personalizado"
label_custom_export_logo: "Logotipo de exportación personalizado"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Icono de página personalizado"
label_custom_touch_icon: "Icono táctil personalizado"
label_logout: "Cerrar sesión"
@@ -1865,6 +1871,7 @@ es:
label_operator_none: "está vacío"
label_operator_equals_or: "es (OR)"
label_operator_equals_all: "es (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Abrir menú"
label_open_work_packages: "abierto"
label_open_work_packages_plural: "abierto"
@@ -2447,11 +2454,12 @@ es:
query_fields:
active_or_archived: "Activo o archivado"
assigned_to_role: "Asignación de roles"
member_of_group: "Asignación de grupo"
assignee_or_group: "Grupo al que pertenece o al que está asignado"
subproject_id: "Incluyendo subproyecto"
only_subproject_id: "Sólo subproyecto"
member_of_group: "Asignación de grupo"
name_or_identifier: "Nombre o identificador"
only_subproject_id: "Sólo subproyecto"
shared_with_user: "Shared with user"
subproject_id: "Incluyendo subproyecto"
repositories:
at_identifier: 'en %{identifier}'
atom_revision_feed: 'Feed de revisión de Atom'
@@ -2766,6 +2774,8 @@ es:
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_export_logo_instructions: >
Este es el logotipo que aparece en sus exportaciones PDF. Tiene que ser un archivo de imagen PNG o JPEG. Se recomienda un logotipo negro o de color sobre fondo transparente o blanco.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
Es el icono diminuto que aparece en la ventana o pestaña del navegador, junto al título de la página. Tiene que ser una imagen PNG cuadrada de 32 × 32 píxeles con un fondo transparente.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1589,11 +1589,13 @@ et:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Autentimine"
label_available_project_work_package_categories: 'Available work package categories'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Available versions'
label_available_project_repositories: 'Available repositories'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Available repositories"
label_available_project_versions: "Available versions"
label_available_project_work_package_categories: "Available work package categories"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API documentation"
label_backup: "Backup"
label_between: "between"
@@ -1798,6 +1800,10 @@ et:
label_login: "Logi sisse"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Custom touch icon"
label_logout: "Logi välja"
@@ -1868,6 +1874,7 @@ et:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Ava menüü"
label_open_work_packages: "avatud"
label_open_work_packages_plural: "avatud"
@@ -2451,11 +2458,12 @@ et:
query_fields:
active_or_archived: "Active or archived"
assigned_to_role: "Omistatud rollile"
member_of_group: "Omistatud rühmale"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Omistatud rühmale"
name_or_identifier: "Name or identifier"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'at %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2770,6 +2778,8 @@ et:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1589,11 +1589,13 @@ eu:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Authentication"
label_available_project_work_package_categories: 'Available work package categories'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Available versions'
label_available_project_repositories: 'Available repositories'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Available repositories"
label_available_project_versions: "Available versions"
label_available_project_work_package_categories: "Available work package categories"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API documentation"
label_backup: "Backup"
label_between: "between"
@@ -1798,6 +1800,10 @@ eu:
label_login: "Sign in"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Custom touch icon"
label_logout: "Sign out"
@@ -1868,6 +1874,7 @@ eu:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Open menu"
label_open_work_packages: "open"
label_open_work_packages_plural: "open"
@@ -2451,11 +2458,12 @@ eu:
query_fields:
active_or_archived: "Active or archived"
assigned_to_role: "Assignee's role"
member_of_group: "Assignee's group"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Assignee's group"
name_or_identifier: "Name or identifier"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'at %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2770,6 +2778,8 @@ eu:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1589,11 +1589,13 @@ fa:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Authentication"
label_available_project_work_package_categories: 'Available work package categories'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Available versions'
label_available_project_repositories: 'Available repositories'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Available repositories"
label_available_project_versions: "Available versions"
label_available_project_work_package_categories: "Available work package categories"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API documentation"
label_backup: "پشتیبان‌گیری"
label_between: "between"
@@ -1798,6 +1800,10 @@ fa:
label_login: "ورود"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Custom touch icon"
label_logout: "Sign out"
@@ -1868,6 +1874,7 @@ fa:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "باز کردن منو"
label_open_work_packages: "open"
label_open_work_packages_plural: "open"
@@ -2451,11 +2458,12 @@ fa:
query_fields:
active_or_archived: "فعال و آرشیو"
assigned_to_role: "Assignee's role"
member_of_group: "Assignee's group"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Assignee's group"
name_or_identifier: "نام یا شناسه"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'at %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2770,6 +2778,8 @@ fa:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1589,11 +1589,13 @@ fi:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Kirjautuminen"
label_available_project_work_package_categories: 'Olemassa olevat tehtäväluokat'
label_available_project_work_package_types: 'Olemassa olevat tehtävätyypit'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Saatavana olevat versiot'
label_available_project_repositories: 'Available repositories'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Available repositories"
label_available_project_versions: "Saatavana olevat versiot"
label_available_project_work_package_categories: "Olemassa olevat tehtäväluokat"
label_available_project_work_package_types: "Olemassa olevat tehtävätyypit"
label_available_projects: "Available projects"
label_api_documentation: "API-dokumentaatio"
label_backup: "Backup"
label_between: "välillä"
@@ -1798,6 +1800,10 @@ fi:
label_login: "Kirjaudu"
label_custom_logo: "Oma logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Mukautettu kuvake"
label_custom_touch_icon: "Custom touch icon"
label_logout: "Kirjaudu ulos"
@@ -1868,6 +1874,7 @@ fi:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Avaa valikko"
label_open_work_packages: "avoin"
label_open_work_packages_plural: "avoin"
@@ -2451,11 +2458,12 @@ fi:
query_fields:
active_or_archived: "Active or archived"
assigned_to_role: "Työn suorittajan rooli"
member_of_group: "Työn suorittajan ryhmä"
assignee_or_group: "Työn suorittaja tai kuuluu ryhmään"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Työn suorittajan ryhmä"
name_or_identifier: "Name or identifier"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'klo %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2770,6 +2778,8 @@ fi:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1589,11 +1589,13 @@ fil:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Pagpapatunay"
label_available_project_work_package_categories: 'Ang mga kategorya ng magagamit na work package'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Ang magagamit na bersyon'
label_available_project_repositories: 'Magagamit na mga respository'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Magagamit na mga respository"
label_available_project_versions: "Ang magagamit na bersyon"
label_available_project_work_package_categories: "Ang mga kategorya ng magagamit na work package"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API dokumentasyon"
label_backup: "Backup"
label_between: "sa pagitan ng"
@@ -1798,6 +1800,10 @@ fil:
label_login: "Mag-sign in"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Ang icon ng kustom pindutan"
label_logout: "Mag-sign out"
@@ -1868,6 +1874,7 @@ fil:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Buksan ang pagpipilian"
label_open_work_packages: "buksan"
label_open_work_packages_plural: "buksan"
@@ -2451,11 +2458,12 @@ fil:
query_fields:
active_or_archived: "Aktibo o naka-archieve"
assigned_to_role: "Naitalagang tungkulin"
member_of_group: "Itinalagang grupo"
assignee_or_group: "Nakatakda o pag-aari ng grupo"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Itinalagang grupo"
name_or_identifier: "Pangalan o pagkakakilanlan"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'sa %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2768,6 +2776,8 @@ fil:
Ang puting logo sa transparent background ay inirerekomend. Para sa pinakamahusay na result sa dalawang, conventional at mga displey na retina, siguraduhjn ang iyong dimensyon ng larawan ay 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1589,11 +1589,13 @@ fr:
label_ldap_auth_source: "Connexion LDAP"
label_ldap_auth_source_plural: "Connexions LDAP"
label_authentication: "Authentification"
label_available_project_work_package_categories: 'Catégories de lots de travaux disponibles'
label_available_project_work_package_types: 'Types de paquet de travail disponible'
label_available_project_forums: 'Forums disponibles'
label_available_project_versions: 'Versions disponibles'
label_available_project_repositories: 'Dépôts disponibles'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Forums disponibles"
label_available_project_repositories: "Dépôts disponibles"
label_available_project_versions: "Versions disponibles"
label_available_project_work_package_categories: "Catégories de lots de travaux disponibles"
label_available_project_work_package_types: "Types de paquet de travail disponible"
label_available_projects: "Available projects"
label_api_documentation: "Documentation de l'API"
label_backup: "Sauvegarde"
label_between: "entre"
@@ -1798,6 +1800,10 @@ fr:
label_login: "Connexion"
label_custom_logo: "Logo personnalisé"
label_custom_export_logo: "Logo d'exportation personnalisé"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Favicon personnalisé"
label_custom_touch_icon: "Icône de contact personnalisé"
label_logout: "Déconnexion"
@@ -1868,6 +1874,7 @@ fr:
label_operator_none: "est vide"
label_operator_equals_or: "est (OU)"
label_operator_equals_all: "est (ET)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Ouvrir le menu"
label_open_work_packages: "ouverts"
label_open_work_packages_plural: "ouverts"
@@ -2451,11 +2458,12 @@ fr:
query_fields:
active_or_archived: "Actif ou archivé"
assigned_to_role: "Rôle du Destinataire"
member_of_group: "Groupe du Destinataire"
assignee_or_group: "Cessionnaire ou groupe dappartenance"
subproject_id: "Inclure le sous-projet"
only_subproject_id: "Seulement le sous-projet"
member_of_group: "Groupe du Destinataire"
name_or_identifier: "Nom ou identifiant"
only_subproject_id: "Seulement le sous-projet"
shared_with_user: "Shared with user"
subproject_id: "Inclure le sous-projet"
repositories:
at_identifier: '%{identifier}'
atom_revision_feed: 'Flux Atom des révisions'
@@ -2770,6 +2778,8 @@ fr:
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_export_logo_instructions: >
Il s'agit du logo qui apparaît dans vos exportations PDF. Il doit s'agir d'un fichier image PNG ou JPEG. Un logo noir ou coloré sur fond transparent ou blanc est recommandé.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
Il s'agit de la petite icône qui apparaît dans la fenêtre/onglet de votre navigateur à côté du titre de la page. Il doit s'agir d'une image PNG carrée de 32 pixels x 32 pixels avec un fond transparent.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1631,11 +1631,13 @@ he:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "אימות"
label_available_project_work_package_categories: 'Available work package categories'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Available versions'
label_available_project_repositories: 'Available repositories'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Available repositories"
label_available_project_versions: "Available versions"
label_available_project_work_package_categories: "Available work package categories"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API documentation"
label_backup: "Backup"
label_between: "between"
@@ -1840,6 +1842,10 @@ he:
label_login: "לוג-אין"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Custom touch icon"
label_logout: "התנתק"
@@ -1910,6 +1916,7 @@ he:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "פתח תפריט"
label_open_work_packages: "פתוח"
label_open_work_packages_plural: "פתוח"
@@ -2497,11 +2504,12 @@ he:
query_fields:
active_or_archived: "Active or archived"
assigned_to_role: "Assignee's role"
member_of_group: "Assignee's group"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Assignee's group"
name_or_identifier: "Name or identifier"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'at %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2816,6 +2824,8 @@ he:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1587,11 +1587,13 @@ hi:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "प्रमाणीकरण"
label_available_project_work_package_categories: 'Available work package categories'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Available versions'
label_available_project_repositories: 'Available repositories'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Available repositories"
label_available_project_versions: "Available versions"
label_available_project_work_package_categories: "Available work package categories"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API documentation"
label_backup: "Backup"
label_between: "between"
@@ -1796,6 +1798,10 @@ hi:
label_login: "साइन इन करें"
label_custom_logo: "Custom logo"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "विशेष या कस्टम favicon"
label_custom_touch_icon: "कस्टम प्रतीक चिह्न"
label_logout: "Sign out"
@@ -1866,6 +1872,7 @@ hi:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "मेनू खोलें"
label_open_work_packages: "खोलें"
label_open_work_packages_plural: "खोलें"
@@ -2449,11 +2456,12 @@ hi:
query_fields:
active_or_archived: "Active or archived"
assigned_to_role: "Assignee's role"
member_of_group: "Assignee's group"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Assignee's group"
name_or_identifier: "Name or identifier"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'at %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2768,6 +2776,8 @@ hi:
पारदर्शी पृष्ठभूमि पर एक सफेद लोगो की सिफारिश की है । दोनों, पारंपरिक और रेटिना प्रदर्शित करता है पर सबसे अच्छा परिणाम के लिए, सुनिश्चित करें कि आपकी छवि के आयामों 460px द्वारा 60px हैं ।
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1610,11 +1610,13 @@ hr:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Autentifikacija"
label_available_project_work_package_categories: 'Dostupne kategorije radnih paketa'
label_available_project_work_package_types: 'Available work package types'
label_available_project_forums: 'Available forums'
label_available_project_versions: 'Dostupne verzije'
label_available_project_repositories: 'Dostupni repozitoriji'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Available forums"
label_available_project_repositories: "Dostupni repozitoriji"
label_available_project_versions: "Dostupne verzije"
label_available_project_work_package_categories: "Dostupne kategorije radnih paketa"
label_available_project_work_package_types: "Available work package types"
label_available_projects: "Available projects"
label_api_documentation: "API dokumentacija"
label_backup: "Backup"
label_between: "između"
@@ -1819,6 +1821,10 @@ hr:
label_login: "Prijavi se"
label_custom_logo: "Prilagođeni logotip"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Custom favicon"
label_custom_touch_icon: "Custom touch icon"
label_logout: "Odjavi se"
@@ -1889,6 +1895,7 @@ hr:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Otvori izbornik"
label_open_work_packages: "otvori"
label_open_work_packages_plural: "otvori"
@@ -2474,11 +2481,12 @@ hr:
query_fields:
active_or_archived: "Aktivno ili arhivirano"
assigned_to_role: "Rola opunomoćenog korisnika"
member_of_group: "Grupa opunomoćenog korisnika"
assignee_or_group: "Assignee or belonging group"
subproject_id: "Including subproject"
only_subproject_id: "Only subproject"
member_of_group: "Grupa opunomoćenog korisnika"
name_or_identifier: "Ime ili identifikator"
only_subproject_id: "Only subproject"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: 'pri %{identifier}'
atom_revision_feed: 'Atom revizija sadržaja'
@@ -2793,6 +2801,8 @@ hr:
A white logo on transparent background is recommended. For best results on both, conventional and retina displays, make sure your image's dimensions are 460px by 60px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1586,11 +1586,13 @@ hu:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Hitelesítés"
label_available_project_work_package_categories: 'Rendelkezésre álló munkacsomag kategóriák'
label_available_project_work_package_types: 'Rendelkezésre álló munkacsomag típusok'
label_available_project_forums: 'Elérhető fórumok'
label_available_project_versions: 'Rendelkezésre álló verziók'
label_available_project_repositories: 'Rendelkezésre álló tárolók'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Elérhető fórumok"
label_available_project_repositories: "Rendelkezésre álló tárolók"
label_available_project_versions: "Rendelkezésre álló verziók"
label_available_project_work_package_categories: "Rendelkezésre álló munkacsomag kategóriák"
label_available_project_work_package_types: "Rendelkezésre álló munkacsomag típusok"
label_available_projects: "Available projects"
label_api_documentation: "API dokumentáció"
label_backup: "Biztonsági mentés"
label_between: "között"
@@ -1795,6 +1797,10 @@ hu:
label_login: "Bejelentkezés"
label_custom_logo: "Egyedi logó"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Egyedi favicon"
label_custom_touch_icon: "Egyedi \"touch-icon\""
label_logout: "Kijelentkezés"
@@ -1865,6 +1871,7 @@ hu:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Menü megnyitása"
label_open_work_packages: "nyitott"
label_open_work_packages_plural: "nyitott"
@@ -2447,11 +2454,12 @@ hu:
query_fields:
active_or_archived: "Aktív vagy archivált"
assigned_to_role: "Hozzárendelt szerepkör"
member_of_group: "Hozzárendelt csoport"
assignee_or_group: "Megbízott, vagy a hozzá tartozó csoport"
subproject_id: "Beleértve az alprojektet"
only_subproject_id: "Csak alprojekt"
member_of_group: "Hozzárendelt csoport"
name_or_identifier: "Név vagy azonosító"
only_subproject_id: "Csak alprojekt"
shared_with_user: "Shared with user"
subproject_id: "Beleértve az alprojektet"
repositories:
at_identifier: '%{identifier} -n'
atom_revision_feed: 'Atom felülvizsgálat jelzés'
@@ -2766,6 +2774,8 @@ hu:
Egy fehér logo átlátszó háttérrel ajánlott. A legjobb eredmény érdekében mint átlagos és retina kijelzőkön is biztosítsa, hogy a kép mérete 460px x 60px-es legyen.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1561,11 +1561,13 @@ id:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "Otentikasi"
label_available_project_work_package_categories: 'Available work package categories'
label_available_project_work_package_types: 'Jenis paket pekerjaan yang tersedia'
label_available_project_forums: 'Forums tersedia'
label_available_project_versions: 'Available versions'
label_available_project_repositories: 'Available repositories'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Forums tersedia"
label_available_project_repositories: "Available repositories"
label_available_project_versions: "Available versions"
label_available_project_work_package_categories: "Available work package categories"
label_available_project_work_package_types: "Jenis paket pekerjaan yang tersedia"
label_available_projects: "Available projects"
label_api_documentation: "API documentation"
label_backup: "Cadangan"
label_between: "antara"
@@ -1770,6 +1772,10 @@ id:
label_login: "Login"
label_custom_logo: "Logo khusus"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Favicon sesuai keinginan"
label_custom_touch_icon: "Ikon sentuh sesuai keinginan"
label_logout: "Logout"
@@ -1840,6 +1846,7 @@ id:
label_operator_none: "kosong"
label_operator_equals_or: "adalah (ATAU)"
label_operator_equals_all: "adalah (DAN)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Buka menu"
label_open_work_packages: "buka"
label_open_work_packages_plural: "buka"
@@ -2419,11 +2426,12 @@ id:
query_fields:
active_or_archived: "Aktif atau arsip"
assigned_to_role: "Ditugaskan untuk Role"
member_of_group: "Ditugaskan untuk Grup"
assignee_or_group: "Penerima atau anggota kelompok"
subproject_id: "Termasuk subproyek"
only_subproject_id: "Hanya subproyek"
member_of_group: "Ditugaskan untuk Grup"
name_or_identifier: "Nama atau pengenal"
only_subproject_id: "Hanya subproyek"
shared_with_user: "Shared with user"
subproject_id: "Termasuk subproyek"
repositories:
at_identifier: 'at %{identifier}'
atom_revision_feed: 'Atom revision feed'
@@ -2736,6 +2744,8 @@ id:
Logo putih dalam latar belakang transparan lebih disarankan. Untuk hasil terbaik pada keduanya, konvensional dan tampilan retina, pastikan dimensi gambar Anda adalah 460px kali 110px.
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1586,11 +1586,13 @@ it:
label_ldap_auth_source: "Connessione LDAP"
label_ldap_auth_source_plural: "Connessioni LDAP"
label_authentication: "Autenticazione"
label_available_project_work_package_categories: 'Categorie di macro-attività disponibili'
label_available_project_work_package_types: 'Tipi di pacchetti di lavoro disponibili'
label_available_project_forums: 'Forum disponibili'
label_available_project_versions: 'Versioni disponibili'
label_available_project_repositories: 'Archivi disponibili'
label_available_global_roles: "Available global roles"
label_available_project_forums: "Forum disponibili"
label_available_project_repositories: "Archivi disponibili"
label_available_project_versions: "Versioni disponibili"
label_available_project_work_package_categories: "Categorie di macro-attivi disponibili"
label_available_project_work_package_types: "Tipi di pacchetti di lavoro disponibili"
label_available_projects: "Available projects"
label_api_documentation: "Documentazione API"
label_backup: "Backup"
label_between: "tra"
@@ -1795,6 +1797,10 @@ it:
label_login: "Accedi"
label_custom_logo: "Logo personalizzato"
label_custom_export_logo: "Esportazione personalizzata logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "Favicon personalizzata"
label_custom_touch_icon: "Icona del touch personalizzata"
label_logout: "Disconnetti"
@@ -1865,6 +1871,7 @@ it:
label_operator_none: "è vuoto"
label_operator_equals_or: "è (OR)"
label_operator_equals_all: "è (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "Apri menu"
label_open_work_packages: "aperte"
label_open_work_packages_plural: "aperte"
@@ -2448,11 +2455,12 @@ it:
query_fields:
active_or_archived: "Attivo o archiviato"
assigned_to_role: "Ruolo dell'incaricato"
member_of_group: "Gruppo dell'incaricato"
assignee_or_group: "Assegnatario o gruppo di appartenenza"
subproject_id: "Sottoprogetto incluso"
only_subproject_id: "Solo sottoprogetto"
member_of_group: "Gruppo dell'incaricato"
name_or_identifier: "Nome o identificativo"
only_subproject_id: "Solo sottoprogetto"
shared_with_user: "Shared with user"
subproject_id: "Sottoprogetto incluso"
repositories:
at_identifier: 'presso %{identifier}'
atom_revision_feed: 'Revisione di Atom feed'
@@ -2767,6 +2775,8 @@ it:
Un logo bianco su sfondo trasparente è preferibile. Per ottenere i migliori risultati, sia su schermi convenzionali che ad alta risoluzione, assicurati che le dimensioni dell'immagine siano di 460x60 pixels.
text_custom_export_logo_instructions: >
Questo è il logo che appare nelle tue esportazioni PDF. Deve essere un file immagine PNG o JPEG. Si consiglia un logo nero o colorato su sfondo trasparente o bianco.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
Questa è l'icona che appare nella scheda del tuo browser vicino al titolo della pagina. È necessario che questa sia un'immagine quadrata di dimensioni 32x32, in formato PNG e con sfondo trasparente.
text_custom_touch_icon_instructions: >
+18 -8
View File
@@ -1564,11 +1564,13 @@ ja:
label_ldap_auth_source: "LDAP connection"
label_ldap_auth_source_plural: "LDAP connections"
label_authentication: "認証"
label_available_project_work_package_categories: '有効なワークパッケージのカテゴリ'
label_available_project_work_package_types: '利用可能なワークパッケージのタイプ'
label_available_project_forums: '利用可能なフォーラム'
label_available_project_versions: '利用できるバージョン'
label_available_project_repositories: '使用できるリポジトリ'
label_available_global_roles: "Available global roles"
label_available_project_forums: "利用可能なフォーラム"
label_available_project_repositories: "使用できるリポジトリ"
label_available_project_versions: "利用できるバージョン"
label_available_project_work_package_categories: "有効なワークパッケージのカテゴリ"
label_available_project_work_package_types: "利用可能なワークパッケージのタイプ"
label_available_projects: "Available projects"
label_api_documentation: "APIドキュメント"
label_backup: "バックアップ"
label_between: "次の範囲内"
@@ -1773,6 +1775,10 @@ ja:
label_login: "ログイン"
label_custom_logo: "カスタムロゴ"
label_custom_export_logo: "Custom export logo"
label_custom_export_cover: "Custom export cover background"
label_custom_export_cover_overlay: "Custom export cover background overlay"
label_custom_export_cover_text_color: "Text color"
label_custom_pdf_export_settings: "Custom PDF export settings"
label_custom_favicon: "カスタムの favicon"
label_custom_touch_icon: "カスタムのタッチアイコン"
label_logout: "ログアウト"
@@ -1843,6 +1849,7 @@ ja:
label_operator_none: "is empty"
label_operator_equals_or: "is (OR)"
label_operator_equals_all: "is (AND)"
label_operator_shared_with_user_any: "any"
label_open_menu: "メニューを開く"
label_open_work_packages: "未完了"
label_open_work_packages_plural: "未完了"
@@ -2424,11 +2431,12 @@ ja:
query_fields:
active_or_archived: "アクティブまたはアーカイブ"
assigned_to_role: "担当者のロール"
member_of_group: "担当者のグループ"
assignee_or_group: "担当者または所属グループ"
subproject_id: "Including subproject"
only_subproject_id: "サブプロジェクトのみ"
member_of_group: "担当者のグループ"
name_or_identifier: "名前または ID"
only_subproject_id: "サブプロジェクトのみ"
shared_with_user: "Shared with user"
subproject_id: "Including subproject"
repositories:
at_identifier: '%{identifier} で'
atom_revision_feed: 'Atom リビジョンフィード'
@@ -2743,6 +2751,8 @@ ja:
透明な背景の白いロゴをお勧めします。 従来、および Retina ディスプレイの両方で最高の結果となるように、画像の寸法は、460px x 60px を確認してください。
text_custom_export_logo_instructions: >
This is the logo that appears in your PDF exports. It needs to be a PNG or JPEG image file. A black or colored logo on transparent or white background is recommended.
text_custom_export_cover_instructions: >
This is the image that appears in the background of a cover page in your PDF exports. It needs to be an about 800px width by 500px height sized PNG or JPEG image file.
text_custom_favicon_instructions: >
This is the tiny icon that appears in your browser window/tab next to the page's title. It needs to be a squared 32 by 32 pixels sized PNG image file with a transparent background.
text_custom_touch_icon_instructions: >
+1
View File
@@ -981,6 +981,7 @@ af:
recently_created: "Recently created"
all_open: "All open"
summary: "Opsomming"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+3
View File
@@ -985,6 +985,7 @@ ar:
recently_created: "Recently created"
all_open: "All open"
summary: "مُلخّص"
shared_with_users: "Shared with users"
jump_marks:
pagination: "الانتقال السريع إلى تقسيم الجدول"
label_pagination: "اضغط هنا لتخطي جدول كتب العمل والانتقال للحدود الفاصلة"
@@ -1160,9 +1161,11 @@ ar:
hour:
one: "1 h"
other: "%{count} h"
zero: "0 h"
day:
one: "%{count} يوم"
other: "%{count} يوم"
zero: "0 days"
zen_mode:
button_activate: 'Activate zen mode'
button_deactivate: 'Deactivate zen mode'
+1
View File
@@ -981,6 +981,7 @@ az:
recently_created: "Recently created"
all_open: "All open"
summary: "Summary"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -983,6 +983,7 @@ be:
recently_created: "Recently created"
all_open: "All open"
summary: "Summary"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -981,6 +981,7 @@ bg:
recently_created: "Recently created"
all_open: "Всичко отворено"
summary: "Обобщение"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -981,6 +981,7 @@ ca:
recently_created: "Creat recentment"
all_open: "Tots els oberts"
summary: "Resum"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Saltar a la paginació de la taula"
label_pagination: "Fes clic aquí per saltar per sobre la taula de paquets de treball i anar a paginació"
+1
View File
@@ -981,6 +981,7 @@ ckb-IR:
recently_created: "Recently created"
all_open: "All open"
summary: "Summary"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -983,6 +983,7 @@ cs:
recently_created: "Nedávno vytvořené"
all_open: "Všechny otevřené"
summary: "Souhrn"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Přejít na stránku tabulky"
label_pagination: "Kliknutím sem přeskočíte tabulku pracovních balíčků a přejděte na stránku"
+1
View File
@@ -980,6 +980,7 @@ da:
recently_created: "Recently created"
all_open: "All open"
summary: "Opsummering"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+2 -1
View File
@@ -415,7 +415,7 @@ de:
label_filename: "Datei"
label_filesize: "Größe"
label_general: "Allgemein"
label_global_roles: "Global roles"
label_global_roles: "Globale Rollen"
label_greater_or_equal: ">="
label_group: 'Gruppe'
label_group_by: "Gruppieren nach"
@@ -980,6 +980,7 @@ de:
recently_created: "Kürzlich erstellt"
all_open: "Alle offenen"
summary: "Zusammenfassung"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Zur Seitennavigation springen"
label_pagination: "Hier klicken, um über die Tabelle der Arbeitspakete hinweg zur Seitennavigation zu springen"
+1
View File
@@ -980,6 +980,7 @@ el:
recently_created: "Δημιουργήθηκαν πρόσφατα"
all_open: "Όλα τα ανοιχτά"
summary: "Περίληψη"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Μεταπήδηση στον πίνακα σελιδοποίησης"
label_pagination: "Πατήστε εδώ για να προσπεράσετε τον πίνακα πακέτων εργασίας και να πάτε στην σελιδοποίηση"
+1
View File
@@ -981,6 +981,7 @@ eo:
recently_created: "Recently created"
all_open: "Ĉio malfermita"
summary: "Resumo"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -981,6 +981,7 @@ es:
recently_created: "Creado recientemente"
all_open: "Todo abierto"
summary: "Resumen"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Saltar a la paginación de la tabla"
label_pagination: "Haga clic aquí para omitir la tabla de paquetes de trabajo e ir a la paginación"
+1
View File
@@ -981,6 +981,7 @@ et:
recently_created: "Recently created"
all_open: "All open"
summary: "Kokkuvõte"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -981,6 +981,7 @@ eu:
recently_created: "Recently created"
all_open: "All open"
summary: "Summary"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -981,6 +981,7 @@ fa:
recently_created: "Recently created"
all_open: "All open"
summary: "Summary"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -981,6 +981,7 @@ fi:
recently_created: "Äskettäin luodut"
all_open: "Avoimet tehtävät"
summary: "Yhteenveto"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -981,6 +981,7 @@ fil:
recently_created: "Recently created"
all_open: "All open"
summary: "Buod"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Dumiretso sa talaan ng pagination"
label_pagination: "Pindutin dito upang lagpasan ang mga talaan ng work package at pumunta sa pagination."
+2 -1
View File
@@ -981,6 +981,7 @@ fr:
recently_created: "Créé récemment"
all_open: "Tous les ouverts"
summary: "Résumé"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Passer à la pagination du tableau"
label_pagination: "Cliquez ici pour sauter le tableau des lots de travaux et accéder à la pagination"
@@ -1220,7 +1221,7 @@ fr:
role:
label: 'Rôle dans %{project}'
no_roles_found: 'Aucun rôle trouvé.'
description: 'C''est le rôle que l''utilisateur recevra quand il rejoindra votre projet. Le rôle définit quelles actions il est autorisé à entreprendre et quelles informations il peut voir. <a href="https://docs.openproject.org/system-admin-guide/users-permissions/roles-permissions/#roles-and-permissions" target="_blank"> En savoir plus sur les rôles et les permissions. </a>'
description: 'C''est le rôle que l''utilisateur recevra quand il rejoindra votre projet. Le rôle définit quelles actions il est autorisé à entreprendre et quelles informations il peut voir. <a href="https://www.openproject.org/docs/system-admin-guide/users-permissions/roles-permissions/#roles-and-permissions" target="_blank"> En savoir plus sur les rôles et les permissions. </a>'
required: 'Veuillez sélectionner un rôle'
next_button: 'Suivante'
message:
+1
View File
@@ -983,6 +983,7 @@ he:
recently_created: "Recently created"
all_open: "All open"
summary: "פירוט"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -981,6 +981,7 @@ hi:
recently_created: "हाल ही में बनाए गए"
all_open: "सभी खुले"
summary: "सारांश"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -982,6 +982,7 @@ hr:
recently_created: "Recently created"
all_open: "Svi otvoreni"
summary: "Sažetak"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Skok na numeriranje stranica tabele"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -981,6 +981,7 @@ hu:
recently_created: "Nemrégiben létrehozott"
all_open: "Nyitottak"
summary: "Összegzés"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Ugrás a táblázat lapszámozásához"
label_pagination: "Kattints ide, hogy átugorj a munkacsomag táblán és a lapszámozáshoz menj"
+1
View File
@@ -980,6 +980,7 @@ id:
recently_created: "Recently created"
all_open: "Semua terbuka"
summary: "Ringkasan"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -981,6 +981,7 @@ it:
recently_created: "Creato di recente"
all_open: "Apri tutto"
summary: "Sommario"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Salta alla impaginazione tabella"
label_pagination: "Clicca qui per saltare la tabella macro-attività e passare alla impaginazione"
+1
View File
@@ -981,6 +981,7 @@ ja:
recently_created: "最近作成された"
all_open: "未完了"
summary: "サマリ"
shared_with_users: "Shared with users"
jump_marks:
pagination: "表のページ設定に移動する"
label_pagination: "ここをクリックすると、作業項目表をスキップしてページ設定に移動します"
+1
View File
@@ -981,6 +981,7 @@ ka:
recently_created: "Recently created"
all_open: "ყველა ღია"
summary: "შეჯამება"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -980,6 +980,7 @@ ko:
recently_created: "최근에 만듦"
all_open: "모두 열림"
summary: "요약"
shared_with_users: "Shared with users"
jump_marks:
pagination: "테이블 페이지 매김으로 이동"
label_pagination: "여기를 클릭하여 작업 패키지 테이블로 건너뛰고 페이지 매김으로 이동"
+1
View File
@@ -983,6 +983,7 @@ lt:
recently_created: "Neseniai sukurti"
all_open: "Visi atviri"
summary: "Santrauka"
shared_with_users: "Bendrinamas su naudotojais"
jump_marks:
pagination: "Pereiti į lentelės laužymą puslapiais"
label_pagination: "Paspauskite čia, kad praleistumėte darbų paketų lentelės peržiūrą ir patektumėte į atvaizdavimą puslapiais"
+3
View File
@@ -982,6 +982,7 @@ lv:
recently_created: "Recently created"
all_open: "All open"
summary: "Kopsavilkums"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
@@ -1151,9 +1152,11 @@ lv:
hour:
one: "1 h"
other: "%{count} h"
zero: "0 h"
day:
one: "%{count} dienas"
other: "%{count} dienām"
zero: "0 days"
zen_mode:
button_activate: 'Activate zen mode'
button_deactivate: 'Deactivate zen mode'
+1
View File
@@ -981,6 +981,7 @@ mn:
recently_created: "Recently created"
all_open: "All open"
summary: "Summary"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -981,6 +981,7 @@ ne:
recently_created: "Recently created"
all_open: "All open"
summary: "Summary"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Jump to table pagination"
label_pagination: "Click here to skip over the work packages table and go to pagination"
+1
View File
@@ -981,6 +981,7 @@ nl:
recently_created: "Onlangs gecreëerd"
all_open: "Alles open"
summary: "Samenvatting"
shared_with_users: "Shared with users"
jump_marks:
pagination: "Ga naar de tabelpaginering"
label_pagination: "Klik hier om de tabel werk pakketten over te slaan en ga naar paginering"

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